diff options
43 files changed, 583 insertions, 304 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 9cf66c74aa..926cd34165 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,6 +5,7 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") include(FeatureSummary) include(QtCreatorIDEBranding) +include(QtCreatorTranslations) set(IDE_REVISION FALSE CACHE BOOL "Marks the presence of IDE revision string.") set(IDE_REVISION_STR "" CACHE STRING "The IDE revision string.") diff --git a/cmake/QtCreatorTranslations.cmake b/cmake/QtCreatorTranslations.cmake new file mode 100644 index 0000000000..dd0dae6875 --- /dev/null +++ b/cmake/QtCreatorTranslations.cmake @@ -0,0 +1,167 @@ +# Defines function add_translation_targets + +function(_extract_ts_data_from_targets outprefix) + set(_sources "") + set(_includes "") + + set(_targets "${ARGN}") + list(REMOVE_DUPLICATES _targets) + + foreach(t IN ITEMS ${_targets}) + if (TARGET "${t}") + get_target_property(_skip_translation "${t}" QT_SKIP_TRANSLATION) + get_target_property(_source_dir "${t}" SOURCE_DIR) + get_target_property(_interface_include_dirs "${t}" INTERFACE_INCLUDE_DIRECTORIES) + get_target_property(_include_dirs "${t}" INCLUDE_DIRECTORIES) + get_target_property(_source_files "${t}" SOURCES) + get_target_property(_extra_translations "${t}" QT_EXTRA_TRANSLATIONS) + + if (NOT _skip_translation) + if(_include_dirs) + list(APPEND _includes ${_include_dirs}) + endif() + + if(_interface_include_dirs) + list(APPEND _interface_includes ${_include_dirs}) + endif() + + set(_target_sources "") + if(_source_files) + list(APPEND _target_sources ${_source_files}) + endif() + if(_extra_translations) + list(APPEND _target_sources ${_extra_translations}) + endif() + foreach(s IN ITEMS ${_target_sources}) + get_filename_component(_abs_source "${s}" ABSOLUTE BASE_DIR "${_source_dir}") + list(APPEND _sources "${_abs_source}") + endforeach() + endif() + endif() + endforeach() + + set("${outprefix}_sources" "${_sources}" PARENT_SCOPE) + set("${outprefix}_includes" "${_includes}" PARENT_SCOPE) +endfunction() + +function(_create_ts_custom_target name) + cmake_parse_arguments(_arg "" "FILE_PREFIX;TS_TARGET_PREFIX" "LANGUAGES;SOURCES;INCLUDES" ${ARGN}) + if (_arg_UNPARSED_ARGUMENTS) + message(FATAL_ERROR "Invalid parameters to _create_ts_custom_target: ${_arg_UNPARSED_ARGUMENTS}.") + endif() + + if (NOT _arg_TS_TARGET_PREFIX) + set(_arg_TS_TARGET_PREFIX "ts_") + endif() + + set(ts_languages ${_arg_LANGUAGES}) + if (NOT ts_languages) + set(ts_languages "${name}") + endif() + + foreach(l IN ITEMS ${ts_languages}) + list(APPEND ts_files "${CMAKE_CURRENT_SOURCE_DIR}/${_arg_FILE_PREFIX}_${l}.ts") + endforeach() + + set(_sources "${_arg_SOURCES}") + list(SORT _sources) + + set(_includes "${_arg_INCLUDES}") + + list(REMOVE_DUPLICATES _sources) + list(REMOVE_DUPLICATES _includes) + + list(REMOVE_ITEM _sources "") + list(REMOVE_ITEM _includes "") + + set(_prepended_includes) + foreach(include IN LISTS _includes) + list(APPEND _prepended_includes "-I${include}") + endforeach() + set(_includes "${_prepended_includes}") + + string(REPLACE ";" "\n" _sources_str "${_sources}") + string(REPLACE ";" "\n" _includes_str "${_includes}") + + set(ts_file_list "${CMAKE_CURRENT_BINARY_DIR}/ts_${name}.lst") + file(WRITE "${ts_file_list}" "${_sources_str}\n${_includes_str}\n") + + add_custom_target("${_arg_TS_TARGET_PREFIX}${name}" + COMMAND Qt5::lupdate -locations relative -no-ui-lines -no-sort "@${ts_file_list}" -ts ${ts_files} + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" + COMMENT "Generate .ts files" + DEPENDS ${_sources} + VERBATIM) +endfunction() + +function(add_translation_targets file_prefix) + if (NOT TARGET Qt5::lrelease) + # No Qt translation tools were found: Skip this directory + message(WARNING "No Qt translation tools found, skipping translation targets. Add find_package(Qt5 COMPONENTS LinguistTools) to CMake to enable.") + return() + endif() + + cmake_parse_arguments(_arg "" + "OUTPUT_DIRECTORY;INSTALL_DESTINATION;TS_TARGET_PREFIX;QM_TARGET_PREFIX;ALL_QM_TARGET" + "LANGUAGES;TARGETS;SOURCES;INCLUDES" ${ARGN}) + if (_arg_UNPARSED_ARGUMENTS) + message(FATAL_ERROR "Invalid parameters to add_translation_targets: ${_arg_UNPARSED_ARGUMENTS}.") + endif() + + if (NOT _arg_TS_TARGET_PREFIX) + set(_arg_TS_TARGET_PREFIX "ts_") + endif() + + if (NOT _arg_QM_TARGET_PREFIX) + set(_arg_QM_TARGET_PREFIX "generate_qm_file_") + endif() + + if (NOT _arg_ALL_QM_TARGET) + set(_arg_ALL_QM_TARGET "generate_qm_files") + endif() + + if (NOT _arg_OUTPUT_DIRECTORY) + set(_arg_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") + endif() + + if (NOT _arg_INSTALL_DESTINATION) + message(FATAL_ERROR "Please provide a INSTALL_DESTINATION to add_translation_targets") + endif() + + _extract_ts_data_from_targets(_to_process "${_arg_TARGETS}") + + _create_ts_custom_target(untranslated + FILE_PREFIX "${file_prefix}" TS_TARGET_PREFIX "${_arg_TS_TARGET_PREFIX}" + SOURCES ${_to_process_sources} ${_arg_SOURCES} INCLUDES ${_to_process_includes} ${_arg_INCLUDES}) + + if (NOT TARGET "${_arg_ALL_QM_TARGET}") + add_custom_target("${_arg_ALL_QM_TARGET}" ALL COMMENT "Generate .qm-files") + endif() + + foreach(l IN ITEMS ${_arg_LANGUAGES}) + set(_ts_file "${CMAKE_CURRENT_SOURCE_DIR}/${file_prefix}_${l}.ts") + set(_qm_file "${_arg_OUTPUT_DIRECTORY}/${file_prefix}_${l}.qm") + + _create_ts_custom_target("${l}" FILE_PREFIX "${file_prefix}" TS_TARGET_PREFIX "${_arg_TS_TARGET_PREFIX}" + SOURCES ${_to_process_sources} ${_arg_SOURCES} INCLUDES ${_to_process_includes} ${_arg_INCLUDES}) + + add_custom_command(OUTPUT "${_qm_file}" + COMMAND Qt5::lrelease "${_ts_file}" -qm "${_qm_file}" + MAIN_DEPENDENCY "${_ts_file}" + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" + COMMENT "Generate .qm file" + VERBATIM) + add_custom_target("${_arg_QM_TARGET_PREFIX}${l}" DEPENDS "${_qm_file}") + install(FILES "${_qm_file}" DESTINATION ${_arg_INSTALL_DESTINATION}) + + add_dependencies("${_arg_ALL_QM_TARGET}" "${_arg_QM_TARGET_PREFIX}${l}") + endforeach() + + _create_ts_custom_target(all + LANGUAGES ${_arg_LANGUAGES} + TS_TARGET_PREFIX "${_arg_TS_TARGET_PREFIX}" + FILE_PREFIX "${file_prefix}" + SOURCES ${_to_process_sources} ${_arg_SOURCES} + INCLUDES ${_to_process_includes} ${_arg_INCLUDES} + ) +endfunction() diff --git a/doc/qtdesignstudio/src/qtbridge/qtbridge-overview.qdoc b/doc/qtdesignstudio/src/qtbridge/qtbridge-overview.qdoc index 9a912f573a..d666763e55 100644 --- a/doc/qtdesignstudio/src/qtbridge/qtbridge-overview.qdoc +++ b/doc/qtdesignstudio/src/qtbridge/qtbridge-overview.qdoc @@ -31,9 +31,13 @@ \title Exporting Artwork from Design Tools - You need to use \QB for exporting the 2D assets from design tools, - whereas you can directly import 3D assets saved in widely-used 3D - graphics formats. For best results when importing 3D assets, follow + You need to use \QB to first export 2D assets from design tools and then + import them. When working with 3D assets, you can use the export functions + provided by the 3D graphics tools to save the assets in widely-used 3D + graphics formats, and then use \QB to import them. You can download \QB + from the \l{https://marketplace.qt.io/}{Qt Marketplace}. + + For best results when importing 3D assets, follow the guidelines for creating and exporting them. \list diff --git a/doc/qtdesignstudio/src/qtbridge/qtbridge-ps-setup.qdoc b/doc/qtdesignstudio/src/qtbridge/qtbridge-ps-setup.qdoc index 1261ee4d85..6e3b8ef3cd 100644 --- a/doc/qtdesignstudio/src/qtbridge/qtbridge-ps-setup.qdoc +++ b/doc/qtdesignstudio/src/qtbridge/qtbridge-ps-setup.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2019 The Qt Company Ltd. +** Copyright (C) 2020 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Bridge documentation. @@ -32,10 +32,12 @@ \title Setting Up \QBPS - \QBPS is delivered as an Adobe extension (ZXP) package and requires Adobe - Photoshop version 20.0.0, or later to be installed. The \QBPS installation - process differs depending on whether you use ZXPInstaller and whether you - are installing on Windows or \macos. + You can download \QBPS from the \l{https://marketplace.qt.io/} + {Qt Marketplace}. It is delivered as an Adobe extension (ZXP) + package and requires Adobe Photoshop version 20.0.0, or later + to be installed. The \QBPS installation process differs depending + on whether you use ZXPInstaller and whether you are installing on + Windows or \macos. \section1 Installing with ZXPInstaller @@ -44,8 +46,7 @@ \list 1 \li Download and install \l{http://zxpinstaller.com/}{ZXPInstaller}. \li Start ZXPInstaller. - \li Drag and drop the \QBPS ZXP package from the \c photoshop_bridge - directory in the installation directory of \QDS to ZXPInstaller. + \li Drag and drop the \QBPS ZXP package to ZXPInstaller. \li Follow the instructions of the installation program. \endlist @@ -59,9 +60,8 @@ To install \QBPS on Windows without using ZXPInstaller: \list 1 - \li Copy the \QBPS ZXP package from the \c photoshop_bridge directory - in the installation directory of \QDS to the \c Documents directory - in your user directory. + \li Copy the \QBPS ZXP package to the \c Documents directory in your + user directory. \li Open Windows PowerShell. \li Enter the following commands: \badcode @@ -77,9 +77,7 @@ To install \QBPS on \macos without using ZXPInstaller: \list 1 - \li Copy the \QBPS ZXP package from the \c photoshop_bridge - directory in the installation directory of \QDS to your - \c Documents directory. + \li Copy the \QBPS ZXP package to your \c Documents directory. \li Open Terminal. \li Enter the following commands: \badcode diff --git a/doc/qtdesignstudio/src/qtbridge/qtbridge-sketch-setup.qdoc b/doc/qtdesignstudio/src/qtbridge/qtbridge-sketch-setup.qdoc index 1f7a49d2e0..46d611ad51 100644 --- a/doc/qtdesignstudio/src/qtbridge/qtbridge-sketch-setup.qdoc +++ b/doc/qtdesignstudio/src/qtbridge/qtbridge-sketch-setup.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2019 The Qt Company Ltd. +** Copyright (C) 2020 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Bridge documentation. @@ -32,13 +32,13 @@ \title Setting Up \QBSK - \QBSK is delivered with \QDS as a Sketch plugin that you can install to - Sketch. + You can download \QBSK from the \l{https://marketplace.qt.io/} + {Qt Marketplace}. It is delivered as a Sketch plugin that you + can install to Sketch. \note Install the Sketch app before installing the plugin. - To install the \QBSK plugin to Sketch, double-click the \QBSK plugin in the - \c sketch_bridge directory in the installation directory of \QDS. + To install the \QBSK plugin to Sketch, double-click the executable file. The plugin is available at \uicontrol Plugins > \uicontrol {\QB}. */ diff --git a/doc/qtdesignstudio/src/qtdesignstudio-importing-2d.qdoc b/doc/qtdesignstudio/src/qtdesignstudio-importing-2d.qdoc index 9b9bd85604..65335c3a5c 100644 --- a/doc/qtdesignstudio/src/qtdesignstudio-importing-2d.qdoc +++ b/doc/qtdesignstudio/src/qtdesignstudio-importing-2d.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2019 The Qt Company Ltd. +** Copyright (C) 2020 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Bridge documentation. @@ -31,12 +31,15 @@ \title Importing 2D Assets + You can download \QB from the \l{https://marketplace.qt.io/}{Qt Marketplace}. + \image studio-imported-assets.png "Artwork imported into Qt Design Studio" - You can import assets that you exported with \QB to a \QDS project as image - and QML files and edit them in the Design mode. If you make changes to your - design in the design tool, you can merge the changes into existing QML files - without overwriting the changes you have made in \QDS. + \QB enables you to export assets and then import them to a \QDS project + as image and QML files for editing in the \uicontrol {Form Editor}. If you + make changes to your design in the design tool, you can merge the changes + into existing QML files without overwriting the changes you have made in + \QDS. \note Attempting to import assets exported on another system might fail. diff --git a/doc/qtdesignstudio/src/qtdesignstudio-importing-designs.qdoc b/doc/qtdesignstudio/src/qtdesignstudio-importing-designs.qdoc index 8ad05eba81..887a148e81 100644 --- a/doc/qtdesignstudio/src/qtdesignstudio-importing-designs.qdoc +++ b/doc/qtdesignstudio/src/qtdesignstudio-importing-designs.qdoc @@ -35,6 +35,8 @@ exporting the 2D assets from design tools, whereas you can directly import 3D assets saved in widely-used 3D graphics formats. + You can download \QB from the \l{https://marketplace.qt.io/}{Qt Marketplace}. + \list \li \l{Importing 2D Assets} diff --git a/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-editor.qdoc b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-editor.qdoc index 3892672a1d..89a6b7742d 100644 --- a/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-editor.qdoc +++ b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-editor.qdoc @@ -45,25 +45,16 @@ scene did not contain them, you can add the corresponding Qt Quick 3D types from the \uicontrol Library. - You can use the manipulator mode toolbar buttons (2) to show the move, rotate, - or scale manipulator in the rendered scene when an item is selected and - to determine what happens when you drag the selected item. Select the - \uicontrol {Toggle Local/Global Orientation} button (3) to determine whether - the manipulators affect only the local transforms of the item or whether - they transform with respect to the global space. + You can use the toolbar buttons (2) to show the \e transformation + gizmo in the \uicontrol {3D Editor} when an item is selected + and to determine what happens when you drag the selected item. + Transformation refers to moving, rotating, or scaling of an object. + Select the \uicontrol {Toggle Local/Global Orientation} button (3) to + determine whether the gizmos affect only the local transformations of the + item or whether they transform with respect to the global space. \image studio-3d-editor.png "3D Editor" - For example, in local orientation mode, selecting an unrotated cube inside - a rotated group in the move mode shows rotated axes. Dragging on the red - arrow of the move manipulator affects only the x position of the item. - - In global mode, the manipulators always transform with respect to the global - space. In the example above, switching to global mode will show the red - arrow for the move manipulator aligned with the screen (assuming an - unrotated camera). Dragging on the red arrow may affect two or three of the - position values for the selected item in order to move it in global space. - The \e pivot of the component is used as the origin for position, scale, and rotation operations. You can set a \l{Setting Transform Properties} {local pivot offset} for an item in the \uicontrol Properties view to @@ -153,6 +144,23 @@ To freely rotate the item, select the gray circle. + \section1 Using Global and Local Orientation + + To switch between global and local orientation, select \uicontrol + {Toggle Local/Global Orientation}. + + In global orientation mode, transformation of a selected object is presented + with respect to the global space. For example, while the move tool is + selected, selecting a cube will show its move gizmo aligned with the axes + of global space. Dragging on the red arrow of the gizmo moves the object in + the global x direction. + + In local orientation mode, the position of a selected object is shown + according to local axes specific to the selected object. For example, + selecting a rotated cube will show its axes rotated, and not aligned with + the axes of global space. Dragging on the red arrow of the gizmo + moves the object in the local x direction in relation to the object. + \section1 Scaling Items \image studio-3d-editor-scale.png "3D editor in scale mode" diff --git a/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-importing.qdoc b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-importing.qdoc index 17f7482233..d8025677cf 100644 --- a/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-importing.qdoc +++ b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-importing.qdoc @@ -36,10 +36,11 @@ \title Importing 3D Assets - You can import files you created using 3D graphics applications and stored - in several widely-used formats, such as .blend, .dae, .fbx, .glb, .gltf, - .obj, .uia, or .uip. For a list of formats supported by each \l{Qt Quick 3D} - version, see the module documentation. + You can download \QB from the \l{https://marketplace.qt.io/}{Qt Marketplace}. + It enables you to import files you created using 3D graphics applications + and stored in several widely-used formats, such as .blend, .dae, .fbx, .glb, + .gltf, .obj, .uia, or .uip. For a list of formats supported by each + \l{Qt Quick 3D} version, see the module documentation. For more information about exporting 3D graphics from Maya, see \l{Exporting from Maya}. @@ -68,5 +69,5 @@ \endlist You can open the imported files in the Design mode for editing in the - \l{Editing 3D Scenes}{3D editor}. + \l{Editing 3D Scenes}{3D Editor}. */ diff --git a/qbs/imports/QtcProduct.qbs b/qbs/imports/QtcProduct.qbs index e54dc667f4..862c824743 100644 --- a/qbs/imports/QtcProduct.qbs +++ b/qbs/imports/QtcProduct.qbs @@ -36,6 +36,11 @@ Product { cpp.cxxFlags: { var flags = []; + if (qbs.toolchain.contains("clang") + && Utilities.versionCompare(cpp.compilerVersion, "10") >= 0) { + // Triggers a lot in Qt. + flags.push("-Wno-deprecated-copy", "-Wno-constant-logical-operand"); + } if (qbs.toolchain.contains("gcc") && !qbs.toolchain.contains("clang")) { flags.push("-Wno-noexcept-type"); if (Utilities.versionCompare(cpp.compilerVersion, "9") >= 0) diff --git a/qbs/modules/libclang/functions.js b/qbs/modules/libclang/functions.js index d1bd2dd2ea..0c15a2a628 100644 --- a/qbs/modules/libclang/functions.js +++ b/qbs/modules/libclang/functions.js @@ -3,6 +3,7 @@ var File = require("qbs.File") var FileInfo = require("qbs.FileInfo") var MinimumLLVMVersion = "8.0.0" // CLANG-UPGRADE-CHECK: Adapt minimum version numbers. var Process = require("qbs.Process") +var Utilities = require("qbs.Utilities") function readOutput(executable, args) { @@ -108,6 +109,8 @@ function formattingLibs(llvmConfig, qtcFunctions, targetOS) return []; var clangVersion = version(llvmConfig) + if (Utilities.versionCompare(clangVersion, "10") >= 0) + return []; var libs = [] if (qtcFunctions.versionIsAtLeast(clangVersion, MinimumLLVMVersion)) { if (qtcFunctions.versionIsAtLeast(clangVersion, "8.0.0")) { diff --git a/qbs/modules/libclang/libclang.qbs b/qbs/modules/libclang/libclang.qbs index 9c2cfae23d..bb2878f198 100644 --- a/qbs/modules/libclang/libclang.qbs +++ b/qbs/modules/libclang/libclang.qbs @@ -64,7 +64,8 @@ Module { return incl != llvmIncludeDir; }) property stringList llvmToolingCxxFlags: clangProbe.llvmToolingCxxFlags - property bool toolingEnabled: !Environment.getEnv("QTC_DISABLE_CLANG_REFACTORING") + property bool toolingEnabled: Utilities.versionCompare(llvmVersion, "10") < 0 + && !Environment.getEnv("QTC_DISABLE_CLANG_REFACTORING") validate: { if (!clangProbe.found) { diff --git a/qtcreator.pro b/qtcreator.pro index f59ec0a332..b17bad660a 100644 --- a/qtcreator.pro +++ b/qtcreator.pro @@ -98,10 +98,10 @@ BASENAME = $$(INSTALL_BASENAME) isEmpty(BASENAME): BASENAME = qt-creator-$${PLATFORM}$(INSTALL_EDITION)-$${QTCREATOR_VERSION}$(INSTALL_POSTFIX) linux { - appstream.files = dist/org.qt-project.qtcreator.appdata.xml + appstream.files = share/metainfo/org.qt-project.qtcreator.appdata.xml appstream.path = $$QTC_PREFIX/share/metainfo/ - desktop.files = dist/org.qt-project.qtcreator.desktop + desktop.files = share/applications/org.qt-project.qtcreator.desktop desktop.path = $$QTC_PREFIX/share/applications/ INSTALLS += appstream desktop diff --git a/scripts/build.py b/scripts/build.py index a58a688dca..8102224cd8 100755 --- a/scripts/build.py +++ b/scripts/build.py @@ -146,7 +146,19 @@ def build_qtcreator(args, paths): common.check_print_call(['cmake', '--install', '.', '--prefix', paths.dev_install, '--component', 'Devel'], paths.build) - + if not args.no_docs: + common.check_print_call(['cmake', '--install', '.', '--prefix', paths.install, + '--component', 'qtc_docs_qtcreator'], + paths.build) + common.check_print_call(['cmake', '--install', '.', '--prefix', paths.install, + '--component', 'html_docs_qtcreator'], + paths.build) + common.check_print_call(['cmake', '--install', '.', '--prefix', paths.install, + '--component', 'html_docs_qtcreator-dev'], + paths.build) + common.check_print_call(['cmake', '--install', '.', '--prefix', paths.install, + '--component', 'html_docs_qtcreator-dev'], + paths.build) def build_wininterrupt(args, paths): if not common.is_windows_platform(): return diff --git a/scripts/build_plugin.py b/scripts/build_plugin.py index 45c16765d3..97c4829745 100755 --- a/scripts/build_plugin.py +++ b/scripts/build_plugin.py @@ -48,6 +48,9 @@ def get_arguments(): parser.add_argument('--output-path', help='Output path for resulting 7zip files') parser.add_argument('--add-path', help='Adds a CMAKE_PREFIX_PATH to the build', action='append', dest='prefix_paths', default=[]) + parser.add_argument('--add-config', help=('Adds the argument to the CMake configuration call. ' + 'Use "--add-config=-DSOMEVAR=SOMEVALUE" if the argument begins with a dash.'), + action='append', dest='config_args', default=[]) parser.add_argument('--deploy', help='Installs the "Dependencies" component of the plugin.', action='store_true', default=False) parser.add_argument('--debug', help='Enable debug builds', action='store_true', default=False) @@ -82,6 +85,7 @@ def build(args, paths): with open(os.path.join(paths.result, args.name + '.7z.git_sha'), 'w') as f: f.write(ide_revision) + cmake_args += args.config_args common.check_print_call(cmake_args + [paths.src], paths.build) common.check_print_call(['cmake', '--build', '.'], paths.build) common.check_print_call(['cmake', '--install', '.', '--prefix', paths.install, '--strip'], diff --git a/share/CMakeLists.txt b/share/CMakeLists.txt index 471053adec..eb3c779b40 100644 --- a/share/CMakeLists.txt +++ b/share/CMakeLists.txt @@ -1 +1,11 @@ add_subdirectory(qtcreator) + +if (NOT APPLE AND NOT WIN32) + install( + DIRECTORY + applications + metainfo + DESTINATION + share + ) +endif() diff --git a/dist/org.qt-project.qtcreator.desktop b/share/applications/org.qt-project.qtcreator.desktop index 034721891d..034721891d 100644 --- a/dist/org.qt-project.qtcreator.desktop +++ b/share/applications/org.qt-project.qtcreator.desktop diff --git a/dist/org.qt-project.qtcreator.appdata.xml b/share/metainfo/org.qt-project.qtcreator.appdata.xml index 4706e69b22..4706e69b22 100644 --- a/dist/org.qt-project.qtcreator.appdata.xml +++ b/share/metainfo/org.qt-project.qtcreator.appdata.xml diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/Values.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/Values.qml index 3f432d4080..9f04812af9 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/Values.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/Values.qml @@ -25,6 +25,7 @@ pragma Singleton import QtQuick 2.12 +import QtQuickDesignerTheme 1.0 QtObject { id: values @@ -80,54 +81,42 @@ QtObject { // Theme Colors - // Dark Theme Defaults - property string themeControlBackground: "#242424" - property string themeControlOutline: "#404040" - property string themeTextColor: "#ffffff" - property string themeDisabledTextColor: "#909090" - - property string themePanelBackground: "#2a2a2a" - property string themeHoverHighlight: "#313131" - property string themeColumnBackground: "#363636" - property string themeFocusEdit: "#444444" - property string themeFocusDrag: "#565656" - - property string themeControlBackgroundPressed: "#606060" - property string themeControlBackgroundChecked: "#565656" - - property string themeInteraction: "#029de0" - - property string themeSliderActiveTrack: "#606060" - property string themeSliderInactiveTrack: "#404040" - property string themeSliderHandle: "#505050" - - property string themeSliderActiveTrackHover: "#7f7f7f" - property string themeSliderInactiveTrackHover: "#505050" - property string themeSliderHandleHover: "#606060" - - property string themeSliderActiveTrackFocus: "#aaaaaa" - property string themeSliderInactiveTrackFocus: "#606060" - property string themeSliderHandleFocus: values.themeInteraction - - property string themeErrorColor: "#df3a3a" + // COLORS NOW COME FROM THE THEME FILES + property string themeControlBackground: Theme.color(Theme.DScontrolBackground) + property string themeControlOutline: Theme.color(Theme.DScontrolOutline) + property string themeTextColor: Theme.color(Theme.DStextColor) + property string themeDisabledTextColor: Theme.color(Theme.DSdisabledTextColor) + property string themePanelBackground: Theme.color(Theme.DSpanelBackground) + property string themeHoverHighlight: Theme.color(Theme.DShoverHighlight) + property string themeColumnBackground: Theme.color(Theme.DScolumnBackground) + property string themeFocusEdit: Theme.color(Theme.DSfocusEdit) + property string themeFocusDrag: Theme.color(Theme.DSfocusDrag) + property string themeControlBackgroundPressed: Theme.color(Theme.DScontrolBackgroundPressed) + property string themeControlBackgroundChecked: Theme.color(Theme.DScontrolBackgroundChecked) + property string themeInteraction: Theme.color(Theme.DSinteraction) + property string themeSliderActiveTrack: Theme.color(Theme.DSsliderActiveTrack) + property string themeSliderInactiveTrack: Theme.color(Theme.DSsliderInactiveTrack) + property string themeSliderHandle: Theme.color(Theme.DSsliderHandle) + property string themeSliderActiveTrackHover: Theme.color(Theme.DSactiveTrackHover) + property string themeSliderInactiveTrackHover: Theme.color(Theme.DSsliderInactiveTrackHover) + property string themeSliderHandleHover: Theme.color(Theme.DSsliderHandleHover) + property string themeSliderActiveTrackFocus: Theme.color(Theme.DSsliderActiveTrackFocus) + property string themeSliderInactiveTrackFocus:Theme.color(Theme.DSsliderInactiveTrackFocus) + property string themeSliderHandleFocus: Theme.color(Theme.DSsliderHandleFocus) + property string themeErrorColor: Theme.color(Theme.DSerrorColor) // NEW NEW NEW NEW NEW - property string themeControlBackgroundDisabled: "#363636" - property string themeControlOutlineDisabled: "#404040" - property string themeTextColorDisabled: "#606060" - - property string themeTextSelectionColor: "#029de0" - property string themeTextSelectedTextColor: "#ffffff" - - property string themeScrollBarTrack: "#404040" - property string themeScrollBarHandle: "#505050" - - property string themeControlBackgroundInteraction: "#404040" // TODO Name. Right now themeFocusEdit is used for all 'edit' states. Is that correct? Different color! - - property string themeTranslationIndicatorBorder: "#7f7f7f" - - property string themeSectionHeadBackground: "#191919" + property string themeControlBackgroundDisabled: Theme.color(Theme.DScontrolBackgroundDisabled) + property string themeControlOutlineDisabled: Theme.color(Theme.DScontrolOutlineDisabled) + property string themeTextColorDisabled: Theme.color(Theme.DStextColorDisabled) + property string themeTextSelectionColor: Theme.color(Theme.DStextSelectionColor) + property string themeTextSelectedTextColor:Theme.color(Theme.DStextSelectedTextColor) + property string themeScrollBarTrack: Theme.color(Theme.DSscrollBarTrack) + property string themeScrollBarHandle: Theme.color(Theme.DSscrollBarHandle) + property string themeControlBackgroundInteraction: Theme.color(Theme.DScontrolBackgroundInteraction) // TODO Name. Right now themeFocusEdit is used for all 'edit' states. Is that correct? Different color! + property string themeTranslationIndicatorBorder: Theme.color(Theme.DStranlsationIndicatorBorder) + property string themeSectionHeadBackground: Theme.color(Theme.DSsectionHeadBackground) // Taken out of Constants.js - property string themeChangedStateText: "#99ccff" + property string themeChangedStateText: Theme.color(Theme.DSchangedStateText) } diff --git a/share/qtcreator/themes/dark.creatortheme b/share/qtcreator/themes/dark.creatortheme index 41439ff22a..fa4a6ab330 100644 --- a/share/qtcreator/themes/dark.creatortheme +++ b/share/qtcreator/themes/dark.creatortheme @@ -22,6 +22,43 @@ backgroundColorDisabled=ff444444 qmlDesignerButtonColor=ff3c3e40 [Colors] + +;DS controls theme START +DScontrolBackground=ff404040 +DScontrolOutline=ff595959 +DStextColor=ffffffff +DSdisabledTextColor=ff909090 +DSpanelBackground=ff454444 +DShoverHighlight=ff313131 +DScolumnBackground=ff363636 +DSfocusEdit=ff444444 +DSfocusDrag=ff565656 +DScontrolBackgroundPressed=ff7a7a7a +DScontrolBackgroundChecked=ff565656 +DSinteraction=ff3f91c4 +DSsliderActiveTrack=ff7a7a7a +DSsliderInactiveTrack=ff4d4d4d +DSsliderHandle=ff505050 +DSsliderActiveTrackHover=ff7f7f7f +DSsliderInactiveTrackHover=ff505050 +DSsliderHandleHover=ff7a7a7a +DSsliderActiveTrackFocus=ffaaaaaa +DSsliderInactiveTrackFocus=ff7a7a7a +DSsliderHandleFocus=ff3f91c4 +DSerrorColor=ffdf3a3a +DScontrolBackgroundDisabled=ff363636 +DScontrolOutlineDisabled=ff4d4d4d +DStextColorDisabled=ff7a7a7a +DStextSelectionColor=ff3f91c4 +DStextSelectedTextColor=ffffffff +DSscrollBarTrack=ff4d4d4d +DSscrollBarHandle=ff505050 +DScontrolBackgroundInteraction=ff4d4d4d +DStranslationIndicatorBorder=ff7f7f7f +DSsectionHeadBackground=ff424242 +DSchangedStateText=ff99ccff +;DS controls theme END + BackgroundColorAlternate=alternateBackground BackgroundColorDark=shadowBackground BackgroundColorHover=hoverBackground diff --git a/share/qtcreator/themes/default.creatortheme b/share/qtcreator/themes/default.creatortheme index 08890a7c2f..8686733ab4 100644 --- a/share/qtcreator/themes/default.creatortheme +++ b/share/qtcreator/themes/default.creatortheme @@ -13,6 +13,43 @@ splitterColor=ff151515 qmlDesignerButtonColor=ff4c4e50 [Colors] + +;DS controls theme START +DScontrolBackground=ff404040 +DScontrolOutline=ff595959 +DStextColor=ffffffff +DSdisabledTextColor=ff909090 +DSpanelBackground=ff454444 +DShoverHighlight=ff313131 +DScolumnBackground=ff363636 +DSfocusEdit=ff444444 +DSfocusDrag=ff565656 +DScontrolBackgroundPressed=ff7a7a7a +DScontrolBackgroundChecked=ff565656 +DSinteraction=ff3f91c4 +DSsliderActiveTrack=ff7a7a7a +DSsliderInactiveTrack=ff4d4d4d +DSsliderHandle=ff505050 +DSsliderActiveTrackHover=ff7f7f7f +DSsliderInactiveTrackHover=ff505050 +DSsliderHandleHover=ff7a7a7a +DSsliderActiveTrackFocus=ffaaaaaa +DSsliderInactiveTrackFocus=ff7a7a7a +DSsliderHandleFocus=ff3f91c4 +DSerrorColor=ffdf3a3a +DScontrolBackgroundDisabled=ff363636 +DScontrolOutlineDisabled=ff4d4d4d +DStextColorDisabled=ff7a7a7a +DStextSelectionColor=ff3f91c4 +DStextSelectedTextColor=ffffffff +DSscrollBarTrack=ff4d4d4d +DSscrollBarHandle=ff505050 +DScontrolBackgroundInteraction=ff4d4d4d +DStranslationIndicatorBorder=ff7f7f7f +DSsectionHeadBackground=ff424242 +DSchangedStateText=ff99ccff +;DS controls theme END + BackgroundColorAlternate=ff3d3d3d BackgroundColorDark=shadowBackground BackgroundColorHover=ff515151 diff --git a/share/qtcreator/themes/flat-dark.creatortheme b/share/qtcreator/themes/flat-dark.creatortheme index e281f189aa..1df02cd463 100644 --- a/share/qtcreator/themes/flat-dark.creatortheme +++ b/share/qtcreator/themes/flat-dark.creatortheme @@ -26,6 +26,43 @@ backgroundColorDisabled=ff444444 qmlDesignerButtonColor=ff4c4e50 [Colors] + +;DS controls theme START +DScontrolBackground=ff404040 +DScontrolOutline=ff595959 +DStextColor=ffffffff +DSdisabledTextColor=ff909090 +DSpanelBackground=ff454444 +DShoverHighlight=ff313131 +DScolumnBackground=ff363636 +DSfocusEdit=ff444444 +DSfocusDrag=ff565656 +DScontrolBackgroundPressed=ff7a7a7a +DScontrolBackgroundChecked=ff565656 +DSinteraction=ff1d545c +DSsliderActiveTrack=ff7a7a7a +DSsliderInactiveTrack=ff4d4d4d +DSsliderHandle=ff505050 +DSsliderActiveTrackHover=ff7f7f7f +DSsliderInactiveTrackHover=ff505050 +DSsliderHandleHover=ff7a7a7a +DSsliderActiveTrackFocus=ffaaaaaa +DSsliderInactiveTrackFocus=ff7a7a7a +DSsliderHandleFocus=ff1d545c +DSerrorColor=ffdf3a3a +DScontrolBackgroundDisabled=ff363636 +DScontrolOutlineDisabled=ff4d4d4d +DStextColorDisabled=ff7a7a7a +DStextSelectionColor=ff1d545c +DStextSelectedTextColor=ffffffff +DSscrollBarTrack=ff4d4d4d +DSscrollBarHandle=ff505050 +DScontrolBackgroundInteraction=ff4d4d4d +DStranslationIndicatorBorder=ff7f7f7f +DSsectionHeadBackground=ff424242 +DSchangedStateText=ff99ccff +;DS controls theme END + BackgroundColorAlternate=alternateBackground BackgroundColorDark=shadowBackground BackgroundColorHover=hoverBackground @@ -202,7 +239,7 @@ CodeModel_Error_TextMarkColor=error CodeModel_Warning_TextMarkColor=warning QmlDesigner_BackgroundColor=qmlDesignerButtonColor -QmlDesigner_HighlightColor=ff3f91c4 +QmlDesigner_HighlightColor=ff1d545c QmlDesigner_FormEditorSelectionColor=ff4ba2ff QmlDesigner_FormEditorForegroundColor=ffffffff QmlDesigner_BackgroundColorDarkAlternate=qmlDesignerButtonColor diff --git a/share/qtcreator/themes/flat-light.creatortheme b/share/qtcreator/themes/flat-light.creatortheme index f6b726762c..b8b4e7eabd 100644 --- a/share/qtcreator/themes/flat-light.creatortheme +++ b/share/qtcreator/themes/flat-light.creatortheme @@ -22,6 +22,43 @@ warning=ffecbc1c qmlDesignerButtonColor=fff8f8f8 [Colors] + +;DS controls theme START +DScontrolBackground=ffffffff +DScontrolOutline=ff777777 +DStextColor=ff242424 +DSdisabledTextColor=ff505050 +DSpanelBackground=fff2f2f2 +DShoverHighlight=ffe6e6e6 +DScolumnBackground=ffaaaaaa +DSfocusEdit=ffeaeaea +DSfocusDrag=ffd1d1d1 +DScontrolBackgroundPressed=ff505050 +DScontrolBackgroundChecked=ff5e5e5e +DSinteraction=ff0492c9 +DSsliderActiveTrack=ff363636 +DSsliderInactiveTrack=ffe6e6e6 +DSsliderHandle=ff777777 +DSsliderActiveTrackHover=ff7f7f7f +DSsliderInactiveTrackHover=ff5e5e5e +DSsliderHandleHover=ff505050 +DSsliderActiveTrackFocus=ff363636 +DSsliderInactiveTrackFocus=ff505050 +DSsliderHandleFocus=ff0492c9 +DSerrorColor=ffdf3a3a +DScontrolBackgroundDisabled=ffaaaaaa +DScontrolOutlineDisabled=ff777777 +DStextColorDisabled=ff505050 +DStextSelectionColor=ff0492c9 +DStextSelectedTextColor=ffffffff +DSscrollBarTrack=ff777777 +DSscrollBarHandle=ff505050 +DScontrolBackgroundInteraction=ff777777 +DStranslationIndicatorBorder=ffebebeb +DSsectionHeadBackground=ffebebeb +DSchangedStateText=ff99ccff +;DS controls theme END + BackgroundColorAlternate=alternateBackground BackgroundColorDark=shadowBackground BackgroundColorHover=hoverBackground diff --git a/share/qtcreator/themes/flat.creatortheme b/share/qtcreator/themes/flat.creatortheme index 0f057d80c0..e80a8d85f1 100644 --- a/share/qtcreator/themes/flat.creatortheme +++ b/share/qtcreator/themes/flat.creatortheme @@ -20,6 +20,43 @@ splitter=ff313131 qmlDesignerButtonColor=ff4c4e50 [Colors] + +;DS controls theme START +DScontrolBackground=ff404040 +DScontrolOutline=ff595959 +DStextColor=ffffffff +DSdisabledTextColor=ff909090 +DSpanelBackground=ff454444 +DShoverHighlight=ff313131 +DScolumnBackground=ff363636 +DSfocusEdit=ff444444 +DSfocusDrag=ff565656 +DScontrolBackgroundPressed=ff7a7a7a +DScontrolBackgroundChecked=ff565656 +DSinteraction=ff3f91c4 +DSsliderActiveTrack=ff7a7a7a +DSsliderInactiveTrack=ff4d4d4d +DSsliderHandle=ff505050 +DSsliderActiveTrackHover=ff7f7f7f +DSsliderInactiveTrackHover=ff505050 +DSsliderHandleHover=ff7a7a7a +DSsliderActiveTrackFocus=ffaaaaaa +DSsliderInactiveTrackFocus=ff7a7a7a +DSsliderHandleFocus=ff3f91c4 +DSerrorColor=ffdf3a3a +DScontrolBackgroundDisabled=ff363636 +DScontrolOutlineDisabled=ff4d4d4d +DStextColorDisabled=ff7a7a7a +DStextSelectionColor=ff3f91c4 +DStextSelectedTextColor=ffffffff +DSscrollBarTrack=ff4d4d4d +DSscrollBarHandle=ff505050 +DScontrolBackgroundInteraction=ff4d4d4d +DStranslationIndicatorBorder=ff7f7f7f +DSsectionHeadBackground=ff424242 +DSchangedStateText=ff99ccff +;DS controls theme END + BackgroundColorAlternate=alternateBackground BackgroundColorDark=shadowBackground BackgroundColorHover=hoverBackground diff --git a/share/qtcreator/translations/CMakeLists.txt b/share/qtcreator/translations/CMakeLists.txt index 7b4d29bd77..d8ade110bc 100644 --- a/share/qtcreator/translations/CMakeLists.txt +++ b/share/qtcreator/translations/CMakeLists.txt @@ -44,168 +44,6 @@ else() VERBATIM) endif() -function(_extract_ts_data_from_targets outprefix) - set(_sources "") - set(_includes "") - - set(_targets "${ARGN}") - list(REMOVE_DUPLICATES _targets) - - foreach(t IN ITEMS ${_targets}) - if (TARGET "${t}") - get_target_property(_skip_translation "${t}" QT_SKIP_TRANSLATION) - get_target_property(_source_dir "${t}" SOURCE_DIR) - get_target_property(_interface_include_dirs "${t}" INTERFACE_INCLUDE_DIRECTORIES) - get_target_property(_include_dirs "${t}" INCLUDE_DIRECTORIES) - get_target_property(_source_files "${t}" SOURCES) - get_target_property(_extra_translations "${t}" QT_EXTRA_TRANSLATIONS) - - if (NOT _skip_translation) - if(_include_dirs) - list(APPEND _includes ${_include_dirs}) - endif() - - if(_interface_include_dirs) - list(APPEND _interface_includes ${_include_dirs}) - endif() - - set(_target_sources "") - if(_source_files) - list(APPEND _target_sources ${_source_files}) - endif() - if(_extra_translations) - list(APPEND _target_sources ${_extra_translations}) - endif() - foreach(s IN ITEMS ${_target_sources}) - get_filename_component(_abs_source "${s}" ABSOLUTE BASE_DIR "${_source_dir}") - list(APPEND _sources "${_abs_source}") - endforeach() - endif() - endif() - endforeach() - - set("${outprefix}_sources" "${_sources}" PARENT_SCOPE) - set("${outprefix}_includes" "${_includes}" PARENT_SCOPE) -endfunction() - -function(_create_ts_custom_target name) - cmake_parse_arguments(_arg "" "FILE_PREFIX;TS_TARGET_PREFIX" "LANGUAGES;SOURCES;INCLUDES" ${ARGN}) - if (_arg_UNPARSED_ARGUMENTS) - message(FATAL_ERROR "Invalid parameters to _create_ts_custom_target: ${_arg_UNPARSED_ARGUMENTS}.") - endif() - - if (NOT _arg_TS_TARGET_PREFIX) - set(_arg_TS_TARGET_PREFIX "ts_") - endif() - - set(ts_languages ${_arg_LANGUAGES}) - if (NOT ts_languages) - set(ts_languages "${name}") - endif() - - foreach(l IN ITEMS ${ts_languages}) - list(APPEND ts_files "${CMAKE_CURRENT_SOURCE_DIR}/${_arg_FILE_PREFIX}_${l}.ts") - endforeach() - - set(_sources "${_arg_SOURCES}") - list(SORT _sources) - - set(_includes "${_arg_INCLUDES}") - - list(REMOVE_DUPLICATES _sources) - list(REMOVE_DUPLICATES _includes) - - list(REMOVE_ITEM _sources "") - list(REMOVE_ITEM _includes "") - - set(_prepended_includes) - foreach(include IN LISTS _includes) - list(APPEND _prepended_includes "-I${include}") - endforeach() - set(_includes "${_prepended_includes}") - - string(REPLACE ";" "\n" _sources_str "${_sources}") - string(REPLACE ";" "\n" _includes_str "${_includes}") - - set(ts_file_list "${CMAKE_CURRENT_BINARY_DIR}/ts_${name}.lst") - file(WRITE "${ts_file_list}" "${_sources_str}\n${_includes_str}\n") - - add_custom_target("${_arg_TS_TARGET_PREFIX}${name}" - COMMAND Qt5::lupdate -locations relative -no-ui-lines -no-sort "@${ts_file_list}" -ts ${ts_files} - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - COMMENT "Generate .ts files" - DEPENDS ${_sources} - VERBATIM) -endfunction() - -function(add_translation_targets file_prefix) - if (NOT TARGET Qt5::lrelease) - # No Qt translation tools were found: Skip this directory - message(WARNING "No Qt translation tools found, skipping translation targets. Add find_package(Qt5 COMPONENTS LinguistTools) to CMake to enable.") - return() - endif() - - cmake_parse_arguments(_arg "" - "OUTPUT_DIRECTORY;INSTALL_DESTINATION;TS_TARGET_PREFIX;QM_TARGET_PREFIX;ALL_QM_TARGET" - "LANGUAGES;TARGETS;SOURCES;INCLUDES" ${ARGN}) - if (_arg_UNPARSED_ARGUMENTS) - message(FATAL_ERROR "Invalid parameters to add_translation_targets: ${_arg_UNPARSED_ARGUMENTS}.") - endif() - - if (NOT _arg_TS_TARGET_PREFIX) - set(_arg_TS_TARGET_PREFIX "ts_") - endif() - - if (NOT _arg_QM_TARGET_PREFIX) - set(_arg_QM_TARGET_PREFIX "generate_qm_file_") - endif() - - if (NOT _arg_ALL_QM_TARGET) - set(_arg_ALL_QM_TARGET "generate_qm_files") - endif() - - if (NOT _arg_OUTPUT_DIRECTORY) - set(_arg_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") - endif() - - if (NOT _arg_INSTALL_DESTINATION) - message(FATAL_ERROR "Please provide a INSTALL_DESTINATION to add_translation_targets") - endif() - - _extract_ts_data_from_targets(_to_process "${_arg_TARGETS}") - - _create_ts_custom_target(untranslated - FILE_PREFIX "${file_prefix}" TS_TARGET_PREFIX "${_arg_TS_TARGET_PREFIX}" - SOURCES ${_to_process_sources} ${_arg_SOURCES} INCLUDES ${_to_process_includes} ${_arg_INCLUDES}) - - if (NOT TARGET "${_arg_ALL_QM_TARGET}") - add_custom_target("${_arg_ALL_QM_TARGET}" ALL COMMENT "Generate .qm-files") - endif() - - foreach(l IN ITEMS ${_arg_LANGUAGES}) - set(_ts_file "${CMAKE_CURRENT_SOURCE_DIR}/${file_prefix}_${l}.ts") - set(_qm_file "${_arg_OUTPUT_DIRECTORY}/${file_prefix}_${l}.qm") - - _create_ts_custom_target("${l}" FILE_PREFIX "${file_prefix}" TS_TARGET_PREFIX "${_arg_TS_TARGET_PREFIX}" - SOURCES ${_to_process_sources} ${_arg_SOURCES} INCLUDES ${_to_process_includes} ${_arg_INCLUDES}) - - add_custom_command(OUTPUT "${_qm_file}" - COMMAND Qt5::lrelease "${_ts_file}" -qm "${_qm_file}" - MAIN_DEPENDENCY "${_ts_file}" - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - COMMENT "Generate .qm file" - VERBATIM) - add_custom_target("${_arg_QM_TARGET_PREFIX}${l}" DEPENDS "${_qm_file}") - install(FILES "${_qm_file}" DESTINATION ${_arg_INSTALL_DESTINATION}) - - add_dependencies("${_arg_ALL_QM_TARGET}" "${_arg_QM_TARGET_PREFIX}${l}") - endforeach() - - _create_ts_custom_target(all LANGUAGES ${_arg_LANGUAGES} FILE_PREFIX "${file_prefix}" - SOURCES ${_to_process_sources} ${_arg_SOURCES} INCLUDES ${_to_process_includes} ${_arg_INCLUDES}) -endfunction() - -### collect targets to include in documentation: add_translation_targets(qtcreator LANGUAGES ${languages} OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${IDE_DATA_PATH}/translations" diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index a04ed8a959..25276f1de1 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -49,6 +49,10 @@ if (NOT DEFINED add_qtc_plugin) include(\${CMAKE_CURRENT_LIST_DIR}/QtCreatorAPI.cmake) endif() +if (NOT DEFINED add_translation_targets) + include(\${CMAKE_CURRENT_LIST_DIR}/QtCreatorTranslations.cmake) +endif() + if (NOT TARGET QtCreator::Core) include(\${CMAKE_CURRENT_LIST_DIR}/QtCreatorTargets.cmake) endif() @@ -61,6 +65,7 @@ export(EXPORT QtCreator file(COPY ${PROJECT_SOURCE_DIR}/cmake/QtCreatorIDEBranding.cmake + ${PROJECT_SOURCE_DIR}/cmake/QtCreatorTranslations.cmake ${PROJECT_SOURCE_DIR}/cmake/QtCreatorAPI.cmake DESTINATION ${CMAKE_BINARY_DIR}/cmake ) @@ -69,6 +74,7 @@ file(COPY install( FILES ${PROJECT_SOURCE_DIR}/cmake/QtCreatorIDEBranding.cmake + ${PROJECT_SOURCE_DIR}/cmake/QtCreatorTranslations.cmake ${PROJECT_SOURCE_DIR}/cmake/QtCreatorAPI.cmake ${CMAKE_BINARY_DIR}/cmake/QtCreatorConfig.cmake DESTINATION lib/cmake/QtCreator diff --git a/src/libs/qmljs/parser/qmljslexer.cpp b/src/libs/qmljs/parser/qmljslexer.cpp index ef3718da02..0ae581724d 100644 --- a/src/libs/qmljs/parser/qmljslexer.cpp +++ b/src/libs/qmljs/parser/qmljslexer.cpp @@ -872,7 +872,6 @@ int Lexer::scanString(ScanStringMode mode) { QChar quote = (mode == TemplateContinuation) ? QChar(TemplateHead) : QChar(mode); bool multilineStringLiteral = false; - bool escaped = false; const QChar *startCode = _codePtr - 1; // in case we just parsed a \r, we need to reset this flag to get things working @@ -881,23 +880,16 @@ int Lexer::scanString(ScanStringMode mode) if (_engine) { while (_codePtr <= _endPtr) { - if (escaped) { // former char started an escape sequence - escaped = false; - _char = *_codePtr++; - ++_currentColumnNumber; - continue; - } if (isLineTerminator()) { - if ((quote == QLatin1Char('`') || qmlMode())) + if ((quote == QLatin1Char('`') || qmlMode())) { + --_currentLineNumber; break; + } _errorCode = IllegalCharacter; _errorMessage = QCoreApplication::translate("QmlParser", "Stray newline in string literal"); return T_ERROR; } else if (_char == QLatin1Char('\\')) { - if (mode != DoubleQuote && mode != SingleQuote) - break; - else // otherwise we need to handle an escape sequence - escaped = true; + break; } else if (_char == '$' && quote == QLatin1Char('`')) { break; } else if (_char == quote) { @@ -923,6 +915,7 @@ int Lexer::scanString(ScanStringMode mode) // rewind by one char, so things gets scanned correctly --_codePtr; + --_currentColumnNumber; _validTokenText = true; _tokenText = QString(startCode, _codePtr - startCode); diff --git a/src/libs/utils/theme/theme.h b/src/libs/utils/theme/theme.h index 2bd1bd6845..e0f6e9cdb9 100644 --- a/src/libs/utils/theme/theme.h +++ b/src/libs/utils/theme/theme.h @@ -306,7 +306,43 @@ public: QmlDesigner_BorderColor, QmlDesigner_FormeditorBackgroundColor, QmlDesigner_AlternateBackgroundColor, - QmlDesigner_ScrollBarHandleColor + QmlDesigner_ScrollBarHandleColor, + + /* Palette for DS Controls */ + + DScontrolBackground, + DScontrolOutline, + DStextColor, + DSdisabledTextColor, + DSpanelBackground, + DShoverHighlight, + DScolumnBackground, + DSfocusEdit, + DSfocusDrag, + DScontrolBackgroundPressed, + DScontrolBackgroundChecked, + DSinteraction, + DSsliderActiveTrack, + DSsliderInactiveTrack, + DSsliderHandle, + DSsliderActiveTrackHover, + DSsliderInactiveTrackHover, + DSsliderHandleHover, + DSsliderActiveTrackFocus, + DSsliderInactiveTrackFocus, + DSsliderHandleFocus, + DSerrorColor, + DScontrolBackgroundDisabled, + DScontrolOutlineDisabled, + DStextColorDisabled, + DStextSelectionColor, + DStextSelectedTextColor, + DSscrollBarTrack, + DSscrollBarHandle, + DScontrolBackgroundInteraction, + DStranslationIndicatorBorder, + DSsectionHeadBackground, + DSchangedStateText }; enum Gradient { diff --git a/src/plugins/android/androidconfigurations.cpp b/src/plugins/android/androidconfigurations.cpp index a574c4c123..f5ce84007e 100644 --- a/src/plugins/android/androidconfigurations.cpp +++ b/src/plugins/android/androidconfigurations.cpp @@ -1324,15 +1324,14 @@ static QVariant findOrRegisterDebugger(ToolChain *tc, void AndroidConfigurations::updateAutomaticKitList() { - const QList<Kit *> androidKits = Utils::filtered(KitManager::kits(), [](Kit *k) { - Core::Id deviceTypeId = DeviceTypeKitAspect::deviceTypeId(k); - return deviceTypeId == Core::Id(Constants::ANDROID_DEVICE_TYPE); - }); - - for (auto k: androidKits) { - if (k->value(Constants::ANDROID_KIT_NDK).isNull() || k->value(Constants::ANDROID_KIT_SDK).isNull()) { - k->setValueSilently(Constants::ANDROID_KIT_NDK, currentConfig().ndkLocation(QtSupport::QtKitAspect::qtVersion(k)).toString()); - k->setValue(Constants::ANDROID_KIT_SDK, currentConfig().sdkLocation().toString()); + for (Kit *k : KitManager::kits()) { + if (DeviceTypeKitAspect::deviceTypeId(k) == Constants::ANDROID_DEVICE_TYPE) { + if (k->value(Constants::ANDROID_KIT_NDK).isNull() || k->value(Constants::ANDROID_KIT_SDK).isNull()) { + if (BaseQtVersion *qt = QtKitAspect::qtVersion(k)) { + k->setValueSilently(Constants::ANDROID_KIT_NDK, currentConfig().ndkLocation(qt).toString()); + k->setValue(Constants::ANDROID_KIT_SDK, currentConfig().sdkLocation().toString()); + } + } } } diff --git a/src/plugins/android/androiddevicedialog.cpp b/src/plugins/android/androiddevicedialog.cpp index a2783d4d51..35da26b24c 100644 --- a/src/plugins/android/androiddevicedialog.cpp +++ b/src/plugins/android/androiddevicedialog.cpp @@ -483,8 +483,12 @@ AndroidDeviceDialog::~AndroidDeviceDialog() AndroidDeviceInfo AndroidDeviceDialog::device() { + refreshDeviceList(); + if (!m_defaultDevice.isEmpty()) { - auto device = std::find_if(m_connectedDevices.begin(), m_connectedDevices.end(), [this](const AndroidDeviceInfo& info) { + auto device = std::find_if(m_connectedDevices.begin(), + m_connectedDevices.end(), + [this](const AndroidDeviceInfo &info) { return info.serialNumber == m_defaultDevice || info.avdname == m_defaultDevice; }); @@ -494,8 +498,6 @@ AndroidDeviceInfo AndroidDeviceDialog::device() m_defaultDevice.clear(); } - refreshDeviceList(); - if (exec() == QDialog::Accepted) return m_model->device(m_ui->deviceView->currentIndex()); return AndroidDeviceInfo(); diff --git a/src/plugins/autotest/testoutputreader.cpp b/src/plugins/autotest/testoutputreader.cpp index d23b779fe5..3faa7282f3 100644 --- a/src/plugins/autotest/testoutputreader.cpp +++ b/src/plugins/autotest/testoutputreader.cpp @@ -50,7 +50,7 @@ TestOutputReader::TestOutputReader(const QFutureInterface<TestResultPtr> &future }; if (m_testApplication) { - connect(m_testApplication, &QProcess::readyRead, + connect(m_testApplication, &QProcess::readyReadStandardOutput, this, [chopLineBreak, this] () { m_testApplication->setReadChannel(QProcess::StandardOutput); while (m_testApplication->canReadLine()) diff --git a/src/plugins/cppcheck/cppcheckrunner.cpp b/src/plugins/cppcheck/cppcheckrunner.cpp index 86b53f3007..649e01a247 100644 --- a/src/plugins/cppcheck/cppcheckrunner.cpp +++ b/src/plugins/cppcheck/cppcheckrunner.cpp @@ -43,7 +43,7 @@ CppcheckRunner::CppcheckRunner(CppcheckTool &tool) : { if (Utils::HostOsInfo::hostOs() == Utils::OsTypeLinux) { QProcess getConf; - getConf.start("getconf ARG_MAX"); + getConf.start("getconf", {"ARG_MAX"}); getConf.waitForFinished(2000); const QByteArray argMax = getConf.readAllStandardOutput().replace("\n", ""); m_maxArgumentsLength = std::max(argMax.toInt(), m_maxArgumentsLength); diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp index 93bc013ae1..ff3bc70788 100644 --- a/src/plugins/debugger/debuggerengine.cpp +++ b/src/plugins/debugger/debuggerengine.cpp @@ -386,6 +386,10 @@ public: // This triggers activity in the EngineManager which // recognizes the rampdown by the m_perpective == nullptr above. perspective->destroy(); + + // disconnect the follow font size connection + TextEditorSettings::instance()->disconnect(this); + delete perspective; } diff --git a/src/plugins/debugger/debuggermainwindow.cpp b/src/plugins/debugger/debuggermainwindow.cpp index ed33870ed5..1c404a22b2 100644 --- a/src/plugins/debugger/debuggermainwindow.cpp +++ b/src/plugins/debugger/debuggermainwindow.cpp @@ -69,8 +69,6 @@ static Q_LOGGING_CATEGORY(perspectivesLog, "qtc.utils.perspectives", QtWarningMs namespace Utils { -const int SettingsVersion = 3; - const char LAST_PERSPECTIVE_KEY[] = "LastPerspective"; const char MAINWINDOW_KEY[] = "Debugger.MainWindow"; const char AUTOHIDE_TITLEBARS_KEY[] = "AutoHideTitleBars"; diff --git a/src/plugins/debugger/uvsc/uvscclient.cpp b/src/plugins/debugger/uvsc/uvscclient.cpp index 57de522689..33889646ed 100644 --- a/src/plugins/debugger/uvsc/uvscclient.cpp +++ b/src/plugins/debugger/uvsc/uvscclient.cpp @@ -61,7 +61,7 @@ public: Q_GLOBAL_STATIC(QLibrary, gUvscLibrary) Q_GLOBAL_STATIC(QVector<UvscClient *>, gUvscClients) -static QMutex gUvscsGuard(QMutex::NonRecursive); +static QMutex gUvscsGuard; static QStringList childrenINamesOf(const QString &parentIName, const QStringList &allINames) { diff --git a/src/plugins/mcusupport/mcusupportoptionspage.cpp b/src/plugins/mcusupport/mcusupportoptionspage.cpp index e4506b902d..b06a97f174 100644 --- a/src/plugins/mcusupport/mcusupportoptionspage.cpp +++ b/src/plugins/mcusupport/mcusupportoptionspage.cpp @@ -231,7 +231,6 @@ void McuSupportOptionsWidget::apply() return; McuSupportOptions::registerQchFiles(); - McuSupportOptions::removeOutdatedKits(); const McuTarget *mcuTarget = currentMcuTarget(); if (!mcuTarget) diff --git a/src/plugins/mcusupport/mcusupportplugin.cpp b/src/plugins/mcusupport/mcusupportplugin.cpp index 3028c7e80e..0be99d8c05 100644 --- a/src/plugins/mcusupport/mcusupportplugin.cpp +++ b/src/plugins/mcusupport/mcusupportplugin.cpp @@ -36,6 +36,7 @@ #include <projectexplorer/devicesupport/devicemanager.h> #include <projectexplorer/jsonwizard/jsonwizardfactory.h> +#include <projectexplorer/kitmanager.h> using namespace ProjectExplorer; @@ -86,6 +87,10 @@ bool McuSupportPlugin::initialize(const QStringList& arguments, QString* errorSt void McuSupportPlugin::extensionsInitialized() { ProjectExplorer::DeviceManager::instance()->addDevice(McuSupportDevice::create()); + + connect(KitManager::instance(), &KitManager::kitsLoaded, [](){ + McuSupportOptions::removeOutdatedKits(); + }); } } // namespace Internal diff --git a/src/plugins/qmldesigner/components/connectioneditor/stylesheet.css b/src/plugins/qmldesigner/components/connectioneditor/stylesheet.css index aeacc63733..5155ac3efa 100644 --- a/src/plugins/qmldesigner/components/connectioneditor/stylesheet.css +++ b/src/plugins/qmldesigner/components/connectioneditor/stylesheet.css @@ -40,7 +40,7 @@ QHeaderView::section { background-color: #494949; padding: 4px; border: 1px solid black; - color: #cacaca; + color: creatorTheme.DStextColor; margin: 2px } @@ -54,7 +54,7 @@ QWidget#widgetSpacer { QStackedWidget { border: 0px; - background-color: #4f4f4f; + background-color: creatorTheme.QmlDesigner_TabLight; } QTabBar::tab:selected { diff --git a/src/plugins/qmldesigner/components/resources/stylesheet.css b/src/plugins/qmldesigner/components/resources/stylesheet.css index 841540f1c8..cc72eae062 100644 --- a/src/plugins/qmldesigner/components/resources/stylesheet.css +++ b/src/plugins/qmldesigner/components/resources/stylesheet.css @@ -51,12 +51,12 @@ QLineEdit#itemLibrarySearchInput QComboBox QAbstractItemView { show-decoration-selected: 1; /* make the selection span the entire width of the view */ - background-color: #494949; /* sets background of the menu */ + background-color: creatorTheme.DSpanelBackground; /* sets background of the menu */ border: 1px solid black; margin: 0px; /* some spacing around the menu */ - color: #cacaca; - selection-background-color: #d2d2d2; - selection-color: #404040; + color: creatorTheme.DStextColor; + selection-background-color: creatorTheme.DSinteraction; + selection-color: creatorTheme.DStextSelectedTextColor; } QTabWidget { diff --git a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp index 91e4c9c7b0..fd0d9a51ff 100644 --- a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp +++ b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp @@ -982,9 +982,6 @@ bool TextToModelMerger::load(const QString &data, DifferenceHandler &differenceH if (rewriterBenchmark().isInfoEnabled()) time.start(); - // maybe the project environment (kit, ...) changed, so we need to clean old caches - NodeMetaInfo::clearCache(); - const QUrl url = m_rewriterView->model()->fileUrl(); m_qrcMapping.clear(); @@ -994,6 +991,9 @@ bool TextToModelMerger::load(const QString &data, DifferenceHandler &differenceH setActive(true); m_rewriterView->setIncompleteTypeInformation(false); + // maybe the project environment (kit, ...) changed, so we need to clean old caches + NodeMetaInfo::clearCache(); + try { Snapshot snapshot = m_rewriterView->textModifier()->qmljsSnapshot(); diff --git a/src/plugins/qmldesigner/designmodewidget.cpp b/src/plugins/qmldesigner/designmodewidget.cpp index 2cf61e6e20..e52eabc7bf 100644 --- a/src/plugins/qmldesigner/designmodewidget.cpp +++ b/src/plugins/qmldesigner/designmodewidget.cpp @@ -316,7 +316,7 @@ void DesignModeWidget::setup() // Apply stylesheet to QWidget QByteArray sheet = Utils::FileReader::fetchQrc(":/qmldesigner/stylesheet.css"); sheet += Utils::FileReader::fetchQrc(":/qmldesigner/scrollbar.css"); - sheet += "QLabel { background-color: #4f4f4f; }"; + sheet += "QLabel { background-color: creatorTheme.DSsectionHeadBackground; }"; navigationView.widget->setStyleSheet(Theme::replaceCssColors(QString::fromUtf8(sheet))); // Create DockWidget diff --git a/tests/auto/sdktool/sdktool.qbs b/tests/auto/sdktool/sdktool.qbs index bd8b8d267a..b7928c7487 100644 --- a/tests/auto/sdktool/sdktool.qbs +++ b/tests/auto/sdktool/sdktool.qbs @@ -1,4 +1,4 @@ -import qbs +import qbs.FileInfo QtcAutotest { name: "sdktool autotest" @@ -8,5 +8,8 @@ QtcAutotest { files: "tst_sdktool.cpp" } - cpp.defines: base.concat(['SDKTOOL_DIR="' + qbs.installRoot + '/' + qtc.ide_libexec_path + '"']) + cpp.defines: base.concat([ + 'SDKTOOL_DIR="' + FileInfo.joinPaths(FileInfo.fromNativeSeparators(qbs.installRoot), + qtc.ide_libexec_path) + '"' + ]) } diff --git a/tests/system/suite_debugger/tst_cli_output_console/test.py b/tests/system/suite_debugger/tst_cli_output_console/test.py index 9774ea59b2..3f996241af 100644 --- a/tests/system/suite_debugger/tst_cli_output_console/test.py +++ b/tests/system/suite_debugger/tst_cli_output_console/test.py @@ -39,12 +39,15 @@ def main(): mainEditor = waitForObject(":Qt Creator_CppEditor::Internal::CPPEditorWidget") replaceEditorContent(mainEditor, "") typeLines(mainEditor, ["#include <QDebug>", + "#include <QThread>", "#include <iostream>", + "struct Waiter:public QThread{Waiter(){QThread::sleep(2);}};", "int main(int, char *argv[])", "{", 'std::cout << \"' + outputStdOut + '\" << std::endl;', 'std::cerr << \"' + outputStdErr + '\" << std::endl;', - 'qDebug() << \"' + outputQDebug + '\";']) + 'qDebug() << \"' + outputQDebug + '\";', + 'Waiter();']) # Rely on code completion for closing bracket invokeMenuItem("File", "Save All") openDocument(project + "." + project + "\\.pro") |