Merge remote-tracking branch 'origin/11.0' into qds/dev
Conflicts: src/plugins/qmldesigner/designercore/metainfo/metainfo.cpp src/plugins/qmlprojectmanager/cmakegen/generatecmakelists.cpp tests/auto/qml/qmlprojectmanager/fileformat/fileformat.qbs tests/auto/qml/qmlprojectmanager/fileformat/tst_fileformat.cpp Change-Id: I257f1908917bcc58805619b53b6866f2f73ca544
@@ -23,19 +23,19 @@ AlignEscapedNewlines: DontAlign
|
||||
AlignOperands: true
|
||||
AlignTrailingComments: true
|
||||
AllowAllParametersOfDeclarationOnNextLine: true
|
||||
AllowShortBlocksOnASingleLine: false
|
||||
AllowShortBlocksOnASingleLine: Never
|
||||
AllowShortCaseLabelsOnASingleLine: false
|
||||
AllowShortFunctionsOnASingleLine: Inline
|
||||
AllowShortIfStatementsOnASingleLine: false
|
||||
AllowShortLoopsOnASingleLine: false
|
||||
AlwaysBreakAfterReturnType: None
|
||||
AlwaysBreakBeforeMultilineStrings: false
|
||||
AlwaysBreakTemplateDeclarations: true
|
||||
AlwaysBreakTemplateDeclarations: Yes
|
||||
BinPackArguments: false
|
||||
BinPackParameters: false
|
||||
BraceWrapping:
|
||||
AfterClass: true
|
||||
AfterControlStatement: false
|
||||
AfterControlStatement: Never
|
||||
AfterEnum: false
|
||||
AfterFunction: true
|
||||
AfterNamespace: false
|
||||
@@ -100,7 +100,7 @@ PenaltyExcessCharacter: 50
|
||||
PenaltyReturnTypeOnItsOwnLine: 300
|
||||
PointerAlignment: Right
|
||||
ReflowComments: false
|
||||
SortIncludes: true
|
||||
SortIncludes: CaseSensitive
|
||||
SortUsingDeclarations: true
|
||||
SpaceAfterCStyleCast: true
|
||||
SpaceAfterTemplateKeyword: false
|
||||
@@ -113,6 +113,6 @@ SpacesInContainerLiterals: false
|
||||
SpacesInCStyleCastParentheses: false
|
||||
SpacesInParentheses: false
|
||||
SpacesInSquareBrackets: false
|
||||
Standard: Cpp11
|
||||
Standard: c++11
|
||||
TabWidth: 4
|
||||
UseTab: Never
|
||||
|
||||
10
.github/workflows/build_cmake.yml
vendored
@@ -7,9 +7,9 @@ on:
|
||||
- 'doc/**'
|
||||
|
||||
env:
|
||||
QT_VERSION: 6.5.0
|
||||
QT_VERSION: 6.5.1
|
||||
MACOS_DEPLOYMENT_TARGET: 10.15
|
||||
CLANG_VERSION: 16.0.0
|
||||
CLANG_VERSION: 16.0.2
|
||||
ELFUTILS_VERSION: 0.175
|
||||
CMAKE_VERSION: 3.21.1
|
||||
NINJA_VERSION: 1.10.2
|
||||
@@ -577,7 +577,11 @@ jobs:
|
||||
endif()
|
||||
|
||||
if ("${{ runner.os }}" STREQUAL "macOS")
|
||||
set(ENV{CMAKE_OSX_ARCHITECTURES} "x86_64;arm64")
|
||||
if (${{github.ref}} MATCHES "tags/v(.*)")
|
||||
set(ENV{CMAKE_OSX_ARCHITECTURES} "x86_64;arm64")
|
||||
else()
|
||||
set(ENV{CMAKE_OSX_ARCHITECTURES} "x86_64")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
execute_process(
|
||||
|
||||
@@ -68,11 +68,24 @@ if(MSVC)
|
||||
add_compile_options(/wd4573)
|
||||
endif()
|
||||
|
||||
find_package(Qt5
|
||||
find_package(Qt6
|
||||
${IDE_QT_VERSION_MIN}
|
||||
COMPONENTS Concurrent Core Gui Network PrintSupport Qml Sql Widgets Xml Core5Compat ${QT_TEST_COMPONENT}
|
||||
REQUIRED
|
||||
)
|
||||
# hack for Qbs which still supports Qt5 and Qt6
|
||||
if (TARGET Qt6::Core5CompatPrivate)
|
||||
if (CMAKE_VERSION VERSION_LESS 3.18)
|
||||
set_property(TARGET Qt6::Core5CompatPrivate PROPERTY IMPORTED_GLOBAL TRUE)
|
||||
endif()
|
||||
add_library(Qt6Core5CompatPrivate ALIAS Qt6::Core5CompatPrivate)
|
||||
endif()
|
||||
if (TARGET Qt6::Core5Compat)
|
||||
if (CMAKE_VERSION VERSION_LESS 3.18)
|
||||
set_property(TARGET Qt6::Core5Compat PROPERTY IMPORTED_GLOBAL TRUE)
|
||||
endif()
|
||||
add_library(Qt6Core5Compat ALIAS Qt6::Core5Compat)
|
||||
endif()
|
||||
|
||||
# Common intermediate directory for QML modules which are defined via qt_add_qml_module()
|
||||
set(QT_QML_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/qml_modules")
|
||||
@@ -85,8 +98,8 @@ if (MSVC AND QT_FEATURE_static_runtime)
|
||||
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
|
||||
endif()
|
||||
|
||||
find_package(Qt5 COMPONENTS LinguistTools QUIET)
|
||||
find_package(Qt5 COMPONENTS Quick QuickWidgets Designer DesignerComponents Help SerialPort Svg Tools QUIET)
|
||||
find_package(Qt6 OPTIONAL_COMPONENTS Quick QuickWidgets Designer DesignerComponentsPrivate
|
||||
Help SerialPort Svg Tools LinguistTools QUIET)
|
||||
|
||||
find_package(Threads)
|
||||
find_package(Clang QUIET)
|
||||
|
||||
185
README.md
@@ -747,3 +747,188 @@ SQLite (https://www.sqlite.org) is in the Public Domain.
|
||||
public domain worldwide. This software is distributed without any warranty.
|
||||
|
||||
http://creativecommons.org/publicdomain/zero/1.0/
|
||||
|
||||
### WinPty
|
||||
|
||||
Implementation of a pseudo terminal for Windows.
|
||||
|
||||
https://github.com/rprichard/winpty
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2011-2016 Ryan Prichard
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to
|
||||
deal in the Software without restriction, including without limitation the
|
||||
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
sell copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
IN THE SOFTWARE.
|
||||
|
||||
|
||||
### ptyqt
|
||||
|
||||
Pty-Qt is small library for access to console applications by pseudo-terminal interface on Mac,
|
||||
Linux and Windows. On Mac and Linux it uses standard PseudoTerminal API and on Windows it uses
|
||||
WinPty(prefer) or ConPty.
|
||||
|
||||
https://github.com/kafeg/ptyqt
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2019 Vitaly Petrov, v31337@gmail.com
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
### libvterm
|
||||
|
||||
An abstract C99 library which implements a VT220 or xterm-like terminal emulator.
|
||||
It doesn't use any particular graphics toolkit or output system, instead it invokes callback
|
||||
function pointers that its embedding program should provide it to draw on its behalf.
|
||||
It avoids calling malloc() during normal running state, allowing it to be used in embedded kernel
|
||||
situations.
|
||||
|
||||
https://www.leonerd.org.uk/code/libvterm/
|
||||
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2008 Paul Evans <leonerd@leonerd.org.uk>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
### terminal/shellintegrations
|
||||
|
||||
The Terminal plugin uses scripts to integrate with the shell. The scripts are
|
||||
located in the Qt Creator source tree in src/plugins/terminal/shellintegrations.
|
||||
|
||||
https://github.com/microsoft/vscode/tree/main/src/vs/workbench/contrib/terminal/browser/media
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2015 - present Microsoft Corporation
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
### terminal/shellintegrations/clink
|
||||
|
||||
The Terminal plugin uses a lua script to integrate with the cmd shell when using clink.
|
||||
|
||||
https://github.com/chrisant996/clink-gizmos
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2023 Chris Antos
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
### cmake
|
||||
|
||||
The CMake project manager uses the CMake lexer code for parsing CMake files
|
||||
|
||||
https://gitlab.kitware.com/cmake/cmake.git
|
||||
|
||||
CMake - Cross Platform Makefile Generator
|
||||
Copyright 2000-2023 Kitware, Inc. and Contributors
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
* Neither the name of Kitware, Inc. nor the names of Contributors
|
||||
may be used to endorse or promote products derived from this
|
||||
software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
@@ -1,103 +0,0 @@
|
||||
#.rst:
|
||||
# FindQt5
|
||||
# -------
|
||||
#
|
||||
# Qt5 wrapper around Qt6 CMake code.
|
||||
#
|
||||
|
||||
unset(__arguments)
|
||||
if (Qt5_FIND_QUIETLY)
|
||||
list(APPEND __arguments QUIET)
|
||||
endif()
|
||||
if (Qt5_FIND_REQUIRED)
|
||||
list(APPEND __arguments REQUIRED)
|
||||
endif()
|
||||
|
||||
if (Qt5_FIND_COMPONENTS)
|
||||
# for some reason QUIET doesn't really work when passed to the arguments list
|
||||
if (Qt5_FIND_QUIETLY)
|
||||
list(APPEND __arguments OPTIONAL_COMPONENTS)
|
||||
else()
|
||||
list(APPEND __arguments COMPONENTS)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
find_package(Qt6 ${Qt5_FIND_VERSION} CONFIG COMPONENTS Core QUIET)
|
||||
if (NOT Qt6_FOUND)
|
||||
# remove Core5Compat from components to find in Qt5, but add a dummy target,
|
||||
# which unfortunately cannot start with "Qt6::"
|
||||
# also remove Tools, where some tools have moved in Qt6, e.g. from Help
|
||||
list(REMOVE_ITEM Qt5_FIND_COMPONENTS Core5Compat)
|
||||
list(REMOVE_ITEM Qt5_FIND_COMPONENTS Tools)
|
||||
find_package(Qt5 ${Qt5_FIND_VERSION} CONFIG ${__arguments} ${Qt5_FIND_COMPONENTS})
|
||||
if (NOT TARGET Qt6Core5Compat)
|
||||
add_library(Qt6Core5Compat INTERFACE)
|
||||
endif()
|
||||
|
||||
# Remove Qt6 from the not found packages in Qt5 mode
|
||||
get_property(not_found_packages GLOBAL PROPERTY "PACKAGES_NOT_FOUND")
|
||||
if(not_found_packages)
|
||||
list(REMOVE_ITEM not_found_packages Qt6)
|
||||
set_property(GLOBAL PROPERTY "PACKAGES_NOT_FOUND" "${not_found_packages}")
|
||||
endif()
|
||||
return()
|
||||
else()
|
||||
# since Qt 6.2 some components are renamed to *Private
|
||||
foreach(possible_private_libs DesignerComponents QmlDebug)
|
||||
list(FIND Qt5_FIND_COMPONENTS ${possible_private_libs} dcIndex)
|
||||
if(dcIndex GREATER_EQUAL 0)
|
||||
find_package(Qt6${possible_private_libs}Private CONFIG QUIET)
|
||||
if(TARGET Qt6::${possible_private_libs}Private)
|
||||
set_property(TARGET Qt6::${possible_private_libs}Private PROPERTY IMPORTED_GLOBAL TRUE)
|
||||
add_library(Qt5::${possible_private_libs} ALIAS Qt6::${possible_private_libs}Private)
|
||||
list(REMOVE_AT Qt5_FIND_COMPONENTS ${dcIndex})
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
find_package(Qt6 CONFIG ${__arguments} ${Qt5_FIND_COMPONENTS})
|
||||
endif()
|
||||
|
||||
set(__additional_imported_components ATSPI2_nolink) # Work around QTBUG-97023
|
||||
foreach(comp IN LISTS Qt5_FIND_COMPONENTS __additional_imported_components)
|
||||
if(TARGET Qt6::${comp})
|
||||
if (NOT TARGET Qt5::${comp})
|
||||
if (NOT QT_FEATURE_static)
|
||||
set_property(TARGET Qt6::${comp} PROPERTY IMPORTED_GLOBAL TRUE)
|
||||
endif()
|
||||
add_library(Qt5::${comp} ALIAS Qt6::${comp})
|
||||
endif()
|
||||
if (TARGET Qt6::${comp}Private AND NOT TARGET Qt5::${comp}Private)
|
||||
if (NOT QT_FEATURE_static)
|
||||
set_property(TARGET Qt6::${comp}Private PROPERTY IMPORTED_GLOBAL TRUE)
|
||||
endif()
|
||||
add_library(Qt5::${comp}Private ALIAS Qt6::${comp}Private)
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
# alias Qt6::Core5Compat to Qt6Core5Compat to make consistent with Qt5 path
|
||||
if (TARGET Qt6::Core5Compat AND NOT TARGET Qt6Core5Compat)
|
||||
add_library(Qt6Core5Compat ALIAS Qt6::Core5Compat)
|
||||
endif()
|
||||
|
||||
set(Qt5_FOUND ${Qt6_FOUND})
|
||||
set(Qt5_VERSION ${Qt6_VERSION})
|
||||
|
||||
foreach(tool qmake lrelease lupdate moc rcc qhelpgenerator)
|
||||
if (TARGET Qt6::${tool} AND NOT TARGET Qt5::${tool})
|
||||
add_executable(Qt5::${tool} IMPORTED GLOBAL)
|
||||
get_target_property(imported_location Qt6::${tool} IMPORTED_LOCATION)
|
||||
# handle separate tools for each configuration
|
||||
if (NOT imported_location)
|
||||
get_target_property(imported_location Qt6::${tool} IMPORTED_LOCATION_RELEASE)
|
||||
endif()
|
||||
set_target_properties(Qt5::${tool} PROPERTIES IMPORTED_LOCATION "${imported_location}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
if (NOT DEFINED qt5_wrap_cpp)
|
||||
function(qt5_wrap_cpp outfiles)
|
||||
qt6_wrap_cpp(${outfiles} ${ARGN})
|
||||
set(${outfiles} ${${outfiles}} PARENT_SCOPE)
|
||||
endfunction()
|
||||
endif()
|
||||
@@ -188,7 +188,7 @@ function(add_qtc_library name)
|
||||
set(TEST_DEFINES WITH_TESTS SRCDIR="${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
endif()
|
||||
|
||||
if(_arg_STATIC AND UNIX)
|
||||
if((_arg_STATIC OR _arg_OBJECT) AND UNIX)
|
||||
# not added by Qt if reduce_relocations is turned off for it
|
||||
set_target_properties(${name} PROPERTIES POSITION_INDEPENDENT_CODE ON)
|
||||
endif()
|
||||
@@ -628,6 +628,7 @@ function(add_qtc_executable name)
|
||||
|
||||
update_cached_list(__QTC_EXECUTABLES "${name}")
|
||||
|
||||
condition_info(_extra_text _arg_CONDITION)
|
||||
if (NOT _arg_CONDITION)
|
||||
set(_arg_CONDITION ON)
|
||||
endif()
|
||||
@@ -648,6 +649,9 @@ function(add_qtc_executable name)
|
||||
else()
|
||||
set(_executable_enabled OFF)
|
||||
endif()
|
||||
if (NOT _arg_INTERNAL_ONLY)
|
||||
add_feature_info("Executable ${name}" _executable_enabled "${_extra_text}")
|
||||
endif()
|
||||
if (NOT _executable_enabled)
|
||||
return()
|
||||
endif()
|
||||
|
||||
@@ -182,7 +182,7 @@ endfunction()
|
||||
|
||||
function(qtc_add_link_flags_no_undefined target)
|
||||
# needs CheckLinkerFlags
|
||||
if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.18)
|
||||
if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.18 AND NOT MSVC)
|
||||
set(no_undefined_flag "-Wl,--no-undefined")
|
||||
check_linker_flag(CXX ${no_undefined_flag} QTC_LINKER_SUPPORTS_NO_UNDEFINED)
|
||||
if (NOT QTC_LINKER_SUPPORTS_NO_UNDEFINED)
|
||||
@@ -224,7 +224,7 @@ function(set_explicit_moc target_name file)
|
||||
set(file_dependencies DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/${target_name}.json")
|
||||
endif()
|
||||
set_property(SOURCE "${file}" PROPERTY SKIP_AUTOMOC ON)
|
||||
qt5_wrap_cpp(file_moc "${file}" ${file_dependencies})
|
||||
qt_wrap_cpp(file_moc "${file}" ${file_dependencies})
|
||||
target_sources(${target_name} PRIVATE "${file_moc}")
|
||||
endfunction()
|
||||
|
||||
@@ -413,6 +413,7 @@ function(enable_pch target)
|
||||
CXX_VISIBILITY_PRESET hidden
|
||||
VISIBILITY_INLINES_HIDDEN ON
|
||||
CXX_EXTENSIONS OFF
|
||||
POSITION_INDEPENDENT_CODE ON
|
||||
)
|
||||
target_link_libraries(${pch_target} PRIVATE ${pch_dependency})
|
||||
endif()
|
||||
|
||||
@@ -10,7 +10,7 @@ add_feature_info("Build online documentation" WITH_ONLINE_DOCS "")
|
||||
# Used for QT_INSTALL_DOCS
|
||||
function(qt5_query_qmake)
|
||||
if (NOT TARGET Qt::qmake)
|
||||
message(FATAL_ERROR "Qmake was not found. Add find_package(Qt5 COMPONENTS Core) to CMake to enable.")
|
||||
message(FATAL_ERROR "Qmake was not found. Add find_package(Qt6 COMPONENTS Core) to CMake to enable.")
|
||||
endif()
|
||||
# dummy check for if we already queried qmake
|
||||
if (QT_INSTALL_BINS)
|
||||
@@ -142,7 +142,7 @@ function(_setup_qhelpgenerator_targets _qdocconf_file _html_outputdir)
|
||||
endif()
|
||||
|
||||
if (NOT TARGET Qt::qhelpgenerator)
|
||||
message(WARNING "qhelpgenerator missing: No QCH documentation targets were generated. Add find_package(Qt5 COMPONENTS Help) to CMake to enable.")
|
||||
message(WARNING "qhelpgenerator missing: No QCH documentation targets were generated. Add find_package(Qt6 COMPONENTS Help) to CMake to enable.")
|
||||
return()
|
||||
endif()
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
set(IDE_VERSION "10.0.1") # The IDE version.
|
||||
set(IDE_VERSION_COMPAT "10.0.0") # The IDE Compatibility version.
|
||||
set(IDE_VERSION_DISPLAY "10.0.1") # The IDE display version.
|
||||
set(IDE_VERSION "10.0.82") # The IDE version.
|
||||
set(IDE_VERSION_COMPAT "10.0.82") # The IDE Compatibility version.
|
||||
set(IDE_VERSION_DISPLAY "11.0.0-beta1") # The IDE display version.
|
||||
set(IDE_COPYRIGHT_YEAR "2023") # The IDE current copyright year.
|
||||
|
||||
set(IDE_SETTINGSVARIANT "QtProject") # The IDE settings variation.
|
||||
|
||||
@@ -30,7 +30,7 @@ function(_extract_ts_data_from_targets outprefix)
|
||||
|
||||
set(_target_sources "")
|
||||
if(_source_files)
|
||||
list(FILTER _source_files EXCLUDE REGEX ".*[.]json[.]in|.*[.]svg")
|
||||
list(FILTER _source_files EXCLUDE REGEX ".*[.]json[.]in|.*[.]svg|.*[.]pro|.*[.]css")
|
||||
list(APPEND _target_sources ${_source_files})
|
||||
endif()
|
||||
if(_extra_translations)
|
||||
@@ -130,7 +130,7 @@ endfunction()
|
||||
function(add_translation_targets file_prefix)
|
||||
if (NOT TARGET Qt::lrelease OR NOT TARGET Qt::lupdate)
|
||||
# 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.")
|
||||
message(WARNING "No Qt translation tools found, skipping translation targets. Add find_package(Qt6 COMPONENTS LinguistTools) to CMake to enable.")
|
||||
return()
|
||||
endif()
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ instructions:
|
||||
maxTimeBetweenOutput: 3600
|
||||
userMessageOnFailure: "Failed to run build.py, check logs."
|
||||
- type: ChangeDirectory
|
||||
directory: "{{.AgentWorkingDir}}/build/qtsdk/packaging-tools"
|
||||
directory: "{{.AgentWorkingDir}}/build/tqtc-qtsdk/packaging_tools"
|
||||
- type: ExecuteCommand
|
||||
command: "python3 -m pipenv run python -u bld_sdktool.py --qt-url {{.Env.QTC_SDKTOOL_QT_BASE_URL}}{{.Env.QTC_SDKTOOL_QT_EXT}} --qt-build {{.AgentWorkingDir}}/build/sdktool/qt --src {{.AgentWorkingDir}}/qt-creator/qt-creator/src/tools/sdktool --build {{.AgentWorkingDir}}/build/sdktool/build --install {{.AgentWorkingDir}}/build/sdktool/install --make-command make"
|
||||
maxTimeInSeconds: 36000
|
||||
@@ -65,7 +65,7 @@ instructions:
|
||||
maxTimeBetweenOutput: 3600
|
||||
userMessageOnFailure: "Failed to run build.py, check logs."
|
||||
- type: ChangeDirectory
|
||||
directory: "{{.AgentWorkingDir}}/build/qtsdk/packaging-tools"
|
||||
directory: "{{.AgentWorkingDir}}/build/tqtc-qtsdk/packaging_tools"
|
||||
- type: EnvironmentVariable
|
||||
variableName: MACOSX_DEPLOYMENT_TARGET
|
||||
variableValue: "{{.Env.SDKTOOL_MACOSX_DEPLOYMENT_TARGET}}"
|
||||
@@ -117,7 +117,7 @@ instructions:
|
||||
maxTimeBetweenOutput: 3600
|
||||
userMessageOnFailure: "Failed to run build.py, check logs."
|
||||
- type: ChangeDirectory
|
||||
directory: "{{.AgentWorkingDir}}\\build\\qtsdk\\packaging-tools"
|
||||
directory: "{{.AgentWorkingDir}}\\build\\tqtc-qtsdk\\packaging_tools"
|
||||
- type: ExecuteCommand
|
||||
command: "python -m pipenv run python -u bld_sdktool.py --qt-url {{.Env.QTC_SDKTOOL_QT_BASE_URL}}{{.Env.QTC_SDKTOOL_QT_EXT}} --qt-build {{.AgentWorkingDir}}\\build\\sdktool\\qt --src {{.AgentWorkingDir}}\\qt-creator\\qt-creator\\src\\tools\\sdktool --build {{.AgentWorkingDir}}\\build\\sdktool\\build --install {{.AgentWorkingDir}}\\build\\sdktool\\install --make-command nmake"
|
||||
maxTimeInSeconds: 36000
|
||||
|
||||
@@ -7,10 +7,10 @@ instructions:
|
||||
variableValue: "RelWithDebInfo"
|
||||
- type: EnvironmentVariable
|
||||
variableName: LLVM_BASE_URL
|
||||
variableValue: http://master.qt.io/development_releases/prebuilt/libclang/libclang-release_16.0.0-based
|
||||
variableValue: http://master.qt.io/development_releases/prebuilt/libclang/libclang-release_16.0.2-based
|
||||
- type: EnvironmentVariable
|
||||
variableName: QTC_QT_BASE_URL
|
||||
variableValue: "http://ci-files02-hki.intra.qt.io/packages/jenkins/archive/qt/6.5/6.5.0-released/Qt"
|
||||
variableValue: "http://ci-files02-hki.intra.qt.io/packages/jenkins/archive/qt/6.5/6.5.1-released/Qt"
|
||||
- type: EnvironmentVariable
|
||||
variableName: QTC_QT_MODULES
|
||||
variableValue: "qt5compat qtbase qtdeclarative qtimageformats qtquick3d qtquickcontrols2 qtquicktimeline qtserialport qtshadertools qtsvg qttools qttranslations qtwebengine"
|
||||
|
||||
@@ -16,13 +16,6 @@ instructions:
|
||||
directory: "{{.BuildDir}}"
|
||||
- type: ChangeDirectory
|
||||
directory: "{{.BuildDir}}"
|
||||
- type: InstallSourceArchive
|
||||
maxTimeInSeconds: 600
|
||||
maxTimeBetweenOutput: 600
|
||||
project: qtsdk/qtsdk
|
||||
ref: master
|
||||
directory: "build/qtsdk"
|
||||
userMessageOnFailure: "Failed to install qtsdk, check logs"
|
||||
- type: InstallSourceArchive
|
||||
maxTimeInSeconds: 600
|
||||
maxTimeBetweenOutput: 600
|
||||
@@ -57,7 +50,7 @@ instructions:
|
||||
property: host.os
|
||||
not_equals_value: Windows
|
||||
- type: ChangeDirectory
|
||||
directory: "{{.BuildDir}}/qtsdk/packaging-tools"
|
||||
directory: "{{.BuildDir}}/tqtc-qtsdk/packaging_tools"
|
||||
- type: ExecuteCommand
|
||||
command: "python3 -m pipenv run python -u install_qt.py --qt-path {{.BuildDir}}/qt_install_dir --base-url {{.Env.QTC_QT_BASE_URL}} --base-url-postfix={{.Env.QTC_QT_POSTFIX}} --icu7z http://master.qt.io/development_releases/prebuilt/icu/prebuilt/56.1/icu-linux-g++-Rhel7.2-x64.7z {{.Env.QTC_QT_MODULES}}"
|
||||
executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution
|
||||
|
||||
223
dist/changelog/changes-11.0.0.md
vendored
Normal file
@@ -0,0 +1,223 @@
|
||||
Qt Creator 11
|
||||
=============
|
||||
|
||||
Qt Creator version 11 contains bug fixes and new features.
|
||||
|
||||
The most important changes are listed in this document. For a complete list of
|
||||
changes, see the Git log for the Qt Creator sources that you can check out from
|
||||
the public Git repository. For example:
|
||||
|
||||
git clone git://code.qt.io/qt-creator/qt-creator.git
|
||||
git log --cherry-pick --pretty=oneline origin/10.0..v11.0.0
|
||||
|
||||
General
|
||||
-------
|
||||
|
||||
* Added a `Terminal` view (QTCREATORBUG-8511)
|
||||
* Opt-out via `Preferences` > `Terminal` preferences
|
||||
* Added support for
|
||||
* different shells, colors, fonts, and multiple tabs
|
||||
* opening file paths in Qt Creator with `Ctrl+click` (`Cmd+click` on
|
||||
macOS)
|
||||
* Added a more spacious "relaxed" toolbar style `Environment > Interface`
|
||||
* Added a pin button to progress details instead of automatically resetting
|
||||
their position (QTCREATORBUG-28829)
|
||||
* Improved the selection and navigation in the `Issues` view
|
||||
(QTCREATORBUG-26128, QTCREATORBUG-27006, QTCREATORBUG-27506)
|
||||
* Locator
|
||||
* Improved performance
|
||||
* Added the creation of directories to the `Files in File System` filter
|
||||
* Added device roots and browsing remote file systems to the
|
||||
`Files in File System` filter
|
||||
|
||||
Editing
|
||||
-------
|
||||
|
||||
* Improved the performance of the multi-cursor support
|
||||
* Fixed the saving of hardlinked files (QTCREATORBUG-19651)
|
||||
* Fixed an issue of copy and paste with multiple cursors (QTCREATORBUG-29117)
|
||||
|
||||
### C++
|
||||
|
||||
* Improved the style of forward declarations in the outline (QTCREATORBUG-312)
|
||||
* Added highlighting for typed string literals and user-defined literals
|
||||
(QTCREATORBUG-28869)
|
||||
* Added the option to create class members from assignments (QTCREATORBUG-1918)
|
||||
* Fixed that locator showed both the declaration and the definition of symbols
|
||||
(QTCREATORBUG-13894)
|
||||
* Fixed the handling of C++20 keywords and concepts
|
||||
* Built-in
|
||||
* Fixed support for `if`-statements with initializer (QTCREATORBUG-29182)
|
||||
|
||||
### Language Server Protocol
|
||||
|
||||
* Added experimental support for GitHub Copilot
|
||||
([GitHub documentation](https://github.com/features/copilot))
|
||||
* Added missing actions for opening the `Call Hierarchy` (QTCREATORBUG-28839,
|
||||
QTCREATORBUG-28842)
|
||||
|
||||
### QML
|
||||
|
||||
* Fixed the reformatting in the presence of JavaScript directives and function
|
||||
return type annotations (QTCREATORBUG-29001, QTCREATORBUG-29046)
|
||||
* Fixed that reformatting changed `of` to `in` (QTCREATORBUG-29123)
|
||||
* Fixed the completion for Qt Quick Controls (QTCREATORBUG-28648)
|
||||
|
||||
### Python
|
||||
|
||||
* Added the option to create a virtual environment (`venv`) to the Python
|
||||
interpreter selector and the wizard (PYSIDE-2152)
|
||||
|
||||
### Markdown
|
||||
|
||||
* Added a Markdown editor with preview (QTCREATORBUG-27883)
|
||||
* Added a wizard for Markdown files (QTCREATORBUG-29056)
|
||||
|
||||
Projects
|
||||
--------
|
||||
|
||||
* Made it possible to add devices without going through the wizard
|
||||
* Added support for moving files to a different directory when renaming
|
||||
(QTCREATORBUG-15981)
|
||||
|
||||
### CMake
|
||||
|
||||
* Implemented adding files to the project (QTCREATORBUG-25922,
|
||||
QTCREATORBUG-26006, QTCREATORBUG-27213, QTCREATORBUG-27538,
|
||||
QTCREATORBUG-28493, QTCREATORBUG-28904, QTCREATORBUG-28985,
|
||||
QTCREATORBUG-29006)
|
||||
* Fixed issues with detecting a configured Qt version when importing a build
|
||||
(QTCREATORBUG-29075)
|
||||
|
||||
### Python
|
||||
|
||||
* Added an option for the interpreter to the wizards
|
||||
|
||||
### vcpkg
|
||||
|
||||
* Added experimental support for `vcpkg`
|
||||
([vcpgk documentation](https://vcpkg.io/en/))
|
||||
* Added an option for the `vcpkg` installation location
|
||||
* Added a search dialog for packages
|
||||
* Added a wizard and an editor for `vcpkg.json` files
|
||||
|
||||
Debugging
|
||||
---------
|
||||
|
||||
* Improved the UI for enabling and disabling debuggers (QTCREATORBUG-28627)
|
||||
|
||||
### C++
|
||||
|
||||
* Added an option for the default number of array elements to show
|
||||
(`Preferences > Debugger > Locals & Expressions > Default array size`)
|
||||
* CDB
|
||||
* Added automatic source file mapping for Qt packages
|
||||
* Fixed the variables view on remote Windows devices (QTCREATORBUG-29000)
|
||||
* LLDB
|
||||
* Fixed that long lines in the application output were broken into multiple
|
||||
lines (QTCREATORBUG-29098)
|
||||
|
||||
### Qt Quick
|
||||
|
||||
* Improved the auto-detection if QML debugging is required (QTCREATORBUG-28627)
|
||||
* Added an option for disabling static analyzer messages to
|
||||
`Qt Quick > QML/JS Editing` (QTCREATORBUG-29095)
|
||||
|
||||
Analyzer
|
||||
--------
|
||||
|
||||
### Clang
|
||||
|
||||
* Fixed that a `.clang-tidy` file in the project directory was not used by
|
||||
default (QTCREATORBUG-28852)
|
||||
|
||||
### Axivion
|
||||
|
||||
* Added experimental support
|
||||
|
||||
Version Control Systems
|
||||
-----------------------
|
||||
|
||||
### Git
|
||||
|
||||
* Instant Blame
|
||||
* Improved the performance (QTCREATORBUG-29151)
|
||||
* Fixed that it did not show at the end of the document
|
||||
|
||||
Platforms
|
||||
---------
|
||||
|
||||
### Android
|
||||
|
||||
* Fixed an issue with building library targets (QTCREATORBUG-26980)
|
||||
|
||||
### Remote Linux
|
||||
|
||||
* Removed the automatic sourcing of target-side shell profiles
|
||||
|
||||
### Docker
|
||||
|
||||
* Added support for `qmake` based projects (QTCREATORBUG-29140)
|
||||
* Fixed issues after deleting the Docker image for a registered Docker device
|
||||
(QTCREATORBUG-28880)
|
||||
|
||||
### QNX
|
||||
|
||||
* Added `slog2info` as a requirement for devices
|
||||
* Fixed the support for remote working directories (QTCREATORBUG-28900)
|
||||
|
||||
Credits for these changes go to:
|
||||
--------------------------------
|
||||
Aleksei German
|
||||
Alessandro Portale
|
||||
Alexander Drozdov
|
||||
Alexander Pershin
|
||||
Ali Kianian
|
||||
Alibek Omarov
|
||||
Amr Essam
|
||||
Andre Hartmann
|
||||
André Pönitz
|
||||
Artem Mukhin
|
||||
Artem Sokolovskii
|
||||
Assam Boudjelthia
|
||||
Björn Schäpers
|
||||
Brook Cronin
|
||||
Burak Hancerli
|
||||
Christian Kandeler
|
||||
Christian Stenger
|
||||
Cristian Adam
|
||||
David Schulz
|
||||
Eike Ziller
|
||||
Esa Törmänen
|
||||
Fabian Kosmale
|
||||
Filippo Gentile
|
||||
Friedemann Kleint
|
||||
Henning Gruendl
|
||||
Jaroslaw Kobus
|
||||
Jussi Witick
|
||||
Kai Köhne
|
||||
Knud Dollereder
|
||||
Knut Petter Svendsen
|
||||
Leena Miettinen
|
||||
Mahmoud Badri
|
||||
Marco Bubke
|
||||
Marcus Tillmanns
|
||||
Martin Delille
|
||||
Mats Honkamaa
|
||||
Miikka Heikkinen
|
||||
Mitch Curtis
|
||||
Niels Weber
|
||||
Orgad Shaneh
|
||||
Pranta Dastider
|
||||
Robert Löhning
|
||||
Samuel Ghinet
|
||||
Semih Yavuz
|
||||
Tasuku Suzuki
|
||||
Thiago Macieira
|
||||
Thomas Hartmann
|
||||
Tim Jenssen
|
||||
Tim Jenßen
|
||||
Ulf Hermann
|
||||
Vikas Pachdha
|
||||
Yasser Grimes
|
||||
Yixue Wang
|
||||
@@ -1,6 +1,6 @@
|
||||
<div class="sectionlist normallist">
|
||||
<ul>
|
||||
<li><a href="qtcreator-toc.html">All Topics</a></li>
|
||||
<li><a href="qtcreator-toc.html">Click Here for a List of All Topics</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="sectionlist normallist">
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 24.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
x="0px" y="0px" viewBox="0 0 450 272" xml:space="preserve">
|
||||
<g>
|
||||
<path fill="#C9C7C7" d="M435.78,272H14.19C6.36,272,0,265.64,0,257.81V14.21C0,6.37,6.36,0.01,14.19,0.01h421.58
|
||||
c7.84,0,14.19,6.36,14.19,14.19v243.6C449.97,265.64,443.61,272,435.78,272z"/>
|
||||
<path fill="#878686" d="M0.44,19.66L0,14.19C0,6.36,6.35,0.01,14.18,0.01h421.61c7.83,0,14.18,6.35,14.18,14.18v6.84"/>
|
||||
<circle fill="#DD5958" cx="17.43" cy="10.66" r="5"/>
|
||||
<circle fill="#DBC558" cx="34.41" cy="10.66" r="5"/>
|
||||
<circle fill="#52B257" cx="51.4" cy="10.66" r="5"/>
|
||||
</g>
|
||||
<path fill="#FFFFFF" d="M310.9,130.29c-5.72-1.44-12.54-1.96-19.95-2.96c-1.52-5.95-3.87-11.55-6.92-16.72
|
||||
c4.57-6.01,9.08-11.24,12.13-16.37c0.86-1.44,1.03-3.56-0.1-4.69L282,75.49c-1.13-1.13-3.23-0.97-4.69-0.1
|
||||
c-5.11,3.05-10.33,7.56-16.35,12.11c-5.11-3.01-10.66-5.35-16.55-6.9c-1.03-7.53-1.54-14.47-3.01-20.28
|
||||
c-0.41-1.65-1.81-3.25-3.4-3.25h-19.89c-1.59,0-2.99,1.61-3.4,3.25c-1.46,5.76-1.96,12.66-2.99,20.13
|
||||
c-5.91,1.5-11.49,3.81-16.61,6.79c-6.05-4.59-11.3-9.14-16.45-12.21c-1.44-0.86-3.56-1.01-4.69,0.1L159.92,89.2
|
||||
c-1.13,1.13-0.97,3.25-0.1,4.69c3.03,5.11,7.51,10.29,12.04,16.26c-3.07,5.15-5.48,10.75-7.06,16.68
|
||||
c-7.43,1.01-14.31,1.52-20.05,2.99c-1.65,0.41-3.25,1.79-3.25,3.38v19.89c0,1.59,1.61,2.99,3.25,3.4
|
||||
c5.68,1.44,12.43,1.96,19.78,2.94c1.5,6.03,3.85,11.73,6.9,16.98c-4.51,5.91-8.93,11.08-11.96,16.12c-0.86,1.46-1.01,3.58,0.1,4.69
|
||||
l14.06,14.06c1.13,1.13,3.25,0.97,4.69,0.1c5-2.96,10.11-7.35,15.93-11.8c5.25,3.15,10.97,5.58,17.05,7.16
|
||||
c0.99,7.31,1.5,14.04,2.94,19.72c0.41,1.63,1.79,3.23,3.38,3.23c6.63,0,13.26,0,19.89,0c1.59,0,2.99-1.61,3.4-3.23
|
||||
c1.42-5.64,1.93-12.33,2.92-19.58c6.07-1.54,11.82-3.93,17.09-7.04c5.89,4.47,11.01,8.87,16.04,11.88c1.46,0.86,3.58,1.03,4.69-0.1
|
||||
l14.06-14.06c1.13-1.13,0.97-3.23,0.1-4.69c-2.99-5.02-7.39-10.15-11.86-16.02c3.09-5.23,5.48-10.91,7.02-16.92
|
||||
c7.39-1.01,14.21-1.52,19.93-2.96c1.63-0.41,3.23-1.81,3.23-3.4v-19.89C314.13,132.1,312.53,130.7,310.9,130.29z M227.41,175.67
|
||||
c-18.07,0-32.71-14.65-32.71-32.71s14.65-32.71,32.71-32.71s32.71,14.65,32.71,32.71S245.48,175.67,227.41,175.67z"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 2.3 KiB |
@@ -1,39 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 24.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
x="0px" y="0px" viewBox="0 0 450 272" xml:space="preserve">
|
||||
<g>
|
||||
<path fill="#C9C7C7" d="M377.11,224.13H33.89c-7.84,0-14.19-6.36-14.19-14.19V13.71c0-7.84,6.36-14.19,14.19-14.19h343.21
|
||||
c7.84,0,14.19,6.36,14.19,14.19v196.23C391.3,217.78,384.95,224.13,377.11,224.13z"/>
|
||||
<path fill="#878686" d="M20.06,15.74l-0.37-4.51c0-6.47,5.24-11.71,11.71-11.71h348.18c6.47,0,11.71,5.24,11.71,11.71v5.65"/>
|
||||
<circle fill="#DD5958" cx="34.09" cy="8.31" r="4.13"/>
|
||||
<circle fill="#DBC558" cx="48.12" cy="8.31" r="4.13"/>
|
||||
<circle fill="#52B257" cx="62.14" cy="8.31" r="4.13"/>
|
||||
</g>
|
||||
<rect x="63.92" y="25.97" fill="#949292" width="277.09" height="185.41"/>
|
||||
<g>
|
||||
<path fill="none" stroke="#FFFFFF" stroke-width="7.8665" stroke-linecap="round" stroke-miterlimit="10" d="M153.93,111.58
|
||||
c0-26.07,21.13-47.2,47.2-47.2s47.2,21.13,47.2,47.2s-21.13,47.2-47.2,47.2"/>
|
||||
<circle fill="#FFFFFF" cx="200.14" cy="111.25" r="21.12"/>
|
||||
<text transform="matrix(1 0 0 1 123.5649 108.1074)" fill="#FFFFFF" font-family="'TitilliumWeb-Bold'" font-size="26.1845px">1</text>
|
||||
<text transform="matrix(1 0 0 1 248.9873 71.7993)" fill="#FFFFFF" font-family="'TitilliumWeb-Bold'" font-size="26.1845px">2</text>
|
||||
<text transform="matrix(1 0 0 1 202.1196 190.623)" fill="#FFFFFF" font-family="'TitilliumWeb-Bold'" font-size="26.1845px">3</text>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#C9C7C7" d="M412.27,272h-73c-7.84,0-14.19-6.36-14.19-14.19V89.58c0-7.84,6.36-14.19,14.19-14.19h73
|
||||
c7.84,0,14.19,6.36,14.19,14.19v168.22C426.47,265.64,420.11,272,412.27,272z"/>
|
||||
<path fill="#878686" d="M325.4,89.59l-0.32-3.95c0-5.66,4.59-10.25,10.25-10.25h80.88c5.66,0,10.25,4.59,10.25,10.25v4.94"/>
|
||||
</g>
|
||||
|
||||
<rect x="302.37" y="133.85" transform="matrix(-1.836970e-16 1 -1 -1.836970e-16 551.7495 -200.3197)" fill="#949292" width="147.32" height="83.73"/>
|
||||
<g>
|
||||
<path fill="none" stroke="#FFFFFF" stroke-width="3.7066" stroke-linecap="round" stroke-miterlimit="10" d="M355.31,172.15
|
||||
c0-12.28,9.96-22.24,22.24-22.24c12.28,0,22.24,9.96,22.24,22.24c0,12.28-9.96,22.24-22.24,22.24"/>
|
||||
<circle fill="#FFFFFF" cx="377.08" cy="171.99" r="9.95"/>
|
||||
<text transform="matrix(1 0 0 1 341 170.5078)" fill="#FFFFFF" font-family="'TitilliumWeb-Bold'" font-size="12.338px">1</text>
|
||||
<text transform="matrix(1 0 0 1 400.0977 153.4004)" fill="#FFFFFF" font-family="'TitilliumWeb-Bold'" font-size="12.338px">2</text>
|
||||
<text transform="matrix(1 0 0 1 378.0137 209.3896)" fill="#FFFFFF" font-family="'TitilliumWeb-Bold'" font-size="12.338px">3</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 2.7 KiB |
@@ -1,37 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 24.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
x="0px" y="0px" viewBox="0 0 450 272" xml:space="preserve">
|
||||
<g>
|
||||
<path fill="#C9C7C7" d="M435.81,271.62H14.41c-7.84,0-14.19-6.36-14.19-14.19V13.94c0-7.84,6.36-14.19,14.19-14.19h421.4
|
||||
c7.84,0,14.19,6.36,14.19,14.19v243.49C450,265.27,443.64,271.62,435.81,271.62z"/>
|
||||
<path fill="#878686" d="M0.66,19.38l-0.44-5.46c0-7.83,6.35-14.18,14.18-14.18h421.43c7.83,0,14.18,6.35,14.18,14.18v6.84"/>
|
||||
<circle fill="#DD5958" cx="17.63" cy="10.39" r="4.99"/>
|
||||
<circle fill="#DBC558" cx="34.61" cy="10.39" r="4.99"/>
|
||||
<circle fill="#52B257" cx="51.59" cy="10.39" r="4.99"/>
|
||||
</g>
|
||||
<rect x="66.15" y="30.54" fill="#444345" width="343.54" height="233.69"/>
|
||||
<rect x="40.18" y="30.54" fill="#333333" width="25.97" height="233.69"/>
|
||||
<text transform="matrix(1 0 0 1 51.6992 49.5161)" fill="#FFFFFF" font-family="'IBMPlexMono'" font-size="13.9815px">1</text>
|
||||
<text transform="matrix(1 0 0 1 51.6992 67.8916)" fill="#FFFFFF" font-family="'IBMPlexMono'" font-size="13.9815px">2</text>
|
||||
<text transform="matrix(1 0 0 1 51.6992 86.2676)" fill="#FFFFFF" font-family="'IBMPlexMono'" font-size="13.9815px">3</text>
|
||||
<text transform="matrix(1 0 0 1 51.6992 104.6431)" fill="#FFFFFF" font-family="'IBMPlexMono'" font-size="13.9815px">4</text>
|
||||
<text transform="matrix(1 0 0 1 51.6992 123.0186)" fill="#FFFFFF" font-family="'IBMPlexMono'" font-size="13.9815px">5</text>
|
||||
<text transform="matrix(1 0 0 1 51.6992 141.3945)" fill="#FFFFFF" font-family="'IBMPlexMono'" font-size="13.9815px">6</text>
|
||||
<text transform="matrix(1 0 0 1 51.6992 159.7695)" fill="#FFFFFF" font-family="'IBMPlexMono'" font-size="13.9815px">7</text>
|
||||
<text transform="matrix(1 0 0 1 51.6992 178.1455)" fill="#FFFFFF" font-family="'IBMPlexMono'" font-size="13.9815px">8</text>
|
||||
<text transform="matrix(1 0 0 1 51.6992 196.5215)" fill="#FFFFFF" font-family="'IBMPlexMono'" font-size="13.9815px">9</text>
|
||||
<text transform="matrix(1 0 0 1 43.3105 214.8965)" fill="#FFFFFF" font-family="'IBMPlexMono'" font-size="13.9815px">10</text>
|
||||
<text transform="matrix(1 0 0 1 43.3105 233.2725)" fill="#FFFFFF" font-family="'IBMPlexMono'" font-size="13.9815px">11</text>
|
||||
<text transform="matrix(1 0 0 1 43.3105 251.6484)" fill="#FFFFFF" font-family="'IBMPlexMono'" font-size="13.9815px">12</text>
|
||||
<text transform="matrix(1 0 0 1 78.064 49.5161)" fill="#FFFFFF" font-family="'IBMPlexMono-Light'" font-size="13.9815px">// main.cpp</text>
|
||||
<text transform="matrix(1 0 0 1 78.064 67.8916)" fill="#FFFFFF" font-family="'IBMPlexMono-Light'" font-size="13.9815px">#include <QApplication></text>
|
||||
<text transform="matrix(1 0 0 1 78.064 86.2676)" fill="#FFFFFF" font-family="'IBMPlexMono-Light'" font-size="13.9815px">#include <QTableView></text>
|
||||
<text transform="matrix(1 0 0 1 78.064 104.6431)" fill="#FFFFFF" font-family="'IBMPlexMono-Light'" font-size="13.9815px">#include "mymodel.h"</text>
|
||||
<text transform="matrix(1 0 0 1 78.064 141.3945)" fill="#FFFFFF" font-family="'IBMPlexMono-Light'" font-size="13.9815px">int main(int argc, char *argv[])</text>
|
||||
<text transform="matrix(1 0 0 1 78.064 178.1455)" fill="#FFFFFF" font-family="'IBMPlexMono-Light'" font-size="13.9815px">{</text>
|
||||
<text transform="matrix(1 0 0 1 78.064 196.5215)" fill="#FFFFFF" font-family="'IBMPlexMono-Light'" font-size="13.9815px"> QApplication a(argc, argv);</text>
|
||||
<text transform="matrix(1 0 0 1 78.064 214.8965)" fill="#FFFFFF" font-family="'IBMPlexMono-Light'" font-size="13.9815px"> QTableView tableView;</text>
|
||||
<text transform="matrix(1 0 0 1 78.064 233.2725)" fill="#FFFFFF" font-family="'IBMPlexMono-Light'" font-size="13.9815px"> MyModel myModel;</text>
|
||||
<text transform="matrix(1 0 0 1 78.064 251.6484)" fill="#FFFFFF" font-family="'IBMPlexMono-Light'" font-size="13.9815px">}</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 3.9 KiB |
@@ -1,45 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 24.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
x="0px" y="0px" viewBox="0 0 450 272" xml:space="preserve">
|
||||
<g>
|
||||
<path fill="#C9C7C7" d="M435.81,271.62H14.83c-7.84,0-14.19-6.36-14.19-14.19V14.19C0.63,6.36,6.99,0,14.83,0h420.98
|
||||
C443.64,0,450,6.36,450,14.19v243.23C450,265.27,443.64,271.62,435.81,271.62z"/>
|
||||
<path fill="#878686" d="M1.08,19.62l-0.44-5.45C0.63,6.34,6.97,0,14.8,0h421.04C443.66,0,450,6.34,450,14.16v6.83"/>
|
||||
<circle fill="#DD5958" cx="18.04" cy="10.64" r="4.99"/>
|
||||
<circle fill="#DBC558" cx="35" cy="10.64" r="4.99"/>
|
||||
<circle fill="#52B257" cx="51.96" cy="10.64" r="4.99"/>
|
||||
</g>
|
||||
<path fill="#949292" d="M98.62,245.03H18.8c-2.75,0-5-2.25-5-5V47.72c0-2.75,2.25-5,5-5h79.81c2.75,0,5,2.25,5,5v192.3
|
||||
C103.62,242.78,101.37,245.03,98.62,245.03z"/>
|
||||
<path fill="none" stroke="#FFFFFF" stroke-width="11.8898" stroke-linecap="round" stroke-miterlimit="10" d="M177.01,125.88
|
||||
c0-39.4,31.94-71.34,71.34-71.34s71.34,31.94,71.34,71.34s-31.94,71.34-71.34,71.34"/>
|
||||
<path fill="none" stroke="#FFFFFF" stroke-width="2.5935" stroke-linecap="round" stroke-miterlimit="10" d="M44.02,68.87
|
||||
c0-8.59,6.97-15.56,15.56-15.56s15.56,6.97,15.56,15.56s-6.97,15.56-15.56,15.56"/>
|
||||
<circle fill="#FFFFFF" cx="246.85" cy="125.38" r="31.93"/>
|
||||
<polygon fill="#878686" points="252.27,115.11 247.86,173.16 266.03,151.21 293.54,155.76 "/>
|
||||
<text transform="matrix(1 0 0 1 131.1162 120.6279)" fill="#FFFFFF" font-family="'TitilliumWeb-Bold'" font-size="39.5765px">1</text>
|
||||
<text transform="matrix(1 0 0 1 320.6885 65.7515)" fill="#FFFFFF" font-family="'TitilliumWeb-Bold'" font-size="39.5765px">2</text>
|
||||
<text transform="matrix(1 0 0 1 249.8477 245.3447)" fill="#FFFFFF" font-family="'TitilliumWeb-Bold'" font-size="39.5765px">3</text>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M72.84,134.43H42.91c-2.75,0-5-2.25-5-5v-9.3c0-2.75,2.25-5,5-5h29.93c2.75,0,5,2.25,5,5v9.3
|
||||
C77.84,132.18,75.59,134.43,72.84,134.43z"/>
|
||||
<text transform="matrix(1 0 0 1 49.1719 128.6772)" fill="#C9C7C7" font-family="'TitilliumWeb-Bold'" font-size="11.9663px">ON</text>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M57.58,180.2h0.19c0.62,0,1.13-0.51,1.13-1.13v-10.95c0-0.62-0.51-1.13-1.13-1.13h-0.19
|
||||
c-0.62,0-1.13,0.51-1.13,1.13v10.95C56.45,179.69,56.96,180.2,57.58,180.2z"/>
|
||||
<path fill="#FFFFFF" d="M84.49,175.31H31.25c-0.95,0-1.72-0.77-1.72-1.72v0c0-0.95,0.77-1.72,1.72-1.72h53.23
|
||||
c0.95,0,1.72,0.77,1.72,1.72v0C86.21,174.54,85.43,175.31,84.49,175.31z"/>
|
||||
<path fill="#E0E1E0" d="M58.93,171.87h25.55c0.95,0,1.73,0.77,1.73,1.72v0c0,0.95-0.78,1.72-1.73,1.72H58.93V171.87z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="none" stroke="#FFFFFF" stroke-width="0.5769" stroke-miterlimit="10" d="M74.13,228.45H42.6
|
||||
c-6.13,0-11.15-5.02-11.15-11.15v0c0-6.13,5.02-11.15,11.15-11.15h31.54c6.13,0,11.15,5.02,11.15,11.15v0
|
||||
C85.29,223.43,80.27,228.45,74.13,228.45z"/>
|
||||
<circle fill="#FFFFFF" cx="43.65" cy="217.2" r="7.88"/>
|
||||
</g>
|
||||
<line fill="none" stroke="#C9C7C7" stroke-width="0.9977" stroke-miterlimit="10" x1="13.16" y1="98.25" x2="103.47" y2="98.25"/>
|
||||
<line fill="none" stroke="#C9C7C7" stroke-width="0.9977" stroke-miterlimit="10" x1="13.16" y1="150.11" x2="103.47" y2="150.11"/>
|
||||
<line fill="none" stroke="#C9C7C7" stroke-width="0.9977" stroke-miterlimit="10" x1="13.16" y1="195.79" x2="103.47" y2="195.79"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 3.4 KiB |
@@ -1,16 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 24.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
x="0px" y="0px" viewBox="0 0 450 272" xml:space="preserve">
|
||||
<g>
|
||||
<path fill="#C8C6C6" d="M435.91,272.12H15.19C7.36,272.12,1,265.76,1,257.92V14.85C1,7.01,7.36,0.66,15.19,0.66h420.71
|
||||
c7.84,0,14.19,6.36,14.19,14.19v243.07C450.1,265.76,443.75,272.12,435.91,272.12z"/>
|
||||
<path fill="#868585" d="M1.44,20.26L1,14.81C1,6.99,7.34,0.66,15.15,0.66h420.79c7.82,0,14.15,6.34,14.15,14.15v6.83"/>
|
||||
<circle fill="#DC5958" cx="18.39" cy="11.29" r="4.99"/>
|
||||
<circle fill="#DAC457" cx="35.35" cy="11.29" r="4.99"/>
|
||||
<circle fill="#51B156" cx="52.3" cy="11.29" r="4.99"/>
|
||||
</g>
|
||||
<circle fill="#FFFFFF" cx="222.34" cy="144.43" r="64.54"/>
|
||||
<rect x="208.26" y="124.62" fill="none" width="314.12" height="137.75"/>
|
||||
<text transform="matrix(1 0 0 1 208.2568 170.8926)" fill="#C8C6C6" font-family="'TitilliumWeb-Bold'" font-size="71.7954px">?</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.1 KiB |
@@ -1,22 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 24.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
x="0px" y="0px" viewBox="0 0 450 272" xml:space="preserve">
|
||||
<g>
|
||||
<path fill="#C9C7C7" d="M435.78,272H15.41c-7.84,0-14.19-6.36-14.19-14.19V14.94c0-7.84,6.36-14.19,14.19-14.19h420.37
|
||||
c7.84,0,14.19,6.36,14.19,14.19v242.86C449.97,265.64,443.61,272,435.78,272z"/>
|
||||
<path fill="#878686" d="M1.66,20.34l-0.44-5.45c0-7.81,6.33-14.14,14.14-14.14h420.47c7.81,0,14.14,6.33,14.14,14.14v6.82"/>
|
||||
<circle fill="#DD5958" cx="18.6" cy="11.37" r="4.98"/>
|
||||
<circle fill="#DBC558" cx="35.53" cy="11.37" r="4.98"/>
|
||||
<circle fill="#52B257" cx="52.47" cy="11.37" r="4.98"/>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M303.47,70.58c-2.26,40.17-11.3,68.54-51.47,101.18c0,17.07-6.78,34.15-20.59,46.2l-22.85-25.61
|
||||
c-4.77,4.52-11.05,6.78-17.07,7.03c-8.03,0.25-15.82-2.76-21.59-9.04c-10.04-11.3-9.04-28.62,2.01-38.66l-22.85-25.61
|
||||
c13.81-12.3,31.38-17.32,48.46-15.32C234.17,74.35,263.3,68.32,303.47,70.58z M261.79,132.34c7.53-6.78,8.03-18.08,1.51-25.61
|
||||
c-3.77-4.02-8.79-6.28-14.31-6.03c-4.27,0.25-8.29,1.76-11.3,4.52c-7.53,6.78-8.03,18.08-1.51,25.61
|
||||
c3.77,4.02,8.79,6.28,14.31,6.03C254.51,136.61,258.53,135.11,261.79,132.34z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.4 KiB |
@@ -1,26 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 24.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
x="0px" y="0px" viewBox="0 0 450 272" xml:space="preserve">
|
||||
<g>
|
||||
<path fill="#C9C7C7" d="M434.78,272H14.41c-7.84,0-14.19-6.36-14.19-14.19V14.94c0-7.84,6.36-14.19,14.19-14.19h420.37
|
||||
c7.84,0,14.19,6.36,14.19,14.19V257.8C448.97,265.64,442.61,272,434.78,272z"/>
|
||||
<path fill="#878686" d="M0.66,20.34l-0.44-5.45c0-7.81,6.33-14.14,14.14-14.14h420.47c7.81,0,14.14,6.33,14.14,14.14v6.82"/>
|
||||
<circle fill="#DD5958" cx="17.6" cy="11.37" r="4.98"/>
|
||||
<circle fill="#DBC558" cx="34.53" cy="11.37" r="4.98"/>
|
||||
<circle fill="#52B257" cx="51.47" cy="11.37" r="4.98"/>
|
||||
</g>
|
||||
<g transform="translate(0,-280.06666)">
|
||||
<path fill="#878686" d="M154.99,354.72c-3,0-5.44,2.44-5.44,5.44l0,0v27.15v97.8c0,3,2.44,5.44,5.44,5.44h141.27
|
||||
c3,0,5.44-2.44,5.44-5.44v-97.8c0-3-2.44-5.44-5.44-5.44H252.9l-17.39-24.85c-1.02-1.45-2.68-2.31-4.45-2.31h-76.07V354.72z"/>
|
||||
</g>
|
||||
<path fill="#878686" d="M107.69,205.06h-96.9V79.34h79.11c0.34,0,17.09,18.5,17.79,17.79C107.69,97.14,107.69,205.06,107.69,205.06z
|
||||
"/>
|
||||
<path fill="#878686" d="M440.85,206.15h-96.9V80.43h79.11c0.34,0,17.09,18.5,17.79,17.79L440.85,206.15L440.85,206.15z"/>
|
||||
<text transform="matrix(1 0 0 1 14.9414 160.6211)" fill="#F2F2F3" font-family="'TitilliumWeb-Regular'" font-size="52.0199px">C++</text>
|
||||
<text transform="matrix(1 0 0 1 349.8203 164.9639)" fill="#F2F2F3" font-family="'TitilliumWeb-Regular'" font-size="52.0199px">qml</text>
|
||||
<polygon fill="#F2F2F3" points="200.89,150.65 162.96,128.75 162.96,172.55 "/>
|
||||
<rect x="288.68" y="143.6" fill="#F2F2F3" width="55.28" height="16.26"/>
|
||||
<rect x="107.69" y="143.6" fill="#F2F2F3" width="55.28" height="16.26"/>
|
||||
<polygon fill="#F2F2F3" points="250.75,150.65 288.68,172.55 288.68,128.75 "/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.9 KiB |
@@ -1,40 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 24.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
x="0px" y="0px" viewBox="0 0 450 272" xml:space="preserve">
|
||||
<g>
|
||||
<path fill="#C9C7C7" d="M435.78,272H15.41c-7.84,0-14.19-6.36-14.19-14.19V14.94c0-7.84,6.36-14.19,14.19-14.19h420.37
|
||||
c7.84,0,14.19,6.36,14.19,14.19v242.86C449.97,265.64,443.61,272,435.78,272z"/>
|
||||
<path fill="#878686" d="M1.66,20.34l-0.44-5.45c0-7.81,6.33-14.14,14.14-14.14h420.47c7.81,0,14.14,6.33,14.14,14.14v6.82"/>
|
||||
<circle fill="#DD5958" cx="18.6" cy="11.37" r="4.98"/>
|
||||
<circle fill="#DBC558" cx="35.53" cy="11.37" r="4.98"/>
|
||||
<circle fill="#52B257" cx="52.47" cy="11.37" r="4.98"/>
|
||||
</g>
|
||||
<path fill="#EEEDEE" d="M409.72,257.05H52.05c-2.75,0-5-2.25-5-5V34.88c0-2.75,2.25-5,5-5h357.67c2.75,0,5,2.25,5,5v217.18
|
||||
C414.72,254.8,412.47,257.05,409.72,257.05z"/>
|
||||
<g>
|
||||
<polygon fill="#949292" points="207.47,103.17 251.2,103.17 289.47,168.77 341.4,168.77 363.27,122.31 385.13,122.31
|
||||
352.33,187.91 275.8,187.91 237.53,122.31 210.2,122.31 "/>
|
||||
<polygon fill="#949292" points="305.87,81.31 327.73,81.31 327.73,125.04 344.13,125.04 316.8,152.37 289.47,125.04 305.87,125.04
|
||||
"/>
|
||||
<circle fill="#949292" cx="289.47" cy="201.57" r="10.93"/>
|
||||
<circle fill="#949292" cx="338.67" cy="201.57" r="10.93"/>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#C9C7C7" d="M169.36,247.01h-76.9c-7.84,0-14.19-6.36-14.19-14.19V57.03c0-7.84,6.36-14.19,14.19-14.19h76.9
|
||||
c7.84,0,14.19,6.36,14.19,14.19v175.79C183.55,240.65,177.2,247.01,169.36,247.01z"/>
|
||||
<path fill="#878686" d="M78.6,57.58l-0.33-4.1c0-5.88,4.77-10.65,10.65-10.65h83.99c5.88,0,10.65,4.77,10.65,10.65v5.14"/>
|
||||
</g>
|
||||
|
||||
<rect x="54.69" y="103.54" transform="matrix(-1.836970e-16 1 -1 -1.836970e-16 278.2001 15.8358)" fill="#949292" width="152.99" height="86.95"/>
|
||||
<g>
|
||||
<path fill="none" stroke="#FFFFFF" stroke-width="3.8493" stroke-linecap="round" stroke-miterlimit="10" d="M109.66,143.31
|
||||
c0-12.76,10.34-23.1,23.1-23.1s23.1,10.34,23.1,23.1s-10.34,23.1-23.1,23.1"/>
|
||||
<circle fill="#FFFFFF" cx="132.27" cy="143.15" r="10.34"/>
|
||||
<text transform="matrix(1 0 0 1 94.7988 141.6104)" fill="#FFFFFF" font-family="'TitilliumWeb-Bold'" font-size="12.8129px">1</text>
|
||||
<text transform="matrix(1 0 0 1 156.1709 123.8447)" fill="#FFFFFF" font-family="'TitilliumWeb-Bold'" font-size="12.8129px">2</text>
|
||||
<text transform="matrix(1 0 0 1 133.2363 181.9883)" fill="#FFFFFF" font-family="'TitilliumWeb-Bold'" font-size="12.8129px">3</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 2.5 KiB |
@@ -1,34 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 24.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
x="0px" y="0px" viewBox="0 0 450 272" xml:space="preserve">
|
||||
<g>
|
||||
<path fill="#C9C7C7" d="M435.78,272H15.41c-7.84,0-14.19-6.36-14.19-14.19V14.94c0-7.84,6.36-14.19,14.19-14.19h420.37
|
||||
c7.84,0,14.19,6.36,14.19,14.19v242.86C449.97,265.64,443.61,272,435.78,272z"/>
|
||||
<path fill="#878686" d="M1.66,20.34l-0.44-5.45c0-7.81,6.33-14.14,14.14-14.14h420.47c7.81,0,14.14,6.33,14.14,14.14v6.82"/>
|
||||
<circle fill="#DD5958" cx="18.6" cy="11.37" r="4.98"/>
|
||||
<circle fill="#DBC558" cx="35.53" cy="11.37" r="4.98"/>
|
||||
<circle fill="#52B257" cx="52.47" cy="11.37" r="4.98"/>
|
||||
</g>
|
||||
<path fill="#EEEDEE" d="M409.72,257.05H52.05c-2.75,0-5-2.25-5-5V34.88c0-2.75,2.25-5,5-5h357.67c2.75,0,5,2.25,5,5v217.18
|
||||
C414.72,254.8,412.47,257.05,409.72,257.05z"/>
|
||||
<polygon fill="#949292" points="330.22,140.56 167,46.32 167,234.8 "/>
|
||||
<g>
|
||||
<path fill="#EEEDEE" d="M225.27,119.2c0.11-0.35,0.23-0.69,0.36-1.02c0.49-1.19,1.22-2.31,2.15-3.25c2.33-2.35,5.63-3.33,9.06-2.98
|
||||
c0.07-2.23,0.54-4.36,1.35-6.15c1.14-2.5,2.95-4.45,5.2-5.36c1-0.39,2.13,0.09,2.52,1.08c0.41,0.98-0.07,2.11-1.06,2.5
|
||||
c-1.28,0.52-2.39,1.76-3.13,3.39c-0.7,1.56-1.08,3.44-1.01,5.42c2.29,0.85,4.5,2.24,6.43,4.15c1.91,1.89,3.32,4.09,4.19,6.37
|
||||
c1.98,0.05,3.86-0.34,5.41-1.06c1.63-0.76,2.85-1.87,3.36-3.16c0.4-0.98,1.51-1.48,2.49-1.09c1,0.38,1.48,1.51,1.11,2.51
|
||||
c-0.89,2.25-2.82,4.08-5.31,5.24c-1.78,0.83-3.89,1.34-6.13,1.41c0.38,3.43-0.56,6.74-2.89,9.09c-0.94,0.94-2.05,1.68-3.23,2.18
|
||||
c-0.33,0.14-0.67,0.25-1.02,0.37c0.06,0.44,0.12,0.88,0.16,1.34c0.22,2.97-0.11,5.82-0.92,8.45l10.51,3.39l7.86-5.01
|
||||
c0.9-0.6,2.09-0.34,2.67,0.58c0.58,0.88,0.32,2.07-0.58,2.67l-8.65,5.53c-0.5,0.31-1.09,0.37-1.63,0.22l-11.63-3.77
|
||||
c-1.24,2.48-2.88,4.75-4.84,6.74l-0.21,0.21l7.81,8.96c0.42,0.46,0.56,1.05,0.47,1.61l-1.07,8.56c-0.13,1.06-1.09,1.83-2.16,1.68
|
||||
c-1.06-0.13-1.79-1.09-1.68-2.16l0.96-7.8l-7.29-8.33c-1.66,1.26-3.46,2.34-5.36,3.21c-1.51,0.72-3.08,1.3-4.69,1.73l2.07,11.49
|
||||
c0.08,0.5-0.01,0.98-0.26,1.38l-3.58,5.81c-0.57,0.92-1.76,1.2-2.66,0.65c-0.92-0.57-1.2-1.76-0.65-2.66l3.22-5.22l-1.91-10.68
|
||||
c-0.48,0.06-0.96,0.12-1.44,0.14c-6.18,0.49-12.29-1.25-16.88-5.79c-4.61-4.57-6.4-10.66-5.97-16.84c0.02-0.48,0.07-0.96,0.13-1.44
|
||||
l-10.7-1.81l-5.19,3.27c-0.9,0.56-2.09,0.3-2.67-0.62c-0.56-0.9-0.3-2.09,0.62-2.67l5.78-3.63c0.4-0.25,0.88-0.35,1.38-0.28
|
||||
l11.5,1.96c0.41-1.61,0.98-3.19,1.69-4.71c0.85-1.9,1.92-3.71,3.16-5.39l-8.4-7.22l-7.79,1.03c-1.05,0.14-2.04-0.6-2.18-1.66
|
||||
c-0.14-1.05,0.6-2.04,1.66-2.18l8.55-1.15c0.56-0.1,1.15,0.03,1.61,0.45l9.06,7.75l0.21-0.21c1.97-1.99,4.2-3.67,6.67-4.92
|
||||
l-3.85-11.57c-0.18-0.56-0.12-1.15,0.18-1.65l5.45-8.7c0.59-0.9,1.78-1.18,2.66-0.61c0.92,0.57,1.2,1.76,0.61,2.66l-4.93,7.91
|
||||
l3.48,10.48c2.64-0.82,5.46-1.2,8.44-1C224.39,119.09,224.83,119.15,225.27,119.2z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 355 B |
|
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 125 B |
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 430 B |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 676 B |
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 715 B |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 905 B |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 448 B |
|
Before Width: | Height: | Size: 12 KiB |
BIN
doc/qtcreator/images/qtcreator-add-online-doc.webp
Normal file
|
After Width: | Height: | Size: 8.1 KiB |
|
Before Width: | Height: | Size: 5.5 KiB |
|
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 22 KiB |
BIN
doc/qtcreator/images/qtcreator-locator-customize.webp
Normal file
|
After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 25 KiB |
BIN
doc/qtcreator/images/qtcreator-locator-example.webp
Normal file
|
After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 12 KiB |
BIN
doc/qtcreator/images/qtcreator-locator-open.webp
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
|
Before Width: | Height: | Size: 13 KiB |
BIN
doc/qtcreator/images/qtcreator-locator.webp
Normal file
|
After Width: | Height: | Size: 8.0 KiB |
BIN
doc/qtcreator/images/qtcreator-markdown-editor.webp
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
doc/qtcreator/images/qtcreator-new-file.webp
Normal file
|
After Width: | Height: | Size: 17 KiB |
@@ -38,22 +38,26 @@
|
||||
The process of setting up debugging for Qt Quick projects depends on the
|
||||
\l{Creating Qt Quick Projects}{type of the project}: Qt Quick UI or Qt Quick
|
||||
Application, and the Qt version used.
|
||||
|
||||
\section2 Debugging Qt Quick UI Projects
|
||||
\endif
|
||||
|
||||
To debug Qt Quick UI projects, select the \uicontrol {Enable QML} check box in the
|
||||
\uicontrol {Debugger Settings} in \uicontrol Projects mode \uicontrol {Run Settings}.
|
||||
To debug Qt Quick UI projects (.qmlproject), select the
|
||||
\uicontrol {Enable QML} check box in \uicontrol {Debugger settings}
|
||||
in \uicontrol Projects mode \uicontrol {Run Settings}.
|
||||
|
||||
\if defined(qtcreator)
|
||||
\section2 Debugging Qt Quick Applications
|
||||
|
||||
To debug Qt Quick Applications:
|
||||
|
||||
\list 1
|
||||
|
||||
\li If you use qmake as the build system, make sure that
|
||||
debugging is enabled in the \uicontrol {Build Settings},
|
||||
\uicontrol {QML debugging and profiling} field, either
|
||||
explicitly for the project or globally by default.
|
||||
\li To create a build configuration that supports QML debugging,
|
||||
select \uicontrol {Projects} > \uicontrol {Build} >
|
||||
\uicontrol {QML debugging and profiling} > \uicontrol Enable.
|
||||
|
||||
\image qtcreator-projectpane.png "qmake general build settings pane"
|
||||
\image qtcreator-build-settings-cmake-configure.webp {Build settings for a CMake project}
|
||||
|
||||
\note Debugging requires opening a socket at a TCP port,
|
||||
which presents a security risk. Anyone on the Internet could connect
|
||||
@@ -61,9 +65,9 @@
|
||||
functions. Therefore, you must make sure that the port is properly
|
||||
protected by a firewall.
|
||||
|
||||
\li In the \uicontrol {Run Settings}, \uicontrol {Debugger Settings} section, select
|
||||
the \uicontrol {Enable QML} check box to enable
|
||||
QML debugging.
|
||||
\li In \uicontrol {Run Settings} > \uicontrol {Debugger settings}, select
|
||||
the \uicontrol {Enable QML} check box to enable QML debugging for
|
||||
running applications.
|
||||
|
||||
\li Select \uicontrol Build > \uicontrol {Rebuild Project} to clean and
|
||||
rebuild the project.
|
||||
@@ -79,6 +83,43 @@
|
||||
automatically installed during \QC and Qt installation. Do not delete
|
||||
them if you plan to debug QML applications.
|
||||
|
||||
\section2 Using Default Values
|
||||
|
||||
You can enable or disable QML debugging globally in \uicontrol Edit >
|
||||
\uicontrol Preferences > \uicontrol {Build & Run} >
|
||||
\uicontrol {Default Build Properties}.
|
||||
|
||||
\image qtcreator-build-settings-default.png "Default Build Properties tab in Build & Run Preferences"
|
||||
|
||||
The value of the \uicontrol {QML debugging} field determines what happens
|
||||
when creating new build configurations. The values \uicontrol Enable
|
||||
and \uicontrol Disable explicitly set QML debugging for the new build
|
||||
configuration to that value, regardless of what type of build
|
||||
configuration you create.
|
||||
|
||||
\uicontrol {Use Project Default} makes the values depend on the type of
|
||||
build configuration: \uicontrol Debug, \uicontrol Profile, or
|
||||
\uicontrol Release. When you use \l {CMake Build Configuration}{CMake} or
|
||||
\l {qmake Build Configuration}{qmake} as a build system, debug and profile
|
||||
build configurations have QML debugging enabled. However, release build
|
||||
configurations do not include QML debugging because the debugging feature
|
||||
makes applications vulnerable.
|
||||
|
||||
The \uicontrol {Leave at Default} option in \uicontrol {Projects} >
|
||||
\uicontrol {Build} > \uicontrol {QML debugging and profiling} is needed to keep existing,
|
||||
already configured CMake build directories intact. Also, it
|
||||
enables you to import an existing build into \QC without enforced changes,
|
||||
so that you don't have to worry about a complete rebuild of the project, for
|
||||
example. Even if you later change the configuration of the build outside of
|
||||
\QC, it will be kept as you want it.
|
||||
|
||||
There are some known issues in the interaction between the global setting
|
||||
in \uicontrol Edit > \uicontrol Preferences > \uicontrol {Build & Run} >
|
||||
\uicontrol {Default Build Properties} and the build configuration.
|
||||
For example, for qmake the global setting only affects build configurations
|
||||
that are automatically created when enabling a kit. Also, CMake ignores the
|
||||
global setting.
|
||||
|
||||
\section1 Mixed C++/QML Debugging
|
||||
|
||||
To debug both the C++ and QML parts of your application at the same time,
|
||||
@@ -87,7 +128,7 @@
|
||||
\uicontrol{Run Settings}.
|
||||
\endif
|
||||
|
||||
\image qtquick-debugging-settings.png
|
||||
\image qtquick-debugging-settings.png {Debugger settings section in Run Settings}
|
||||
|
||||
\section1 Starting QML Debugging
|
||||
|
||||
|
||||
@@ -68,6 +68,10 @@
|
||||
|
||||
\list
|
||||
|
||||
\li \l{Editing Markdown Files}
|
||||
|
||||
Edit and preview markdown (.md) files.
|
||||
|
||||
\li \l{Using Language Servers}
|
||||
|
||||
The language client offers code completion, highlighting of the
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// Copyright (C) 2021 The Qt Company Ltd.
|
||||
// Copyright (C) 2023 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||
|
||||
/*!
|
||||
@@ -15,7 +15,9 @@
|
||||
To open it as a centered popup, click \inlineimage icons/magnifier.png
|
||||
(\uicontrol Options) in it and select \uicontrol {Open as Centered Popup}.
|
||||
|
||||
\image qtcreator-locator.png "List of locator filters"
|
||||
\image qtcreator-locator.webp "List of locator filters"
|
||||
|
||||
\section1 Activating the Locator
|
||||
|
||||
To activate the locator:
|
||||
|
||||
@@ -32,43 +34,35 @@
|
||||
|
||||
\endlist
|
||||
|
||||
To open a QML file called \e HelloWorld.qml in the currently open project
|
||||
using the locator:
|
||||
\section1 Using Locator Filters
|
||||
|
||||
\list 1
|
||||
You can locate not only files, but any items defined by \e{locator filters},
|
||||
as well as trigger global actions and perform other tasks, such as build
|
||||
projects or run external tools.
|
||||
|
||||
\li Activate the locator by pressing \key {Ctrl+K}.
|
||||
The filters that are available depend on the file type. For more information
|
||||
about what a particular locator filter does, see the tooltips that appear
|
||||
when you hover over a filter in the locator. For longer descriptions of the
|
||||
filters, select \uicontrol Configure to open the \uicontrol Locator
|
||||
\l{Creating Locator Filters}{preferences}.
|
||||
|
||||
\li Start typing the filename.
|
||||
To use a locator filter, type its prefix followed by \key Space. The prefix
|
||||
is usually short, from one to three characters. Then type the search string
|
||||
(for example, a filename or class name) or the command to execute.
|
||||
|
||||
\image qtcreator-locator-open.png "List of files found in the locator"
|
||||
You can also double-click a locator filter in the filter list to use it. Use
|
||||
the up and down arrow keys or the \key Ctrl+P and \key Ctrl+N
|
||||
keyboard shortcuts to move up and down the list, and then press \key Enter
|
||||
to use the selected filter.
|
||||
|
||||
\li Move to the filename in the list and press \key Enter.
|
||||
|
||||
The file opens in the editor.
|
||||
|
||||
\li To move to a line in the file, enter the line number in the locator.
|
||||
|
||||
\endlist
|
||||
|
||||
To move directly to a particular line and column in the document when you
|
||||
open the document, append them to the file name in the locator, separated by
|
||||
plus signs (+) or colons (:). For example, to open \e HelloWorld.qml to line
|
||||
41 and column 2, enter: \c {HelloWorld.qml:41:2}.
|
||||
|
||||
If the path to a file is very long, it might not fit into the locator
|
||||
window. To view the full path, press \key Alt when the filename is selected
|
||||
or use the handle next to the locator window to increase the window width.
|
||||
|
||||
It is also possible to enter only a part of a search string. As you type,
|
||||
As you type a search string,
|
||||
the locator shows the occurrences of that string regardless of where in the
|
||||
name of an component it appears. Some locator filters, such as colon, \c m,
|
||||
and \c t, support \e fuzzy matching, which means that you can enter the
|
||||
uppercase letters to locate a symbol when using camel case or the letters
|
||||
after the underscore when using snake case.
|
||||
|
||||
To narrow down the search results, you can use the following wildcard
|
||||
characters:
|
||||
To narrow down the search results, use the following wildcard characters:
|
||||
|
||||
\list
|
||||
|
||||
@@ -78,117 +72,69 @@
|
||||
|
||||
\endlist
|
||||
|
||||
\section1 Using Locator Filters
|
||||
\section2 Locating Files
|
||||
|
||||
The locator enables you to browse not only files, but any items defined by
|
||||
\b{locator filters}. The filters that are available depend on the file type:
|
||||
For example, to open a QML file called \e HelloWorld.qml in the currently
|
||||
open project using the locator:
|
||||
|
||||
\list
|
||||
\list 1
|
||||
|
||||
\li Locating any open document (\c {o})
|
||||
\li Press \key {Ctrl+K} to activate the locator.
|
||||
|
||||
\li Locating files anywhere on your file system (\c {f}). You can use
|
||||
environment variables in the \c {f} filter. For example, use
|
||||
\c {f $ENVVAR} to expand the environment variable \c ENVVAR on Unix
|
||||
systems and \c {f %ENVVAR%} to expand it on Windows systems.
|
||||
\li Start typing the filename.
|
||||
|
||||
\li Locating files belonging to your project (\c {p}), such as source,
|
||||
header, resource, and \c {.ui} files, or to any project (\c {a})
|
||||
\image qtcreator-locator-open.webp "List of files found in the locator"
|
||||
|
||||
\if defined(qtcreator)
|
||||
\li Locating bookmarks (\c {b}).
|
||||
For more information, see \l{Using Bookmarks}.
|
||||
\li Use the arrow keys to move to the filename in the list and press
|
||||
\key Enter.
|
||||
|
||||
\li Locating class (\c {c}), enum, function (\c {m}), and type alias
|
||||
definitions in your project or anywhere referenced from your
|
||||
project (\c {:})
|
||||
\endif
|
||||
The file opens in the editor.
|
||||
|
||||
\li Locating QML methods (\c {m})
|
||||
|
||||
\li Locating symbols in the current document (\c {.})
|
||||
|
||||
\li Locating a specific line and column in the document displayed in
|
||||
your editor (\c {l <line_number>:<column_number>})
|
||||
|
||||
\li Opening help topics, including Qt documentation (\c {?})
|
||||
|
||||
\li Performing web searches (\c {r})
|
||||
|
||||
\if defined(qtcreator)
|
||||
\li Running text editing macros that you record and save (\c {rm}). For
|
||||
more information, see \l{Using Text Editing Macros}
|
||||
\endif
|
||||
|
||||
\li Executing JavaScript (\c {=}), especially useful for calculations.
|
||||
For more information, see \l{Executing JavaScript}.
|
||||
|
||||
\li Executing shell commands (\c {!})
|
||||
|
||||
\li Executing version control system commands
|
||||
\if defined(qtcreator)
|
||||
(\c {bzr}, \c {cvs}, \c {git}, \c {hg}, or \c {svn}).
|
||||
For more information, see \l{Using Version Control Systems}.
|
||||
\else
|
||||
(\c {git}). For more information, see \l{Using Git}.
|
||||
\endif
|
||||
|
||||
\li Triggering actions (\c {t})
|
||||
|
||||
\li Searching for issues from the \l{https://bugreports.qt.io/}
|
||||
{Qt Project Bug Tracker} (\c bug).
|
||||
|
||||
\li Searching for applications, documents, and other files by using
|
||||
platform-specific external tools or commands (\c md). The following
|
||||
tools are used by default, but you can configure the locator to
|
||||
use any other command:
|
||||
|
||||
\list
|
||||
\li On \macOS: using Spotlight
|
||||
\li On Windows: using \l{https://www.voidtools.com/downloads/}
|
||||
{Everything}
|
||||
\li On Linux: using the \c Locate command
|
||||
\endlist
|
||||
|
||||
\if defined(qtcreator)
|
||||
\li Running external tools (\c x)
|
||||
\li Using CMake to build the project for the current run configuration
|
||||
(\c {cm}). For more information, see \l {Setting up CMake}.
|
||||
\li Opening the CMakeLists.txt file for the current run configuration in
|
||||
the editor (\c {cmo}). This is the same build target as when you
|
||||
select \uicontrol Build > \uicontrol {Build for Run Configuration}.
|
||||
\li Running a particular run configuration (\c {rr} \e {<name>})
|
||||
\li Switching to a particular run configuration (\c {sr} \e {<name>})
|
||||
\endif
|
||||
\li To move to a line in the file, enter the line number in the locator.
|
||||
|
||||
\endlist
|
||||
|
||||
To use a specific locator filter, type the assigned prefix followed by
|
||||
\key Space. The prefix is usually a single character. Then type the search
|
||||
string (typically, a filename or class name) or the command to execute.
|
||||
|
||||
You can also double-click a locator filter in the filter list to use it. You
|
||||
can use the up and down arrow keys or the \key Ctrl+P and \key Ctrl+N
|
||||
keyboard shortcuts to move up and down the list, and then press \key Enter
|
||||
to use the selected filter.
|
||||
If the path to a file is very long, it might not fit into the locator
|
||||
window. To view the full path, press \key Alt when the filename is selected
|
||||
or use the handle next to the locator window to increase the window width.
|
||||
|
||||
\if defined(qtcreator)
|
||||
For example, to locate symbols matching QDataStream:
|
||||
If the locator does not find some files, see \l{Specifying Project Contents}
|
||||
for how to make them known to the locator.
|
||||
\endif
|
||||
|
||||
\section2 Locating Lines and Columns
|
||||
|
||||
To move directly to a particular line and column in the document when you
|
||||
open the document, append the line and column number to the file name in
|
||||
the locator, separated by plus signs (+) or colons (:).
|
||||
|
||||
For example, to open \e HelloWorld.qml to line
|
||||
41 and column 2, enter:
|
||||
|
||||
\code
|
||||
HelloWorld.qml:41:2
|
||||
\endcode
|
||||
|
||||
\if defined(qtcreator)
|
||||
\section2 Locating Symbols
|
||||
|
||||
For example, to locate symbols matching \c {QGuiApplication}:
|
||||
|
||||
\list 1
|
||||
|
||||
\li Activate the locator.
|
||||
|
||||
\li Enter a colon (:) followed by a space and the upper case letters in
|
||||
the symbol name (QDataStream):
|
||||
the symbol name (here, \c {QGuiApplication}):
|
||||
|
||||
\code
|
||||
: qds
|
||||
: qga
|
||||
\endcode
|
||||
|
||||
The locator lists the results.
|
||||
|
||||
\image qtcreator-locator-example.png "List of files matching the locator filter"
|
||||
\image qtcreator-locator-example.webp "List of files matching the locator filter"
|
||||
|
||||
\endlist
|
||||
|
||||
@@ -197,16 +143,21 @@
|
||||
such as \c {Utils::*View}.
|
||||
\endif
|
||||
|
||||
For example, to create a new file and open it in the editor, type \c f
|
||||
\section2 Creating Files from Locator
|
||||
|
||||
To create a new file and open it in the editor, type \c f
|
||||
followed by \key Space, followed by path and file name, and then press
|
||||
\key Enter.
|
||||
|
||||
You can use the filter that triggers menu commands to open sessions. Enter
|
||||
You can use the filter that triggers menu commands to open
|
||||
\l{Managing Sessions}{sessions}. Enter
|
||||
\c {t yoursess} or \c {t sess yoursess} to trigger \uicontrol File >
|
||||
\uicontrol Sessions > \e yoursessionname.
|
||||
|
||||
By default, the following filters are enabled and you do not need to use
|
||||
their prefixes explicitly:
|
||||
\section2 Default Filters
|
||||
|
||||
By default, you can use the following preset locator filters without a
|
||||
prefix:
|
||||
|
||||
\list
|
||||
|
||||
@@ -218,16 +169,11 @@
|
||||
|
||||
\endlist
|
||||
|
||||
\if defined(qtcreator)
|
||||
If locator does not find some files, see \l{Specifying Project Contents}
|
||||
for how to make them known to the locator.
|
||||
\endif
|
||||
\section1 Changing Locator Filters
|
||||
|
||||
\section1 Configuring Locator Filters
|
||||
|
||||
If the default filters do not match your use case, you can check whether you
|
||||
can change them. For all filters, you can change the filter prefix and
|
||||
restrict the search to items that match the filter.
|
||||
You can change the preset locator filters to match your use case. For
|
||||
example, you can change the filter prefix and restrict the search to
|
||||
items that match the filter.
|
||||
|
||||
To configure a locator filter:
|
||||
|
||||
@@ -266,11 +212,11 @@
|
||||
|
||||
\li Select \uicontrol Edit > \uicontrol Preferences >
|
||||
\uicontrol Environment > \uicontrol Locator >
|
||||
\uicontrol {Web Search (prefix: r)} > \uicontrol Edit.
|
||||
\uicontrol {Web Search} > \uicontrol Edit.
|
||||
|
||||
\li Select \uicontrol Add to add a new entry to the list.
|
||||
|
||||
\image qtcreator-add-online-doc.png "List of URLs in Filter Configuration dialog"
|
||||
\image qtcreator-add-online-doc.webp "List of URLs in Filter Configuration dialog"
|
||||
|
||||
\li Double-click the new entry to specify a URL and a search command.
|
||||
For example, \c {http://www.google.com/search?q=%1}.
|
||||
@@ -281,7 +227,7 @@
|
||||
|
||||
\section1 Creating Locator Filters
|
||||
|
||||
You can create custom locator filters for finding in a directory structure
|
||||
You can create custom locator filters for searching in a directory structure
|
||||
or on the web.
|
||||
|
||||
To quickly access files not directly mentioned in your project, you can
|
||||
@@ -295,7 +241,7 @@
|
||||
\li In the locator, select \uicontrol Options >
|
||||
\uicontrol Configure to open the \uicontrol Locator preferences.
|
||||
|
||||
\image qtcreator-locator-customize.png "Locator preferences"
|
||||
\image qtcreator-locator-customize.webp "Locator preferences"
|
||||
|
||||
\li Select \uicontrol Add > \uicontrol {Files in Directories} to add
|
||||
a directory filter or \uicontrol {URL Template} to add a URL
|
||||
@@ -310,7 +256,7 @@
|
||||
|
||||
\li In the \uicontrol {File pattern} field, specify file patterns to
|
||||
restrict the search to files that match the pattern.
|
||||
Use a comma separated list. For example, to search for all
|
||||
Separate the patterns with commas. For example, to search for all
|
||||
\c {.qml} and \c {.ui.qml} files, enter \c{*.qml,*.ui.qml}
|
||||
|
||||
\li In the \uicontrol {Exclusion pattern} field, specify file
|
||||
@@ -329,9 +275,9 @@
|
||||
\section1 Configuring Locator Cache
|
||||
|
||||
The locator searches the files matching your file pattern in the directories
|
||||
you have selected and caches that information. The cache for all default
|
||||
filters is updated as you write your code. By default, \QC updates the
|
||||
filters created by you once an hour.
|
||||
you have selected and caches that information. \QC updates the cache for all
|
||||
preset filters as you write code. By default, \QC updates your custom
|
||||
filters once an hour.
|
||||
|
||||
To update the cached information manually, select \uicontrol Options >
|
||||
\uicontrol Refresh in the locator.
|
||||
@@ -349,8 +295,7 @@
|
||||
|
||||
\section1 Executing JavaScript
|
||||
|
||||
The locator has a JavaScript interpreter that you can use to
|
||||
perform calculations.
|
||||
The locator has a JavaScript interpreter for performing calculations.
|
||||
|
||||
Beside simple mathematical operations, like ((1 + 2) * 3), the following
|
||||
built-in functions exist:
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
/*!
|
||||
\previouspage creator-editor-options-text.html
|
||||
\page creator-editor-fakevim.html
|
||||
\nextpage creator-language-servers.html
|
||||
\nextpage creator-markdown-editor.html
|
||||
|
||||
\title Using FakeVim Mode
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||
|
||||
/*!
|
||||
\previouspage creator-editor-fakevim.html
|
||||
\previouspage creator-markdown-editor.html
|
||||
\page creator-language-servers.html
|
||||
\nextpage creator-mime-types.html
|
||||
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
// Copyright (C) 2023 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||
|
||||
/*!
|
||||
\previouspage creator-editor-fakevim.html
|
||||
\page creator-markdown-editor.html
|
||||
\nextpage creator-language-servers.html
|
||||
|
||||
\title Editing Markdown Files
|
||||
|
||||
Open \l{https://www.markdownguide.org/basic-syntax/}{markdown} (.md) files
|
||||
or select \uicontrol File > \uicontrol {New File} > \uicontrol {General} >
|
||||
\uicontrol {Markdown File} to create a new file.
|
||||
|
||||
\image qtcreator-markdown-editor.webp {Markdown file in Preview and Editor views}
|
||||
|
||||
When you edit the file in the editor, you can see the changes in the preview.
|
||||
|
||||
To hide and show the views, select \uicontrol {Show Preview} and
|
||||
\uicontrol {Show Editor}. To swap the places of the views, select
|
||||
\uicontrol {Swap Views}.
|
||||
*/
|
||||
@@ -438,7 +438,7 @@
|
||||
|
||||
Works with namespaces, classes, functions, variables, include
|
||||
statements, and macros. Also, opens URLs in the default browser
|
||||
and Qt resource files (.qrc) in the \l{Creating Resource Files}
|
||||
and Qt resource files (.qrc) in the \l{Resource Files}
|
||||
{resource editor}
|
||||
\li F2
|
||||
\row
|
||||
@@ -729,7 +729,7 @@
|
||||
\li
|
||||
\li Alt+S, Alt+D
|
||||
\row
|
||||
\li Diff project
|
||||
\li Diff project or repository
|
||||
\li
|
||||
\li
|
||||
\li Alt+G, Alt+Shift+D
|
||||
@@ -753,7 +753,7 @@
|
||||
\li Alt+P, Alt+F
|
||||
\li
|
||||
\row
|
||||
\li Log project
|
||||
\li Log repository
|
||||
\li
|
||||
\li
|
||||
\li Alt+G, Alt+K
|
||||
|
||||
@@ -171,16 +171,17 @@
|
||||
|
||||
Use the \uicontrol Locator to browse
|
||||
through projects, files, classes, functions, documentation, and file systems.
|
||||
|
||||
\image qtcreator-locator-open.webp "List of found files"
|
||||
|
||||
To quickly access files not directly mentioned in your project, you can
|
||||
create your own locator filters. That way you can locate files in a
|
||||
directory structure you have defined.
|
||||
|
||||
\image qtcreator-locator.png "List of locator filters"
|
||||
|
||||
To create locator filters, select \uicontrol Edit > \uicontrol Preferences >
|
||||
\uicontrol Environment > \uicontrol Locator > \uicontrol Add.
|
||||
|
||||
\image qtcreator-locator-customize.png "Locator preferences"
|
||||
\image qtcreator-locator-customize.webp "Locator preferences"
|
||||
|
||||
For more information, see \l{Creating Locator Filters}.
|
||||
|
||||
@@ -190,6 +191,8 @@
|
||||
You can now do basic calculations, with options to copy the results to the clipboard
|
||||
by navigating through the entries and pressing \key {Enter}.
|
||||
|
||||
\image qtcreator-locator.webp "List of locator filters"
|
||||
|
||||
For more information, see \l{Executing JavaScript}.
|
||||
|
||||
\section1 Jump to a function in QML code
|
||||
|
||||
@@ -111,7 +111,7 @@
|
||||
\li Select \uicontrol Edit > \uicontrol Preferences > \uicontrol Kits >
|
||||
\uicontrol Add to add a kit for building for the device. Select the
|
||||
Qt version, compiler, and device that you added above, and select
|
||||
\uicontrol {Remote Linux Device} in \uicontrol {Device type}.
|
||||
\uicontrol {Remote Linux Device} in \uicontrol {Run device type}.
|
||||
|
||||
To build on the remote device, select \uicontrol {Remote Linux Device}
|
||||
also in \uicontrol {Build device}.
|
||||
|
||||
@@ -1002,5 +1002,116 @@
|
||||
|
||||
https://creativecommons.org/publicdomain/zero/1.0/
|
||||
|
||||
\li \b WinPty
|
||||
|
||||
Implementation of a pseudo terminal for Windows.
|
||||
|
||||
The sources can be found in:
|
||||
\list
|
||||
\li \l https://github.com/rprichard/winpty
|
||||
\endlist
|
||||
|
||||
Distributed under the MIT license.
|
||||
|
||||
\include license-mit.qdocinc
|
||||
|
||||
\li \b ptyqt
|
||||
|
||||
Pty-Qt is small library for access to console applications by a
|
||||
pseudo-terminal interface on \macos, Linux and Windows. On \macos and
|
||||
Linux it uses standard PseudoTerminal API and on Windows it uses
|
||||
WinPty or ConPty.
|
||||
|
||||
\list
|
||||
\li \l https://github.com/kafeg/ptyqt
|
||||
\endlist
|
||||
|
||||
Distributed under the MIT license.
|
||||
|
||||
\include license-mit.qdocinc
|
||||
|
||||
\li \b libvterm
|
||||
|
||||
An abstract C99 library, which implements a VT220 or xterm-like terminal
|
||||
emulator. It doesn't use any particular graphics toolkit or output
|
||||
system. Instead it invokes callback function pointers that its embedding
|
||||
program should provide to draw on its behalf. It avoids calling malloc()
|
||||
during normal running state, allowing it to be used in embedded kernels.
|
||||
|
||||
\list
|
||||
\li \l https://www.leonerd.org.uk/code/libvterm/
|
||||
\endlist
|
||||
|
||||
Distributed under the MIT license.
|
||||
|
||||
\include license-mit.qdocinc
|
||||
|
||||
\li \b terminal/shellintegrations
|
||||
|
||||
The Terminal plugin uses scripts to integrate with the shell. The scripts are
|
||||
located in the Qt Creator source tree in src/plugins/terminal/shellintegrations.
|
||||
|
||||
\list
|
||||
\li \l https://github.com/microsoft/vscode/tree/main/src/vs/workbench/contrib/terminal/browser/media
|
||||
\endlist
|
||||
|
||||
Distributed under the MIT license.
|
||||
|
||||
\include license-mit.qdocinc
|
||||
|
||||
\li \b terminal/shellintegrations/clink
|
||||
|
||||
The Terminal plugin uses a lua script to integrate with the cmd shell when using clink.
|
||||
|
||||
\list
|
||||
\li \l https://github.com/chrisant996/clink-gizmos
|
||||
\endlist
|
||||
|
||||
Distributed under the MIT license.
|
||||
|
||||
\include license-mit.qdocinc
|
||||
|
||||
\li \b cmake
|
||||
|
||||
The CMake project manager uses the CMake lexer code for parsing CMake files.
|
||||
|
||||
\list
|
||||
\li \l https://gitlab.kitware.com/cmake/cmake.git
|
||||
\endlist
|
||||
|
||||
CMake - Cross Platform Makefile Generator
|
||||
Copyright 2000-2023 Kitware, Inc. and Contributors
|
||||
All rights reserved.
|
||||
|
||||
\badcode
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
* Neither the name of Kitware, Inc. nor the names of Contributors
|
||||
may be used to endorse or promote products derived from this
|
||||
software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
\endcode
|
||||
|
||||
|
||||
\endlist
|
||||
*/
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// Copyright (C) 2022 The Qt Company Ltd.
|
||||
// Copyright (C) 2023 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||
|
||||
/*!
|
||||
@@ -8,122 +8,33 @@
|
||||
|
||||
\title Creating Files
|
||||
|
||||
You can use wizard templates to add individual files to your
|
||||
\l{Creating Projects}{projects}.
|
||||
The following table lists the wizard templates for creating files.
|
||||
\image qtcreator-new-file.webp {New File wizard}
|
||||
|
||||
\table
|
||||
\header
|
||||
\li Category
|
||||
\li Wizard Template
|
||||
\li Purpose
|
||||
\row
|
||||
\li {1,3} C/C++
|
||||
\li C++ Class
|
||||
\li C++ header and source file for a new class that you can add to
|
||||
a C++ project.
|
||||
\row
|
||||
\li C/C++ Source File
|
||||
\li C++ source file that you can add to a C++ project.
|
||||
\row
|
||||
\li C/C++ Header File
|
||||
\li C++ header file that you can add to a C++ project.
|
||||
\row
|
||||
\li {1,3} Modeling
|
||||
\li State Chart
|
||||
\li State Chart XML (SCXML) file that has boilerplate
|
||||
code for state machines. You can use the classes in the
|
||||
\l {Qt SCXML} module to embed state machines created from
|
||||
the files in Qt applications.
|
||||
\row
|
||||
\li Model
|
||||
\li Universal Modeling Language (UML) style model with a structured
|
||||
diagram. However, the model editor uses a variant of UML and
|
||||
has only a subset of properties for specifying the
|
||||
appearance of model elements. For more information, see
|
||||
\l {Modeling}.
|
||||
\row
|
||||
\li Scratch Model
|
||||
\li Scratch model using a temporary file.
|
||||
\row
|
||||
\li {1,7} Qt
|
||||
\li Qt Item Model
|
||||
\li Source and header files that you can use to create classes
|
||||
derived from QAbstractItemModel, QAbstractTableModel, or
|
||||
QAbstractListModel.
|
||||
\row
|
||||
\li \QD Form Class
|
||||
\li \QD form and a matching class for implementing a UI based
|
||||
on Qt widgets.
|
||||
\row
|
||||
\li \QD Form
|
||||
\li \QD form for Qt widget based projects. This is useful
|
||||
if you already have an existing class for the UI logic.
|
||||
\row
|
||||
\li Qt Resource File
|
||||
\li Resource file for storing binary files in the application
|
||||
executable.
|
||||
\row
|
||||
\li QML File (Qt Quick 2)
|
||||
\li QML file that imports Qt Quick 2.0 for use in Qt Quick projects.
|
||||
\row
|
||||
\li Qt Quick UI File
|
||||
\li \l{UI Files}{UI file} (\e .ui.qml) and the corresponding
|
||||
implementation file (\e .qml) for use in Qt Quick projects.
|
||||
\row
|
||||
\li JS File
|
||||
\li JavaScript file that you can use to write the application logic
|
||||
in Qt Quick projects.
|
||||
\row
|
||||
\li {1,4} GLSL
|
||||
\li Fragment Shader (OpenGL/ES 2.0)
|
||||
\li Fragment shader that generates the final pixel colors for
|
||||
triangles, points, and lines rendered with OpenGL. You can use
|
||||
it in both Qt Quick projects and Qt widget based projects.
|
||||
\row
|
||||
\li Vertex Shader (OpenGL/ES 2.0)
|
||||
\li Vertex shader that transforms the positions, normals, and
|
||||
texture coordinates of triangles, points, and lines rendered
|
||||
with OpenGL. You can use it in both Qt Quick projects and Qt
|
||||
widget based projects.
|
||||
\row
|
||||
\li Fragment Shader (Desktop OpenGL)
|
||||
\li Fragment shader for use in both Qt Quick projects and Qt
|
||||
widget based projects.
|
||||
\row
|
||||
\li Vertex Shader (Desktop OpenGL)
|
||||
\li Vertex shader for use in both Qt Quick projects and Qt
|
||||
widget based projects.
|
||||
\row
|
||||
\li {1,2} General
|
||||
\li Empty File
|
||||
\li Empty file that you can save with any filename extension.
|
||||
\row
|
||||
\li Scratch Buffer
|
||||
\li Scratch buffer that uses temporary files. You can
|
||||
create this type of files for temporarily storing information
|
||||
that you do not intend to save
|
||||
\row
|
||||
\li Java
|
||||
\li Java File
|
||||
\li Java class files that you can use to create Java classes.
|
||||
\row
|
||||
\li {1,2} Python
|
||||
\li Python Class
|
||||
\li Python class file.
|
||||
\row
|
||||
\li Python File
|
||||
\li Python script file using UTF-8 encoding.
|
||||
\row
|
||||
\li {1,2} Nim (experimental)
|
||||
\li Nim Script File
|
||||
\li Empty Nim script file using UTF-8 encoding.
|
||||
\row
|
||||
\li Nim File
|
||||
\li Empty Nim source file using UTF-8 encoding.
|
||||
\endtable
|
||||
Use wizard templates to add individual files to your \l{Creating Projects}
|
||||
{projects}:
|
||||
|
||||
\section1 Creating C++ Classes
|
||||
\list
|
||||
\li \uicontrol {C/C++}: header and source files for new classes.
|
||||
\li \uicontrol {Modeling}: State Chart XML (SCXML) files,
|
||||
Universal Modeling Language (UML) style \l {Modeling}{models},
|
||||
and scratch models that use a temporary file.
|
||||
\li \uicontrol {Qt}: source and header files for item, table,
|
||||
or list models, \QD forms and a matching classes for Qt Widgets
|
||||
projects, Qt resource files, as well as QML and JavaScript files
|
||||
for Qt Quick projects.
|
||||
\li \uicontrol {GLSL}: fragment and vertex shaders.
|
||||
\li \uicontrol {General}: markdown files, empty files that you can save
|
||||
with any filename extension, and scratch buffers that use temporary
|
||||
files.
|
||||
\li \uicontrol {Java}: class files.
|
||||
\li \uicontrol {Python}: class and script files for Python projects.
|
||||
\li \uicontrol {Nim} (experimental): empty Nim source and script files.
|
||||
\endlist
|
||||
|
||||
The \uicontrol {New File} dialog shows detailed information about each file
|
||||
wizard template.
|
||||
|
||||
\section1 C++ Classes
|
||||
|
||||
The \uicontrol {C++ Class Wizard} allows you to create a C++ header and source
|
||||
file for a new class that you can add to a C++ project. Specify the class
|
||||
@@ -149,7 +60,7 @@
|
||||
You can create your own project and class wizards. For more information,
|
||||
see \l{Adding New Custom Wizards}.
|
||||
|
||||
\section1 Creating Resource Files
|
||||
\section1 Resource Files
|
||||
|
||||
\QC supports the \l{The Qt Resource System}{Qt Resource System}, which is a
|
||||
platform-independent mechanism for storing files in the application's
|
||||
@@ -187,7 +98,7 @@
|
||||
The above functions are also available in the context menu in the
|
||||
\uicontrol Projects view.
|
||||
|
||||
\section1 Creating OpenGL Fragment and Vertex Shaders
|
||||
\section1 OpenGL Fragment and Vertex Shaders
|
||||
|
||||
Qt supports integration with OpenGL implementations on all
|
||||
platforms, which allows you to display hardware accelerated 3D graphics
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// Copyright (C) 2020 The Qt Company Ltd.
|
||||
// Copyright (C) 2023 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||
|
||||
// **********************************************************************
|
||||
@@ -12,29 +12,33 @@
|
||||
|
||||
\section1 Selecting the Build System
|
||||
|
||||
You can use several build systems to build your projects.
|
||||
You can use several build systems to build your projects:
|
||||
|
||||
\l{qmake Manual}{qmake} is a cross-platform system for build automation
|
||||
\list
|
||||
|
||||
\li \l{qmake Manual}{qmake} is a cross-platform system for build automation
|
||||
that helps simplify the build process for development projects across
|
||||
different platforms. qmake automates the generation of build configurations
|
||||
so that you need only a few lines of information to create each
|
||||
configuration. Qt installers install and configure qmake.
|
||||
To use one of the other supported build systems, you need to set it up.
|
||||
|
||||
\l {Build with CMake}{CMake} is an alternative to qmake for automating the
|
||||
\li \l {Build with CMake}{CMake} is an alternative to qmake for automating the
|
||||
generation of build configurations. For more information, see
|
||||
\l {Setting Up CMake}.
|
||||
|
||||
\l {https://mesonbuild.com/}{Meson} Meson is a fast and user-friendly
|
||||
\li \l {https://mesonbuild.com/}{Meson} is a fast and user-friendly
|
||||
open-source build system that aims to minimize the time developers spend
|
||||
writing or debugging build definitions and waiting for the build system
|
||||
to start compiling code. For more information, see \l {Setting Up Meson}.
|
||||
|
||||
\l{Qbs Manual}{Qbs} is an all-in-one build tool that generates a build graph
|
||||
\li \l{Qbs Manual}{Qbs} is an all-in-one build tool that generates a build graph
|
||||
from a high-level project description (like qmake or CMake do) and executes
|
||||
the commands in the low-level build graph (like make does). For more
|
||||
information, see \l{Setting Up Qbs}.
|
||||
|
||||
\endlist
|
||||
|
||||
To export a project to some other build system, such as Microsoft Visual
|
||||
Studio, select \uicontrol Build > \uicontrol {Run Generator}, and select
|
||||
a generator in the list. \QC generates the build files, such as .vcxproj,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// Copyright (C) 2022 The Qt Company Ltd.
|
||||
// Copyright (C) 2023 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||
|
||||
// **********************************************************************
|
||||
@@ -49,7 +49,7 @@
|
||||
The installers create \l{glossary-buildandrun-kit}{kits} and specify build
|
||||
and run settings for the installed device types. However, you might need to
|
||||
install and configure some additional software on the devices to be able to
|
||||
connect to them from the development PC.
|
||||
\l{Connecting Devices}{connect} to them from the development PC.
|
||||
|
||||
\include creator-projects-build-systems.qdocinc build systems
|
||||
|
||||
@@ -71,146 +71,49 @@
|
||||
|
||||
\section1 Selecting Project Type
|
||||
|
||||
The following table lists the wizard templates for creating projects.
|
||||
The following table lists the types of wizard templates that you can use
|
||||
for creating projects. The \uicontrol {New Project} dialog shows detailed
|
||||
information about each project wizard template.
|
||||
|
||||
\table
|
||||
\header
|
||||
\li Category
|
||||
\li Wizard Template
|
||||
\li Purpose
|
||||
\row
|
||||
\li Application (\QMCU)
|
||||
\li MCU Support Application
|
||||
\li Creates an application that uses a subset of Qt QML and
|
||||
Qt Quick Controls types (as supported by \QMCU) that
|
||||
you can deploy, run, and debug on MCU boards. For more
|
||||
information, see \l {Connecting MCUs}.
|
||||
\li Application
|
||||
\li Use many UI technologies (Qt Widgets and Qt Quick) and
|
||||
programming languages (C++, QML, and Python) to create
|
||||
applications for different purposes that you can run on
|
||||
many target platforms (desktop, mobile, and embedded).
|
||||
\row
|
||||
\li {1,3} Application (Qt)
|
||||
\li Qt Widgets Application
|
||||
\li Uses \QD forms to design a Qt widget based user interface for
|
||||
the desktop and C++ to implement the application logic.
|
||||
\li Library or plugin
|
||||
\li Create a shared or static C++ library, a C++ plugin for Qt Quick
|
||||
application extensions, or a \QC plugin.
|
||||
\row
|
||||
\li Qt Console Application
|
||||
\li Uses a single main.cpp file.
|
||||
\li Other project
|
||||
\li Create custom \l{Developing Widget Based Applications}{\QD}
|
||||
widgets or widget collections,
|
||||
\l{Qt Quick UI Projects}{Qt Quick UI projects},
|
||||
\l {Creating Tests}{auto-test projects},
|
||||
\l{Adding Subprojects to Projects}{subprojects},
|
||||
empty qmake projects, or qmake projects for testing
|
||||
code snippets.
|
||||
\row
|
||||
\li Qt Quick Application
|
||||
\li Creates a Qt Quick application project that can have both
|
||||
QML and C++ code. You can build the application and deploy it
|
||||
to desktop, embedded, and mobile target platforms.
|
||||
\li Non-Qt project
|
||||
\li Create plain C or C++ applications or \l {Setting Up Nimble}
|
||||
{Nim or Nimble} applications (experimental)
|
||||
\row
|
||||
\li Imported project
|
||||
\li Import projects from a supported \l{Using Version Control Systems}
|
||||
{version control system}, such as Bazaar, CVS, Git, Mercurial, or
|
||||
Subversion.
|
||||
|
||||
You can select an option to create a project that you can open
|
||||
in \QDS, which has a visual editor for Qt Quick UIs.
|
||||
\row
|
||||
\li {1,4} Application (Qt for Python)
|
||||
\li Empty Application
|
||||
\li Creates a \l{https://doc.qt.io/qtforpython/index.html}
|
||||
{Qt for Python} application that has only the main
|
||||
code for a QApplication.
|
||||
\row
|
||||
\li Empty Window
|
||||
\li Creates a Qt for Python application that has an empty
|
||||
window.
|
||||
\row
|
||||
\li Window UI
|
||||
\li Creates a Qt for Python application that has an empty
|
||||
window with a widget-based UI. Preferred approach that requires
|
||||
you to generate a Python file from the .ui file, to import
|
||||
it directly into your application.
|
||||
\row
|
||||
\li Qt Quick Application - Empty
|
||||
\li Creates a Python project that has an empty Qt Quick
|
||||
Application.
|
||||
\row
|
||||
\li {1,3} Library
|
||||
\li C++ Library
|
||||
\li A shared or static C++ library based on qmake.
|
||||
\row
|
||||
\li Qt Quick 2 Extension Plugin
|
||||
\li Creates a C++ plugin that makes it possible to offer extensions
|
||||
that the QQmlEngine class can load dynamically into Qt Quick
|
||||
applications.
|
||||
\row
|
||||
\li \QC Plugin
|
||||
\li Creates a \QC plugin.
|
||||
\row
|
||||
\li {1,6} Other Project
|
||||
\li Qt Custom Designer Widget
|
||||
\li Creates a custom \QD widget or widget collection.
|
||||
\row
|
||||
\li Qt Quick UI Prototype
|
||||
\li Creates a \l{Creating Qt Quick UI Projects}{Qt Quick UI project}
|
||||
with a single QML file that has the main view. You can
|
||||
preview Qt Quick UI projects in the
|
||||
\l{Validating with Target Hardware}{QML Scene preview tool}.
|
||||
You do not need to build them because they do not have any
|
||||
C++ code.
|
||||
|
||||
Use this template only if you are prototyping. You cannot create
|
||||
a full application by using this template.
|
||||
|
||||
You cannot deploy Qt Quick UI projects to embedded or mobile
|
||||
target platforms. For those platforms, create a Qt Quick
|
||||
application instead.
|
||||
\row
|
||||
\li Auto Test Project
|
||||
\li Creates a project with boilerplate code for a Qt or Google
|
||||
test. For more information, see \l {Creating Tests}.
|
||||
\row
|
||||
\li Subdirs Project
|
||||
\li Creates a subproject that enables you to structure your qmake
|
||||
projects as a tree hierarchy.
|
||||
\row
|
||||
\li Empty qmake Project
|
||||
\li Creates an empty qmake project that uses qmake as the build
|
||||
system but does not use any default classes.
|
||||
\row
|
||||
\li Code Snippet
|
||||
\li Creates a qmake project from a code snippet. When working on
|
||||
bug reports that have a code snippet, you can place the code
|
||||
snippet into a project to compile and check it.
|
||||
\row
|
||||
\li {1,4} Non-Qt Project
|
||||
\li Plain C Application
|
||||
\li Creates a plain C application that uses qmake, Qbs, or CMake
|
||||
but does not use the Qt library.
|
||||
\row
|
||||
\li Plain C++ Application
|
||||
\li Creates a plain C++ application that uses qmake, Qbs, or CMake
|
||||
but does not use the Qt library.
|
||||
\row
|
||||
\li Nim Application (experimental)
|
||||
\li Creates a Nim application that uses Nimble, but does not use the
|
||||
Qt library. For more information, see \l {Setting Up Nimble}.
|
||||
\row
|
||||
\li Nimble Application (experimental)
|
||||
\li Creates a Nimble application that uses Nimble, but does not use
|
||||
the Qt library. For more information, see
|
||||
\l {Setting Up Nimble}.
|
||||
\row
|
||||
\li {1,3} Import Project
|
||||
\li Project from version control
|
||||
\li Imports a project from a supported version control system, such
|
||||
as Bazaar, CVS, Git, Mercurial, or Subversion. For more
|
||||
information about how \QC integrates version control systems,
|
||||
see \l{Using Version Control Systems}.
|
||||
\row
|
||||
\li Import as qmake or CMake Project (Limited Functionality)
|
||||
\li Imports an existing project that does not use any of the
|
||||
supported build systems: qmake, Qbs, CMake, or Autotools. The
|
||||
template creates a project file, which enables you to use
|
||||
\QC as a code editor and as a launcher for debugging and
|
||||
analysis tools. However, if you want to build the project,
|
||||
you might need to edit the generated project file.
|
||||
\row
|
||||
\li Import Existing Project
|
||||
\li Imports an existing project that does not use any of the
|
||||
supported build systems: qmake, Qbs, CMake, or Autotools.
|
||||
This enables you to use \QC as a code editor.
|
||||
You can also import existing projects that do not use any of the
|
||||
supported build systems to use \QC as a code editor and as a
|
||||
launcher for debugging and analysis tools.
|
||||
\row
|
||||
\li Squish
|
||||
\li Squish Test Suite
|
||||
\li Creates a new \l {Using Squish}{Squish test suite}.
|
||||
\li Create new \l {Using Squish}{Squish test suites}.
|
||||
|
||||
\endtable
|
||||
|
||||
|
||||
@@ -97,8 +97,8 @@
|
||||
used for the \c CurrentKit:FileSystemName variable, which determines
|
||||
the name of the shadow build directory, for example.
|
||||
\row
|
||||
\li \uicontrol{Device type}
|
||||
\li Type of the device.
|
||||
\li \uicontrol{Run device type}
|
||||
\li Type of the run device.
|
||||
|
||||
Double-click the icon next to the field to select the image that is
|
||||
displayed in the kit selector for this kit. You can use any
|
||||
@@ -107,7 +107,7 @@
|
||||
logo as an icon allows you to easily see, which compiler is used to
|
||||
build the project for the selected kit.
|
||||
\row
|
||||
\li \uicontrol Device
|
||||
\li \uicontrol {Run device}
|
||||
\li The device to run applications on.
|
||||
\row
|
||||
\li \uicontrol {Build device}
|
||||
|
||||
@@ -140,7 +140,7 @@
|
||||
|
||||
For more information about the
|
||||
\uicontrol {Qt for Python - Qt Quick Application - Empty} wizard, see
|
||||
\l {Creating Qt Quick Based Python Applications}.
|
||||
\l {Qt Quick Based Python Applications}.
|
||||
|
||||
For examples of creating Qt for Python applications, see
|
||||
\l {https://doc.qt.io/qtforpython/tutorials/index.html}
|
||||
@@ -151,7 +151,7 @@
|
||||
|
||||
//! [python qml project wizards]
|
||||
|
||||
\section1 Creating Qt Quick Based Python Applications
|
||||
\section1 Qt Quick Based Python Applications
|
||||
|
||||
The \uicontrol {Qt for Python - Qt Quick Application - Empty} wizard enables
|
||||
you to create a Python project that has a main QML file. Specify the
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// Copyright (C) 2021 The Qt Company Ltd.
|
||||
// Copyright (C) 2023 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||
|
||||
|
||||
@@ -7,6 +7,12 @@
|
||||
|
||||
\title All Topics
|
||||
|
||||
\note The following list has links to all the individual topics (HTML files)
|
||||
in the \QC Manual. Use your browser's page search to find a link to a
|
||||
particular topic in the list. For a more extensive search, use the
|
||||
\uicontrol Search function in the \l{https://doc.qt.io/qtcreator/}
|
||||
{Qt documentation} portal or in the \l {Using the Help Mode}{Help} mode.
|
||||
|
||||
\list
|
||||
\li \l{Getting Started}
|
||||
\list
|
||||
@@ -122,6 +128,7 @@
|
||||
\li \l{Specifying Text Editor Settings}
|
||||
\li \l{Using FakeVim Mode}
|
||||
\endlist
|
||||
\li \l{Editing Markdown Files}
|
||||
\li \l{Using Language Servers}
|
||||
\li \l{Editing MIME Types}
|
||||
\li \l{Modeling}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// Copyright (C) 2021 The Qt Company Ltd.
|
||||
// Copyright (C) 2023 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||
|
||||
// **********************************************************************
|
||||
@@ -29,9 +29,11 @@
|
||||
appropriate \l{http://qt.io/licensing/}{Qt license}. For more information,
|
||||
see \l{Commercial Features}.
|
||||
|
||||
|
||||
|
||||
\table
|
||||
\row
|
||||
\li {4,1} \b {\l{All Topics}}
|
||||
\li {4,1} \b {\l{All Topics}{Click Here for a List of All Topics}}
|
||||
\row
|
||||
\li \inlineimage front-gs.png
|
||||
\li \inlineimage front-projects.png
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
However, the actual performance of the application once started is
|
||||
indistinguishable from the same application running on the desktop.
|
||||
|
||||
You can run \l{Creating Qt Quick UI Projects}{Qt Quick UI projects}, which
|
||||
You can run \l{Qt Quick UI Projects}{Qt Quick UI projects}, which
|
||||
have a .qmlproject file that define the main QML file and the import paths.
|
||||
Compress the project folder into a ZIP file that you upload to \QDV.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// Copyright (C) 2021 The Qt Company Ltd.
|
||||
// Copyright (C) 2023 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||
|
||||
// **********************************************************************
|
||||
@@ -14,58 +14,28 @@
|
||||
|
||||
\title Creating Qt Quick Projects
|
||||
|
||||
The following table lists the wizard templates for creating a new
|
||||
Qt Quick project from scratch.
|
||||
Use the following wizard templates to create new Qt Quick projects:
|
||||
|
||||
\table
|
||||
\header
|
||||
\li Category
|
||||
\li Wizard Template
|
||||
\li Purpose
|
||||
\row
|
||||
\li Application (Qt)
|
||||
\li Qt Quick Application
|
||||
\li Creates a Qt Quick application project that can have both
|
||||
QML and C++ code. You can build the application and deploy it
|
||||
to desktop, embedded, and mobile target platforms.
|
||||
\list
|
||||
\li \uicontrol {Application (Qt)} > \uicontrol {Qt Quick Application}
|
||||
\li \uicontrol {Application (Qt for Python)} >
|
||||
\uicontrol {Qt for Python - Qt Quick Application}
|
||||
\li \uicontrol {Other Project} > \uicontrol {Qt Quick UI Prototype}
|
||||
\li \uicontrol {Library} > \uicontrol {Qt Quick 2 Extension Plugin}
|
||||
\endlist
|
||||
|
||||
You can select an option to create a project that you can open
|
||||
in \QDS.
|
||||
\row
|
||||
\li Application (Qt for Python)
|
||||
\li Qt for Python - Qt Quick Application
|
||||
\li Creates a Python project that has an empty Qt Quick
|
||||
Application.
|
||||
\row
|
||||
\li Other Project
|
||||
\li Qt Quick UI Prototype
|
||||
\li Creates a Qt Quick UI project with a single QML file that
|
||||
has the main view. You can preview Qt Quick UI projects
|
||||
in the QML Scene preview tool. You do not need to build them
|
||||
because they do not have any C++ code.
|
||||
|
||||
This project type is compatible with \QDS. However, use this
|
||||
template only if you are prototyping. You cannot create
|
||||
a full application by using this template.
|
||||
|
||||
You cannot deploy Qt Quick UI projects to embedded or
|
||||
mobile target platforms. For those platforms, create a Qt Quick
|
||||
application instead.
|
||||
\row
|
||||
\li Library
|
||||
\li Qt Quick 2 Extension Plugin
|
||||
\li Creates C++ plugins that make it possible to offer extensions
|
||||
that can be loaded dynamically into Qt Quick applications.
|
||||
\endtable
|
||||
The \uicontrol {New Project} dialog shows detailed information about each
|
||||
project wizard template.
|
||||
|
||||
\note The SDK for a particular target platform might install additional
|
||||
templates for that platform. For example, the QNX templates are installed
|
||||
as part of the QNX SDK.
|
||||
|
||||
\QC creates the necessary boilerplate files. Some of the files are
|
||||
specific to a particular target platform.
|
||||
specific to a particular target platform. You can use wizard templates
|
||||
also to \l{Creating Files}{add files} to the projects.
|
||||
|
||||
\section1 Creating Qt Quick Applications
|
||||
\section1 Qt Quick Applications
|
||||
|
||||
\list 1
|
||||
|
||||
@@ -142,7 +112,7 @@
|
||||
|
||||
\include creator-python-project.qdocinc python qml project wizards
|
||||
|
||||
\section1 Creating Qt Quick UI Projects
|
||||
\section1 Qt Quick UI Projects
|
||||
|
||||
Qt Quick UI Prototype projects are useful for testing or prototyping user
|
||||
interfaces,
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
\endlist
|
||||
|
||||
For more information about the settings that you skipped and the other
|
||||
wizard templates available, see \l{Creating Qt Quick Applications}.
|
||||
wizard templates available, see \l{Qt Quick Applications}.
|
||||
|
||||
//! [qtquick empty application]
|
||||
*/
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
In addition, you can use \QDV to run
|
||||
\if defined(qtcreator)
|
||||
\l{Creating Qt Quick UI Projects}{Qt Quick UI projects}
|
||||
\l{Qt Quick UI Projects}{Qt Quick UI projects}
|
||||
\else
|
||||
applications
|
||||
\endif
|
||||
|
||||
@@ -88,6 +88,7 @@
|
||||
(\uicontrol {Synchronize with Editor}).
|
||||
\endlist
|
||||
|
||||
\if defined(qtcreator)
|
||||
\section1 Viewing the Class Hierarchy
|
||||
|
||||
The \uicontrol {Class View} shows the class hierarchy of the currently
|
||||
@@ -144,4 +145,5 @@
|
||||
To keep the view synchronized with the file currently open in the editor,
|
||||
select \inlineimage icons/linkicon.png
|
||||
(\uicontrol {Synchronize with Editor}).
|
||||
\endif
|
||||
*/
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
\li Select \uicontrol Edit > \uicontrol Preferences > \uicontrol Kits >
|
||||
\uicontrol Add.
|
||||
\li In the \uicontrol Name field, specify a name for the kit.
|
||||
\li In the \uicontrol {Device type} field, select
|
||||
\li In the \uicontrol {Run device type} field, select
|
||||
\uicontrol {WebAssembly Runtime}.
|
||||
The value of the \uicontrol Device field is automatically
|
||||
set to \uicontrol {Web Browser}.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// Copyright (C) 2022 The Qt Company Ltd.
|
||||
// Copyright (C) 2023 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||
|
||||
// **********************************************************************
|
||||
@@ -294,12 +294,6 @@
|
||||
and select \uicontrol{Finish} or \uicontrol Done to open the file
|
||||
in the code editor.
|
||||
|
||||
\li In the \uicontrol Copy to Clipboard dialog, select \uicontrol Yes to
|
||||
copy the path to the resource file to the clipboard for adding it
|
||||
to the CMakeLists.txt file.
|
||||
|
||||
\image qtcreator-add-resource-wizard4.png "Copy to Clipboard dialog"
|
||||
|
||||
\li Select \uicontrol Add > \uicontrol {Add Prefix}.
|
||||
|
||||
\li In the \uicontrol{Prefix} field, replace the default prefix with a slash
|
||||
|
||||
@@ -16,6 +16,7 @@ headerdirs = . \
|
||||
../src \
|
||||
../../../src/libs/aggregation \
|
||||
../../../src/libs/extensionsystem \
|
||||
../../../src/libs/solutions/tasking \
|
||||
../../../src/libs/utils \
|
||||
../../../src/plugins/coreplugin
|
||||
|
||||
@@ -23,11 +24,14 @@ sourcedirs = . \
|
||||
../src \
|
||||
../../../src/libs/aggregation \
|
||||
../../../src/libs/extensionsystem \
|
||||
../../../src/libs/solutions/tasking \
|
||||
../../../src/libs/utils \
|
||||
../../../src/plugins/coreplugin
|
||||
|
||||
|
||||
excludedirs = ../../../src/libs/aggregation/examples
|
||||
excludedirs = ../../../src/libs/aggregation/examples \
|
||||
../../../src/libs/utils/mimetypes2
|
||||
|
||||
|
||||
# -- Uncomment following option to generate complete documentation
|
||||
# instead of public API documentation only.
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
\li Add support for a new version control system.
|
||||
\li Version control systems integrated in \QC are Bazaar, CVS, Git,
|
||||
Mecurial, Perforce, and Subversion.
|
||||
\li \l{Core::IVersionControl}
|
||||
\li \c{Core::IVersionControl}
|
||||
|
||||
\row
|
||||
\li Add a view to the navigation sidebar.
|
||||
@@ -94,7 +94,7 @@
|
||||
\li For a text typed in by the user you provide a list of things to
|
||||
show in the popup. When the user selects an entry you are
|
||||
requested to do whatever you want.
|
||||
\li \l{Core::ILocatorFilter}, \l{Core::BaseFileFilter}
|
||||
\li \l{Core::ILocatorFilter}
|
||||
|
||||
\row
|
||||
\li Show a progress indicator for a concurrently running task.
|
||||
|
||||
@@ -28,8 +28,7 @@
|
||||
tracks the state of the plugin.
|
||||
You can get the \l{ExtensionSystem::PluginSpec} instances via the
|
||||
plugin manager's \l{ExtensionSystem::PluginManager::plugins()}{plugins()}
|
||||
function, or, after a plugin is loaded, through the plugin's
|
||||
\l{ExtensionSystem::IPlugin::pluginSpec()}{pluginSpec()} function.
|
||||
function.
|
||||
|
||||
\li Sets the plugins to \c Read state.
|
||||
|
||||
|
||||
@@ -41,8 +41,8 @@
|
||||
failure.
|
||||
|
||||
To add plugin tests, add a QObject based class with private slots for your
|
||||
tests, and register it with \l{ExtensionSystem::IPlugin::addTest()} in your
|
||||
plugin's \l{ExtensionSystem::IPlugin::initialized()} method. Guard all test
|
||||
tests, and register it with \c{ExtensionSystem::IPlugin::addTest()} in your
|
||||
plugin's \l{ExtensionSystem::IPlugin::initialize()} method. Guard all test
|
||||
related code with a check for \c{WITH_TESTS}, to avoid shipping a binary
|
||||
release of your plugin with test functions.
|
||||
|
||||
|
||||
@@ -202,7 +202,7 @@
|
||||
One way to handle that would be to let the tool create an output file, which
|
||||
is then opened within \QC. You provide an editor (probably read-only) for
|
||||
handling this file. For lists of issues, consider creating task list files
|
||||
which are shown in \l Issues.
|
||||
which are shown in \uicontrol Issues.
|
||||
|
||||
\list
|
||||
\li \l{https://doc.qt.io/qtcreator/creator-task-lists.html}
|
||||
|
||||
@@ -34,6 +34,11 @@
|
||||
for plugins and basic mechanisms for plugin interaction like an
|
||||
object pool.
|
||||
|
||||
\row
|
||||
\li \l{Tasking}
|
||||
\li A solution containing a TaskTree and other classes for writing
|
||||
declarative trees of asynchronous task flows.
|
||||
|
||||
\row
|
||||
\li \l{Utils}
|
||||
\li Useful classes that are reused in a lot of places in Qt Creator code.
|
||||
|
||||
@@ -91,14 +91,14 @@
|
||||
case, use book style capitalization and do not add a period after the tool
|
||||
tip.
|
||||
|
||||
\image qtcreator-tooltip.png "Tooltip"
|
||||
\image qtcreator-tooltip.png {Tooltip}
|
||||
|
||||
Tooltips can also contain full sentences. Try to make them as short and
|
||||
concise as possible, while still making them grammatically correct. Use
|
||||
sentence style capitalization and punctuation as you would for any
|
||||
sentence.
|
||||
|
||||
\image qtcreator-tooltip-long.png "Sentence as a tooltip"
|
||||
\image qtcreator-tooltip-long.png {Sentence as a tooltip}
|
||||
|
||||
\section3 Writing Tooltips in Design Mode
|
||||
|
||||
@@ -333,7 +333,7 @@
|
||||
|
||||
\li Opens when users right-click on the screen. Contents depend on
|
||||
the context.
|
||||
\image qtcreator-context-menu.png "Context menu"
|
||||
\image qtcreator-context-menu.png {Context menu}
|
||||
|
||||
\li You can add menu items that are relevant in a particular
|
||||
context. Follow the conventions for naming menu items.
|
||||
@@ -343,7 +343,7 @@
|
||||
\li User interface element that usually contains a number of
|
||||
choices or allows the user to give input to the application.
|
||||
Opens when users select a menu item or button.
|
||||
\image qtcreator-dialog.png "Dialog"
|
||||
\image qtcreator-dialog.png {Dialog}
|
||||
\li Use the menu item or button name as the dialog name. You can
|
||||
also combine the menu item or button name and the name of the
|
||||
object that is managed in the dialog. For example, the \uicontrol Add
|
||||
@@ -354,7 +354,7 @@
|
||||
|
||||
\li Allows you to browse not only files, but any items defined by
|
||||
locator filters.
|
||||
\image qtcreator-locator.png "Locator"
|
||||
\image qtcreator-locator.webp {Locator}
|
||||
|
||||
\li You can add locator filters. Check that the filter is not
|
||||
already in use and give the filter a descriptive name.
|
||||
@@ -365,7 +365,7 @@
|
||||
\li Contains menu items that represent commands or options and that
|
||||
are logically grouped and displayed. A menu can also contain
|
||||
submenus.
|
||||
\image qtcreator-menu.png "Menu"
|
||||
\image qtcreator-menu.png {Menu}
|
||||
|
||||
\li You can create new menus. Use short, but descriptive names that
|
||||
are consistent with existing menu names. Use unambigious names.
|
||||
@@ -373,7 +373,7 @@
|
||||
\row
|
||||
\li Menu item
|
||||
\li Represents a command or an option for users to choose.
|
||||
\image qtcreator-menu-item.png "Menu item"
|
||||
\image qtcreator-menu-item.png {Menu item}
|
||||
\li You can add new items to menus. Use short, but descriptive
|
||||
names that are consistent with existing menu names. Use
|
||||
unambigious names.
|
||||
@@ -381,7 +381,7 @@
|
||||
\li Message box
|
||||
\li Dialog that provides feedback to users, in the form of status
|
||||
information, a warning, or an error message.
|
||||
\image qtcreator-error-message.png "Message box"
|
||||
\image qtcreator-error-message.png {Message box}
|
||||
Output from Qt Creator should be displayed in output views,
|
||||
instead.
|
||||
\li Use the event as the title and provide a solution in the
|
||||
@@ -390,21 +390,21 @@
|
||||
\li Mode
|
||||
\li Modes correspond to complete screens of controls, specialized
|
||||
for a task.
|
||||
\image qtcreator-mode-selector.png "Mode selector"
|
||||
\image qtcreator-mode-selector.png {Mode selector}
|
||||
\li You can add a mode for a new type of editor, for example.
|
||||
Use descriptive, but short mode names. They have to fit in the
|
||||
\uicontrol {Mode selector}.
|
||||
\row
|
||||
\li Output
|
||||
\li Views to display output from Qt Creator.
|
||||
\image qtcreator-output-pane.png "Output"
|
||||
\image qtcreator-output-pane.png {Output}
|
||||
\li Use descriptive names for output views.
|
||||
\row
|
||||
\li Sidebar
|
||||
\li A view available in the \uicontrol Edit and \uicontrol Debug modes that
|
||||
you can use to browse projects, files, and bookmarks, and to
|
||||
view the class hierarchy.
|
||||
\image qtcreator-sidebar-menu.png "Sidebar"
|
||||
\image qtcreator-sidebar-menu.png {Sidebar}
|
||||
\li You can add views to the sidebar menu. Use descriptive names
|
||||
for them.
|
||||
\row
|
||||
@@ -413,7 +413,7 @@
|
||||
provides them with functions for managing the information.
|
||||
Available in \uicontrol Debug mode, for interaction with the program
|
||||
that is running under the control of the debugger.
|
||||
\image qtcreator-debugger-views.webp "Views"
|
||||
\image qtcreator-debugger-views.webp {Views}
|
||||
\li Use descriptive names for views.
|
||||
\endtable
|
||||
|
||||
|
||||
6
qbs/imports/QtcTestFiles.qbs
Normal file
@@ -0,0 +1,6 @@
|
||||
import qbs 1.0
|
||||
|
||||
Group {
|
||||
name: "Unit tests"
|
||||
condition: qtc.testsEnabled
|
||||
}
|
||||
@@ -6,16 +6,16 @@ import qbs.Utilities
|
||||
Module {
|
||||
Depends { name: "cpp"; required: false }
|
||||
|
||||
property string qtcreator_display_version: '10.0.1'
|
||||
property string qtcreator_display_version: '11.0.0-beta1'
|
||||
property string ide_version_major: '10'
|
||||
property string ide_version_minor: '0'
|
||||
property string ide_version_release: '1'
|
||||
property string ide_version_release: '82'
|
||||
property string qtcreator_version: ide_version_major + '.' + ide_version_minor + '.'
|
||||
+ ide_version_release
|
||||
|
||||
property string ide_compat_version_major: '10'
|
||||
property string ide_compat_version_minor: '0'
|
||||
property string ide_compat_version_release: '0'
|
||||
property string ide_compat_version_release: '82'
|
||||
property string qtcreator_compat_version: ide_compat_version_major + '.'
|
||||
+ ide_compat_version_minor + '.' + ide_compat_version_release
|
||||
|
||||
|
||||
@@ -35,12 +35,9 @@ set(resource_files
|
||||
debugger/libcpp_stdtypes.py
|
||||
debugger/stdtypes.py
|
||||
debugger/utils.py
|
||||
debugger/loadorder.txt
|
||||
)
|
||||
|
||||
if (APPLE)
|
||||
set(resource_directories ${resource_directories} scripts)
|
||||
endif()
|
||||
|
||||
# copy resource directories during build
|
||||
qtc_copy_to_builddir(copy_share_to_builddir
|
||||
DIRECTORIES ${resource_directories}
|
||||
|
||||
@@ -235,7 +235,7 @@ def qdump__Utils__Port(d, value):
|
||||
|
||||
|
||||
|
||||
def qdump__Utils__Environment(d, value):
|
||||
def x_qdump__Utils__Environment(d, value):
|
||||
qdump__Utils__NameValueDictionary(d, value)
|
||||
|
||||
|
||||
@@ -243,7 +243,7 @@ def qdump__Utils__DictKey(d, value):
|
||||
d.putStringValue(value["name"])
|
||||
|
||||
|
||||
def qdump__Utils__NameValueDictionary(d, value):
|
||||
def x_qdump__Utils__NameValueDictionary(d, value):
|
||||
dptr = d.extractPointer(value)
|
||||
if d.qtVersion() >= 0x60000:
|
||||
if dptr == 0:
|
||||
|
||||
@@ -106,7 +106,7 @@ class Children():
|
||||
self.d.putNumChild(0)
|
||||
if self.d.currentMaxNumChild is not None:
|
||||
if self.d.currentMaxNumChild < self.d.currentNumChild:
|
||||
self.d.put('{name="<incomplete>",value="",type="",numchild="0"},')
|
||||
self.d.put('{name="<load more>",value="",type="",numchild="1"},')
|
||||
self.d.currentChildType = self.savedChildType
|
||||
self.d.currentChildNumChild = self.savedChildNumChild
|
||||
self.d.currentNumChild = self.savedNumChild
|
||||
@@ -195,10 +195,16 @@ class DumperBase():
|
||||
self.childrenPrefix = 'children=['
|
||||
self.childrenSuffix = '],'
|
||||
|
||||
self.dumpermodules = [
|
||||
os.path.splitext(os.path.basename(p))[0] for p in
|
||||
glob.glob(os.path.join(os.path.dirname(__file__), '*types.py'))
|
||||
]
|
||||
self.dumpermodules = []
|
||||
|
||||
try:
|
||||
# Fails in the piping case
|
||||
self.dumpermodules = [
|
||||
os.path.splitext(os.path.basename(p))[0] for p in
|
||||
glob.glob(os.path.join(os.path.dirname(__file__), '*types.py'))
|
||||
]
|
||||
except:
|
||||
pass
|
||||
|
||||
# These values are never used, but the variables need to have
|
||||
# some value base for the swapping logic in Children.__enter__()
|
||||
@@ -215,7 +221,7 @@ class DumperBase():
|
||||
|
||||
def setVariableFetchingOptions(self, args):
|
||||
self.resultVarName = args.get('resultvarname', '')
|
||||
self.expandedINames = set(args.get('expanded', []))
|
||||
self.expandedINames = args.get('expanded', {})
|
||||
self.stringCutOff = int(args.get('stringcutoff', 10000))
|
||||
self.displayStringLimit = int(args.get('displaystringlimit', 100))
|
||||
self.typeformats = args.get('typeformats', {})
|
||||
@@ -298,6 +304,11 @@ class DumperBase():
|
||||
return range(0, self.currentNumChild)
|
||||
return range(min(self.currentMaxNumChild, self.currentNumChild))
|
||||
|
||||
def maxArrayCount(self):
|
||||
if self.currentIName in self.expandedINames:
|
||||
return self.expandedINames[self.currentIName]
|
||||
return 100
|
||||
|
||||
def enterSubItem(self, item):
|
||||
if self.useTimeStamps:
|
||||
item.startTime = time.time()
|
||||
@@ -872,7 +883,7 @@ class DumperBase():
|
||||
self.output.append(stuff)
|
||||
|
||||
def takeOutput(self):
|
||||
res = '\n'.join(self.output)
|
||||
res = ''.join(self.output)
|
||||
self.output = []
|
||||
return res
|
||||
|
||||
@@ -2233,7 +2244,7 @@ class DumperBase():
|
||||
res = self.currentValue
|
||||
return res # The 'short' display.
|
||||
|
||||
def putArrayData(self, base, n, innerType, childNumChild=None, maxNumChild=10000):
|
||||
def putArrayData(self, base, n, innerType, childNumChild=None):
|
||||
self.checkIntType(base)
|
||||
self.checkIntType(n)
|
||||
addrBase = base
|
||||
@@ -2241,6 +2252,7 @@ class DumperBase():
|
||||
self.putNumChild(n)
|
||||
#DumperBase.warn('ADDRESS: 0x%x INNERSIZE: %s INNERTYPE: %s' % (addrBase, innerSize, innerType))
|
||||
enc = innerType.simpleEncoding()
|
||||
maxNumChild = self.maxArrayCount()
|
||||
if enc:
|
||||
self.put('childtype="%s",' % innerType.name)
|
||||
self.put('addrbase="0x%x",' % addrBase)
|
||||
@@ -2248,7 +2260,7 @@ class DumperBase():
|
||||
self.put('arrayencoding="%s",' % enc)
|
||||
self.put('endian="%s",' % self.packCode)
|
||||
if n > maxNumChild:
|
||||
self.put('childrenelided="%s",' % n) # FIXME: Act on that in frontend
|
||||
self.put('childrenelided="%s",' % n)
|
||||
n = maxNumChild
|
||||
self.put('arraydata="')
|
||||
self.put(self.readMemory(addrBase, n * innerSize))
|
||||
@@ -2282,7 +2294,7 @@ class DumperBase():
|
||||
def putPlotData(self, base, n, innerType, maxNumChild=1000 * 1000):
|
||||
self.putPlotDataHelper(base, n, innerType, maxNumChild=maxNumChild)
|
||||
if self.isExpanded():
|
||||
self.putArrayData(base, n, innerType, maxNumChild=maxNumChild)
|
||||
self.putArrayData(base, n, innerType)
|
||||
|
||||
def putSpecialArgv(self, value):
|
||||
"""
|
||||
|
||||
@@ -870,6 +870,7 @@ class Dumper(DumperBase):
|
||||
self.startMode_ = args.get('startmode', 1)
|
||||
self.breakOnMain_ = args.get('breakonmain', 0)
|
||||
self.useTerminal_ = args.get('useterminal', 0)
|
||||
self.firstStop_ = True
|
||||
pargs = self.hexdecode(args.get('processargs', ''))
|
||||
self.processArgs_ = pargs.split('\0') if len(pargs) else []
|
||||
self.environment_ = args.get('environment', [])
|
||||
@@ -930,6 +931,8 @@ class Dumper(DumperBase):
|
||||
|
||||
if self.startMode_ == DebuggerStartMode.AttachExternal:
|
||||
attach_info = lldb.SBAttachInfo(self.attachPid_)
|
||||
if self.breakOnMain_:
|
||||
self.createBreakpointAtMain()
|
||||
self.process = self.target.Attach(attach_info, error)
|
||||
if not error.Success():
|
||||
self.reportState('enginerunfailed')
|
||||
@@ -1474,6 +1477,12 @@ class Dumper(DumperBase):
|
||||
self.reportState("inferiorstopok")
|
||||
else:
|
||||
self.reportState("stopped")
|
||||
if self.firstStop_:
|
||||
self.firstStop_ = False
|
||||
if self.useTerminal_:
|
||||
# When using a terminal, the process will be interrupted on startup.
|
||||
# We therefore need to continue it here.
|
||||
self.process.Continue()
|
||||
else:
|
||||
self.reportState(self.stateName(state))
|
||||
|
||||
@@ -2120,7 +2129,7 @@ class SummaryDumper(Dumper, LogMixin):
|
||||
|
||||
# Expand variable if we need synthetic children
|
||||
oldExpanded = self.expandedINames
|
||||
self.expandedINames = [value.name] if expanded else []
|
||||
self.expandedINames = {value.name: 100} if expanded else {}
|
||||
|
||||
savedOutput = self.output
|
||||
self.output = []
|
||||
|
||||
13
share/qtcreator/debugger/loadorder.txt
Normal file
@@ -0,0 +1,13 @@
|
||||
utils
|
||||
gdbtracepoint
|
||||
dumper
|
||||
***bridge***
|
||||
boosttypes
|
||||
creatortypes
|
||||
libcpp_stdtypes
|
||||
misctypes
|
||||
opencvtypes
|
||||
personaltypes
|
||||
qttypes
|
||||
stdtypes
|
||||
android_stdtypes
|
||||
@@ -1445,7 +1445,7 @@ class QtcInternalDumper():
|
||||
self.updateData(args)
|
||||
|
||||
def updateData(self, args):
|
||||
self.expandedINames = __builtins__.set(args.get('expanded', []))
|
||||
self.expandedINames = args.get('expanded', {})
|
||||
self.typeformats = args.get('typeformats', {})
|
||||
self.formats = args.get('formats', {})
|
||||
self.output = ''
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
# Debugger start modes. Keep in sync with DebuggerStartMode in debuggerconstants.h
|
||||
|
||||
|
||||
# MT: Why does this not match (anymore?) to debuggerconstants.h : DebuggerStartMode ?
|
||||
class DebuggerStartMode():
|
||||
(
|
||||
NoStartMode,
|
||||
|
||||
@@ -199,6 +199,29 @@
|
||||
"QtQuick.Controls.Styles 1.2",
|
||||
"QtQuick.Controls.Styles 1.3",
|
||||
"QtQuick.Controls.Styles 1.4",
|
||||
"QtQuick.Controls.Basic 2.0",
|
||||
"QtQuick.Controls.Basic 2.1",
|
||||
"QtQuick.Controls.Basic 2.2",
|
||||
"QtQuick.Controls.Basic 2.3",
|
||||
"QtQuick.Controls.Basic 2.12",
|
||||
"QtQuick.Controls.Basic 2.13",
|
||||
"QtQuick.Controls.Basic 2.14",
|
||||
"QtQuick.Controls.Basic 2.15",
|
||||
"QtQuick.Controls.Fusion 2.0",
|
||||
"QtQuick.Controls.Fusion 2.1",
|
||||
"QtQuick.Controls.Fusion 2.2",
|
||||
"QtQuick.Controls.Fusion 2.3",
|
||||
"QtQuick.Controls.Fusion 2.12",
|
||||
"QtQuick.Controls.Fusion 2.13",
|
||||
"QtQuick.Controls.Fusion 2.14",
|
||||
"QtQuick.Controls.Imagine 2.0",
|
||||
"QtQuick.Controls.Imagine 2.1",
|
||||
"QtQuick.Controls.Imagine 2.2",
|
||||
"QtQuick.Controls.Imagine 2.3",
|
||||
"QtQuick.Controls.Imagine 2.12",
|
||||
"QtQuick.Controls.Imagine 2.13",
|
||||
"QtQuick.Controls.Imagine 2.14",
|
||||
"QtQuick.Controls.Imagine 2.15",
|
||||
"QtQuick.Dialogs 1.0",
|
||||
"QtQuick.Dialogs 1.1",
|
||||
"QtQuick.Dialogs 1.2",
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"name": "QtQuickControlsMacOS",
|
||||
"searchPaths": [],
|
||||
"installPaths": [],
|
||||
"implicitImports": [],
|
||||
"supportedImports": [
|
||||
"QtQuick.Controls.macOS",
|
||||
"QtQuick.Controls.iOS"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"name": "QtQuickControlsWin",
|
||||
"searchPaths": [],
|
||||
"installPaths": [],
|
||||
"implicitImports": [],
|
||||
"supportedImports": [
|
||||
"QtQuick.Controls.Windows"
|
||||
]
|
||||
}
|
||||
@@ -1,44 +1,36 @@
|
||||
cmake_minimum_required(VERSION 3.21.1)
|
||||
|
||||
set(BUILD_QDS_COMPONENTS ON CACHE BOOL "Build design studio components")
|
||||
option(LINK_INSIGHT "Link Qt Insight Tracker library" ON)
|
||||
option(BUILD_QDS_COMPONENTS "Build design studio components" ON)
|
||||
|
||||
project(%{ProjectName}App LANGUAGES CXX)
|
||||
|
||||
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
|
||||
find_package(QT NAMES Qt6 COMPONENTS Gui Qml Quick)
|
||||
find_package(Qt6 REQUIRED COMPONENTS Core Qml Quick)
|
||||
find_package(Qt6 6.2 REQUIRED COMPONENTS Core Gui Qml Quick)
|
||||
|
||||
# To build this application you need Qt 6.2.0 or higher
|
||||
if (Qt6_VERSION VERSION_LESS 6.2.0)
|
||||
message(FATAL_ERROR "You need Qt 6.2.0 or newer to build the application.")
|
||||
if (Qt6_VERSION VERSION_GREATER_EQUAL 6.3)
|
||||
qt_standard_project_setup()
|
||||
endif()
|
||||
|
||||
qt_add_executable(${CMAKE_PROJECT_NAME} src/main.cpp)
|
||||
qt_add_executable(%{ProjectName}App src/main.cpp)
|
||||
|
||||
# qt_standard_project_setup() requires Qt 6.3 or higher. See https://doc.qt.io/qt-6/qt-standard-project-setup.html for details.
|
||||
if (${QT_VERSION_MINOR} GREATER_EQUAL 3)
|
||||
qt6_standard_project_setup()
|
||||
endif()
|
||||
|
||||
qt_add_resources(${CMAKE_PROJECT_NAME} "configuration"
|
||||
qt_add_resources(%{ProjectName}App "configuration"
|
||||
PREFIX "/"
|
||||
FILES
|
||||
qtquickcontrols2.conf
|
||||
)
|
||||
|
||||
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE
|
||||
Qt${QT_VERSION_MAJOR}::Core
|
||||
Qt${QT_VERSION_MAJOR}::Gui
|
||||
Qt${QT_VERSION_MAJOR}::Quick
|
||||
Qt${QT_VERSION_MAJOR}::Qml
|
||||
target_link_libraries(%{ProjectName}App PRIVATE
|
||||
Qt6::Core
|
||||
Qt6::Gui
|
||||
Qt6::Qml
|
||||
Qt6::Quick
|
||||
)
|
||||
|
||||
if (${BUILD_QDS_COMPONENTS})
|
||||
if (BUILD_QDS_COMPONENTS)
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/qmlcomponents)
|
||||
endif ()
|
||||
endif()
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/qmlmodules)
|
||||
|
||||
@@ -46,6 +38,8 @@ if (LINK_INSIGHT)
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/insight)
|
||||
endif ()
|
||||
|
||||
install(TARGETS ${CMAKE_PROJECT_NAME}
|
||||
install(TARGETS %{ProjectName}App
|
||||
BUNDLE DESTINATION .
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
)
|
||||
|
||||
@@ -1,112 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
# Copyright (C) 2018 The Qt Company Ltd.
|
||||
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||
|
||||
import os
|
||||
import pipes
|
||||
import stat
|
||||
import subprocess
|
||||
import sys
|
||||
from tempfile import NamedTemporaryFile
|
||||
|
||||
def quote_shell(arg):
|
||||
return pipes.quote(arg)
|
||||
|
||||
def clean_environment_script():
|
||||
# keep some basic environment settings to ensure functioning terminal and config files
|
||||
env_to_keep = ' '.join(['_', 'HOME', 'LOGNAME', 'PWD', 'SHELL', 'TMPDIR', 'USER', 'TERM',
|
||||
'TERM_PROGRAM', 'TERM_PROGRAM_VERSION', 'TERM_SESSION_CLASS_ID',
|
||||
'TERM_SESSION_ID'])
|
||||
return r'''
|
||||
function ignore() {
|
||||
local keys=(''' + env_to_keep + ''')
|
||||
local v=$1
|
||||
for e in "${keys[@]}"; do [[ "$e" == "$v" ]] && return 0; done
|
||||
}
|
||||
while read -r line; do
|
||||
key=$(echo $line | /usr/bin/cut -d '=' -f 1)
|
||||
ignore $key || unset $key
|
||||
done < <(env)
|
||||
'''
|
||||
|
||||
def system_login_script_bash():
|
||||
return r'''
|
||||
[ -r /etc/profile ] && source /etc/profile
|
||||
# fake behavior of /etc/profile as if BASH was set. It isn't for non-interactive shell
|
||||
export PS1='\h:\W \u\$ '
|
||||
[ -r /etc/bashrc ] && source /etc/bashrc
|
||||
'''
|
||||
|
||||
def login_script_bash():
|
||||
return r'''
|
||||
if [ -f $HOME/.bash_profile ]; then
|
||||
source $HOME/.bash_profile
|
||||
elif [ -f $HOME/.bash_login ]; then
|
||||
source $HOME/.bash_login ]
|
||||
elif [ -f $HOME/.profile ]; then
|
||||
source $HOME/.profile
|
||||
fi
|
||||
'''
|
||||
|
||||
def system_login_script_zsh():
|
||||
return '[ -r /etc/profile ] && source /etc/profile\n'
|
||||
|
||||
def login_script_zsh():
|
||||
return r'''
|
||||
[ -r $HOME/.zprofile ] && source $HOME/.zprofile
|
||||
[ -r $HOME/.zshrc ] && source $HOME/.zshrc
|
||||
[ -r $HOME/.zlogin ] && source $HOME/.zlogin
|
||||
'''
|
||||
|
||||
def environment_script():
|
||||
return ''.join(['export ' + quote_shell(key + '=' + os.environ[key]) + '\n'
|
||||
for key in os.environ])
|
||||
|
||||
def zsh_setup(shell):
|
||||
return (shell,
|
||||
system_login_script_zsh,
|
||||
login_script_zsh,
|
||||
shell + ' -c',
|
||||
shell + ' -d -f')
|
||||
|
||||
def bash_setup(shell):
|
||||
bash = shell if shell is not None and shell.endswith('/bash') else '/bin/bash'
|
||||
return (bash,
|
||||
system_login_script_bash,
|
||||
login_script_bash,
|
||||
bash + ' -c',
|
||||
bash + ' --noprofile -l')
|
||||
|
||||
def main():
|
||||
# create temporary file to be sourced into bash that deletes itself
|
||||
with NamedTemporaryFile(mode='wt', delete=False) as shell_script:
|
||||
shell = os.environ.get('SHELL')
|
||||
shell, system_login_script, login_script, non_interactive_shell, interactive_shell = (
|
||||
zsh_setup(shell) if shell is not None and shell.endswith('/zsh')
|
||||
else bash_setup(shell))
|
||||
|
||||
commands = ('#!' + shell + '\n' +
|
||||
'rm ' + quote_shell(shell_script.name) + '\n' +
|
||||
clean_environment_script() +
|
||||
system_login_script() + # /etc/(z)profile by default resets the path, so do first
|
||||
environment_script() +
|
||||
login_script() +
|
||||
'cd ' + quote_shell(os.getcwd()) + '\n' +
|
||||
('exec ' + non_interactive_shell + ' ' +
|
||||
quote_shell(' '.join([quote_shell(arg) for arg in sys.argv[1:]])) + '\n'
|
||||
if len(sys.argv) > 1 else 'exec ' + interactive_shell + '\n')
|
||||
)
|
||||
shell_script.write(commands)
|
||||
shell_script.flush()
|
||||
os.chmod(shell_script.name, stat.S_IXUSR | stat.S_IRUSR | stat.S_IWUSR)
|
||||
# TODO /usr/bin/open doesn't work with notarized app in macOS 13,
|
||||
# use osascript instead (QTCREATORBUG-28683).
|
||||
# This has the disadvantage that the Terminal windows doesn't close
|
||||
# automatically anymore.
|
||||
# subprocess.call(['/usr/bin/open', '-a', 'Terminal', shell_script.name])
|
||||
subprocess.call(['/usr/bin/osascript', '-e', 'tell app "Terminal" to activate'])
|
||||
subprocess.call(['/usr/bin/osascript', '-e', 'tell app "Terminal" to do script "' + shell_script.name + '"'])
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -204,5 +204,5 @@ case $value$:
|
||||
default:
|
||||
break;
|
||||
}</snippet>
|
||||
<snippet group="C++" trigger="Q_PROPERTY" id="cpp_q_property" complement="(type name READ name WRITE setName NOTIFY nameChanged)">Q_PROPERTY($type$ $name$ READ $name$ WRITE set$name:c$ NOTIFY $name$Changed)</snippet>
|
||||
<snippet group="C++" trigger="Q_PROPERTY" id="cpp_q_property" complement="(type name READ name WRITE setName NOTIFY nameChanged FINAL)">Q_PROPERTY($type$ $name$ READ $name$ WRITE set$name:c$ NOTIFY $name$Changed FINAL)</snippet>
|
||||
</snippets>
|
||||
|
||||
@@ -10,5 +10,3 @@ QList<QDesignerCustomWidgetInterface*> @COLLECTION_PLUGIN_CLASS@::customWidgets(
|
||||
{
|
||||
return m_widgets;
|
||||
}
|
||||
|
||||
@COLLECTION_PLUGIN_EXPORT@
|
||||
|
||||
@@ -15,9 +15,9 @@ class @COLLECTION_PLUGIN_CLASS@ : public QObject, public QDesignerCustomWidgetCo
|
||||
@COLLECTION_PLUGIN_METADATA@
|
||||
|
||||
public:
|
||||
explicit @COLLECTION_PLUGIN_CLASS@(QObject *parent = 0);
|
||||
explicit @COLLECTION_PLUGIN_CLASS@(QObject *parent = nullptr);
|
||||
|
||||
virtual QList<QDesignerCustomWidgetInterface*> customWidgets() const;
|
||||
QList<QDesignerCustomWidgetInterface*> customWidgets() const override;
|
||||
|
||||
private:
|
||||
QList<QDesignerCustomWidgetInterface*> m_widgets;
|
||||
|
||||
@@ -7,11 +7,7 @@ SOURCES =@PLUGIN_SOURCES@
|
||||
RESOURCES = @PLUGIN_RESOURCES@
|
||||
LIBS += -L. @WIDGET_LIBS@
|
||||
|
||||
greaterThan(QT_MAJOR_VERSION, 4) {
|
||||
QT += designer
|
||||
} else {
|
||||
CONFIG += designer
|
||||
}
|
||||
QT += designer
|
||||
|
||||
target.path = $$[QT_INSTALL_PLUGINS]/designer
|
||||
INSTALLS += target
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
@PLUGIN_CLASS@::@PLUGIN_CLASS@(QObject *parent)
|
||||
: QObject(parent)
|
||||
{
|
||||
m_initialized = false;
|
||||
}
|
||||
|
||||
void @PLUGIN_CLASS@::initialize(QDesignerFormEditorInterface * /* core */)
|
||||
@@ -61,11 +60,10 @@ bool @PLUGIN_CLASS@::isContainer() const
|
||||
|
||||
QString @PLUGIN_CLASS@::domXml() const
|
||||
{
|
||||
return QLatin1String("@WIDGET_DOMXML@");
|
||||
return QLatin1String(@WIDGET_DOMXML@);
|
||||
}
|
||||
|
||||
QString @PLUGIN_CLASS@::includeFile() const
|
||||
{
|
||||
return QLatin1String("@WIDGET_HEADER@");
|
||||
}
|
||||
@SINGLE_PLUGIN_EXPORT@
|
||||
|
||||
@@ -14,22 +14,22 @@ class @PLUGIN_CLASS@ : public QObject, public QDesignerCustomWidgetInterface
|
||||
@SINGLE_PLUGIN_METADATA@
|
||||
|
||||
public:
|
||||
@PLUGIN_CLASS@(QObject *parent = 0);
|
||||
explicit @PLUGIN_CLASS@(QObject *parent = nullptr);
|
||||
|
||||
bool isContainer() const;
|
||||
bool isInitialized() const;
|
||||
QIcon icon() const;
|
||||
QString domXml() const;
|
||||
QString group() const;
|
||||
QString includeFile() const;
|
||||
QString name() const;
|
||||
QString toolTip() const;
|
||||
QString whatsThis() const;
|
||||
QWidget *createWidget(QWidget *parent);
|
||||
void initialize(QDesignerFormEditorInterface *core);
|
||||
bool isContainer() const override;
|
||||
bool isInitialized() const override;
|
||||
QIcon icon() const override;
|
||||
QString domXml() const override;
|
||||
QString group() const override;
|
||||
QString includeFile() const override;
|
||||
QString name() const override;
|
||||
QString toolTip() const override;
|
||||
QString whatsThis() const override;
|
||||
QWidget *createWidget(QWidget *parent) override;
|
||||
void initialize(QDesignerFormEditorInterface *core) override;
|
||||
|
||||
private:
|
||||
bool m_initialized;
|
||||
bool m_initialized = false;
|
||||
};
|
||||
|
||||
@if ! '%{Cpp:PragmaOnce}'
|
||||
|
||||
@@ -12,7 +12,7 @@ class @WIDGET_CLASS@ : public @WIDGET_BASE_CLASS@
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
@WIDGET_CLASS@(QWidget *parent = 0);
|
||||
explicit @WIDGET_CLASS@(QWidget *parent = nullptr);
|
||||
};
|
||||
|
||||
@if ! '%{Cpp:PragmaOnce}'
|
||||
|
||||
@@ -70,6 +70,35 @@ isEmpty(BOOST_INCLUDE_DIR): {
|
||||
SOURCES += \\
|
||||
%{MainCppName}
|
||||
@endif
|
||||
@if "%{TestFrameWork}" == "BoostTest_dyn"
|
||||
TEMPLATE = app
|
||||
CONFIG -= qt
|
||||
CONFIG -= app_bundle
|
||||
CONFIG += console
|
||||
|
||||
isEmpty(BOOST_INSTALL_DIR): BOOST_INSTALL_DIR=$$(BOOST_INSTALL_DIR)
|
||||
@if "%{BoostInstallDir}" != ""
|
||||
# set by Qt Creator wizard
|
||||
isEmpty(BOOST_INSTALL_DIR): BOOST_INSTALL_DIR="%{BoostInstallDir}"
|
||||
@endif
|
||||
!isEmpty(BOOST_INSTALL_DIR) {
|
||||
win32: INCLUDEPATH *= $${BOOST_INSTALL_DIR}
|
||||
else: INCLUDEPATH *= $${BOOST_INSTALL_DIR}/include
|
||||
}
|
||||
# Windows: adapt to name scheme, e.g. lib64-msvc-14.2
|
||||
!isEmpty(BOOST_INSTALL_DIR): LIBS *= -L$${BOOST_INSTALL_DIR}/lib
|
||||
# Windows: adapt to name scheme, e.g. boost_unit_test_framework-vc142-mt-gd-x64-1_80
|
||||
LIBS *= -lboost_unit_test_framework
|
||||
DEFINES *= BOOST_UNIT_TEST_FRAMEWORK_DYN_LINK
|
||||
|
||||
isEmpty(BOOST_INSTALL_DIR): {
|
||||
message("BOOST_INSTALL_DIR is not set, assuming Boost can be found automatically in your system")
|
||||
}
|
||||
|
||||
SOURCES += \\
|
||||
%{MainCppName} \\
|
||||
%{TestCaseFileWithCppSuffix}
|
||||
@endif
|
||||
@if "%{TestFrameWork}" == "Catch2"
|
||||
TEMPLATE = app
|
||||
@if "%{Catch2NeedsQt}" == "true"
|
||||
|
||||