forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/10.0'
Change-Id: I8b36c1812b61dbe08fe3e7930f950e6b8e8a7079
This commit is contained in:
@@ -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
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -219,7 +219,7 @@
|
|||||||
Ubuntu or Debian?}
|
Ubuntu or Debian?}
|
||||||
|
|
||||||
\code
|
\code
|
||||||
sudo apt-get install libglib2.0-dev libSM-dev libxrender-dev libfontconfig1-dev libxext-dev
|
sudo apt-get install libglib2.0-dev libsm-dev libxrender-dev libfontconfig1-dev libxext-dev
|
||||||
\endcode
|
\endcode
|
||||||
|
|
||||||
If you use QtOpenGL, you also need:
|
If you use QtOpenGL, you also need:
|
||||||
|
|||||||
@@ -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
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -30,7 +30,7 @@
|
|||||||
\li g++
|
\li g++
|
||||||
\li make
|
\li make
|
||||||
\li libglib2.0-dev
|
\li libglib2.0-dev
|
||||||
\li libSM-dev
|
\li libsm-dev
|
||||||
\li libxrender-dev
|
\li libxrender-dev
|
||||||
\li libfontconfig1-dev
|
\li libfontconfig1-dev
|
||||||
\li libxext-dev
|
\li libxext-dev
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ Module {
|
|||||||
// TODO: Could something like this be incorporated into the vcs module?
|
// TODO: Could something like this be incorporated into the vcs module?
|
||||||
// Currently, the default repo dir is project.sourceDirectory, which
|
// Currently, the default repo dir is project.sourceDirectory, which
|
||||||
// does not make sense for Qt Creator.
|
// does not make sense for Qt Creator.
|
||||||
var dir = sourceDirectory;
|
var dir = product.sourceDirectory;
|
||||||
while (true) {
|
while (true) {
|
||||||
if (File.exists(FileInfo.joinPaths(dir, ".git")))
|
if (File.exists(FileInfo.joinPaths(dir, ".git")))
|
||||||
return dir;
|
return dir;
|
||||||
|
|||||||
@@ -273,13 +273,20 @@ def deploy_elfutils(qtc_install_dir, chrpath_bin, args):
|
|||||||
if common.is_mac_platform():
|
if common.is_mac_platform():
|
||||||
return
|
return
|
||||||
|
|
||||||
|
libs = ['elf', 'dw']
|
||||||
|
version = '1'
|
||||||
|
|
||||||
def lib_name(name, version):
|
def lib_name(name, version):
|
||||||
return ('lib' + name + '.so.' + version if common.is_linux_platform()
|
return ('lib' + name + '.so.' + version if common.is_linux_platform()
|
||||||
else name + '.dll')
|
else name + '.dll')
|
||||||
|
|
||||||
version = '1'
|
def find_elfutils_lib_path(path):
|
||||||
libs = ['elf', 'dw']
|
for root, _, files in os.walk(path):
|
||||||
elfutils_lib_path = os.path.join(args.elfutils_path, 'lib')
|
if lib_name('elf', version) in files:
|
||||||
|
return root
|
||||||
|
return path
|
||||||
|
|
||||||
|
elfutils_lib_path = find_elfutils_lib_path(os.path.join(args.elfutils_path, 'lib'))
|
||||||
if common.is_linux_platform():
|
if common.is_linux_platform():
|
||||||
install_path = os.path.join(qtc_install_dir, 'lib', 'elfutils')
|
install_path = os.path.join(qtc_install_dir, 'lib', 'elfutils')
|
||||||
backends_install_path = install_path
|
backends_install_path = install_path
|
||||||
|
|||||||
@@ -0,0 +1,33 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.16)
|
||||||
|
|
||||||
|
project(%{ProjectName} VERSION 0.1 LANGUAGES CXX)
|
||||||
|
|
||||||
|
set(CMAKE_AUTOMOC ON)
|
||||||
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
|
find_package(Qt6 6.2 COMPONENTS Quick REQUIRED)
|
||||||
|
|
||||||
|
qt_add_executable(%{TargetName}
|
||||||
|
main.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
qt_add_qml_module(%{TargetName}
|
||||||
|
URI %{ProjectName}
|
||||||
|
VERSION 1.0
|
||||||
|
QML_FILES main.qml %{AdditionalQmlFiles}
|
||||||
|
)
|
||||||
|
|
||||||
|
set_target_properties(%{TargetName} PROPERTIES
|
||||||
|
MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com
|
||||||
|
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
|
||||||
|
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
|
||||||
|
MACOSX_BUNDLE TRUE
|
||||||
|
WIN32_EXECUTABLE TRUE
|
||||||
|
)
|
||||||
|
|
||||||
|
target_link_libraries(%{TargetName}
|
||||||
|
PRIVATE Qt6::Quick)
|
||||||
|
|
||||||
|
install(TARGETS %{TargetName}
|
||||||
|
BUNDLE DESTINATION .
|
||||||
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||||
@@ -0,0 +1,79 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.14)
|
||||||
|
|
||||||
|
project(%{ProjectName} VERSION 0.1 LANGUAGES CXX)
|
||||||
|
|
||||||
|
set(CMAKE_AUTOUIC ON)
|
||||||
|
set(CMAKE_AUTOMOC ON)
|
||||||
|
set(CMAKE_AUTORCC ON)
|
||||||
|
|
||||||
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
|
@if %{HasTranslation}
|
||||||
|
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core Quick LinguistTools)
|
||||||
|
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Quick LinguistTools)
|
||||||
|
|
||||||
|
set(TS_FILES %{TsFileName})
|
||||||
|
@else
|
||||||
|
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core Quick)
|
||||||
|
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Quick)
|
||||||
|
@endif
|
||||||
|
|
||||||
|
set(PROJECT_SOURCES
|
||||||
|
%{MainCppFileName}
|
||||||
|
qml.qrc
|
||||||
|
@if %{HasTranslation}
|
||||||
|
${TS_FILES}
|
||||||
|
@endif
|
||||||
|
)
|
||||||
|
|
||||||
|
if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
|
||||||
|
qt_add_executable(%{ProjectName}
|
||||||
|
MANUAL_FINALIZATION
|
||||||
|
${PROJECT_SOURCES}
|
||||||
|
)
|
||||||
|
# Define target properties for Android with Qt 6 as:
|
||||||
|
# set_property(TARGET %{ProjectName} APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR
|
||||||
|
# ${CMAKE_CURRENT_SOURCE_DIR}/android)
|
||||||
|
# For more information, see https://doc.qt.io/qt-6/qt-add-executable.html#target-creation
|
||||||
|
@if %{HasTranslation}
|
||||||
|
|
||||||
|
qt_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})
|
||||||
|
@endif
|
||||||
|
else()
|
||||||
|
if(ANDROID)
|
||||||
|
add_library(%{ProjectName} SHARED
|
||||||
|
${PROJECT_SOURCES}
|
||||||
|
)
|
||||||
|
# Define properties for Android with Qt 5 after find_package() calls as:
|
||||||
|
# set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android")
|
||||||
|
else()
|
||||||
|
add_executable(%{ProjectName}
|
||||||
|
${PROJECT_SOURCES}
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
@if %{HasTranslation}
|
||||||
|
|
||||||
|
qt5_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})
|
||||||
|
@endif
|
||||||
|
endif()
|
||||||
|
|
||||||
|
target_link_libraries(%{ProjectName}
|
||||||
|
PRIVATE Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Quick)
|
||||||
|
|
||||||
|
set_target_properties(%{ProjectName} PROPERTIES
|
||||||
|
MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com
|
||||||
|
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
|
||||||
|
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
|
||||||
|
MACOSX_BUNDLE TRUE
|
||||||
|
WIN32_EXECUTABLE TRUE
|
||||||
|
)
|
||||||
|
|
||||||
|
install(TARGETS %{ProjectName}
|
||||||
|
BUNDLE DESTINATION .
|
||||||
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||||
|
|
||||||
|
if(QT_VERSION_MAJOR EQUAL 6)
|
||||||
|
qt_import_qml_plugins(%{ProjectName})
|
||||||
|
qt_finalize_executable(%{ProjectName})
|
||||||
|
endif()
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
@if "%{UseVirtualKeyboard}" == "true"
|
||||||
|
QT += quick virtualkeyboard
|
||||||
|
@else
|
||||||
|
QT += quick
|
||||||
|
@endif
|
||||||
|
@if !%{IsQt6}
|
||||||
|
|
||||||
|
# You can make your code fail to compile if it uses deprecated APIs.
|
||||||
|
# In order to do so, uncomment the following line.
|
||||||
|
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
|
||||||
|
@endif
|
||||||
|
|
||||||
|
SOURCES += \\
|
||||||
|
%{MainCppFileName}
|
||||||
|
|
||||||
|
@if %{IsQt6}
|
||||||
|
resources.files = main.qml %{AdditionalQmlFiles}
|
||||||
|
resources.prefix = /$${TARGET}
|
||||||
|
RESOURCES += resources
|
||||||
|
@else
|
||||||
|
RESOURCES += qml.qrc
|
||||||
|
@endif
|
||||||
|
@if %{HasTranslation}
|
||||||
|
|
||||||
|
TRANSLATIONS += \\
|
||||||
|
%{TsFileName}
|
||||||
|
CONFIG += lrelease
|
||||||
|
CONFIG += embed_translations
|
||||||
|
@endif
|
||||||
|
|
||||||
|
# Additional import path used to resolve QML modules in Qt Creator's code model
|
||||||
|
QML_IMPORT_PATH =
|
||||||
|
|
||||||
|
# Additional import path used to resolve QML modules just for Qt Quick Designer
|
||||||
|
QML_DESIGNER_IMPORT_PATH =
|
||||||
|
|
||||||
|
# Default rules for deployment.
|
||||||
|
qnx: target.path = /tmp/$${TARGET}/bin
|
||||||
|
else: unix:!android: target.path = /opt/$${TARGET}/bin
|
||||||
|
!isEmpty(target.path): INSTALLS += target
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
import qbs
|
||||||
|
|
||||||
|
CppApplication {
|
||||||
|
@if "%{UseVirtualKeyboard}" == "true"
|
||||||
|
Depends { name: "Qt"; submodules: ["quick", "virtualkeyboard"] }
|
||||||
|
@else
|
||||||
|
Depends { name: "Qt.quick" }
|
||||||
|
@endif
|
||||||
|
|
||||||
|
install: true
|
||||||
|
|
||||||
|
// Additional import path used to resolve QML modules in Qt Creator's code model
|
||||||
|
property pathList qmlImportPaths: []
|
||||||
|
@if !%{IsQt6}
|
||||||
|
|
||||||
|
cpp.defines: [
|
||||||
|
// You can make your code fail to compile if it uses deprecated APIs.
|
||||||
|
// In order to do so, uncomment the following line.
|
||||||
|
//"QT_DISABLE_DEPRECATED_BEFORE=0x060000" // disables all the APIs deprecated before Qt 6.0.0
|
||||||
|
]
|
||||||
|
@endif
|
||||||
|
|
||||||
|
files: [
|
||||||
|
"%{MainCppFileName}",
|
||||||
|
@if !%{IsQt6}
|
||||||
|
"main.qml",
|
||||||
|
"qml.qrc",
|
||||||
|
@endif
|
||||||
|
@if %{HasTranslation}
|
||||||
|
"%{TsFileName}",
|
||||||
|
@endif
|
||||||
|
]
|
||||||
|
@if %{HasTranslation}
|
||||||
|
|
||||||
|
Group {
|
||||||
|
fileTagsFilter: "qm"
|
||||||
|
Qt.core.resourcePrefix: "/i18n"
|
||||||
|
fileTags: "qt.core.resource_data"
|
||||||
|
}
|
||||||
|
@endif
|
||||||
|
@if %{IsQt6}
|
||||||
|
Group {
|
||||||
|
files: ["main.qml"%{AdditionalQmlFilesQbs}]
|
||||||
|
Qt.core.resourcePrefix: "%{ProjectName}/"
|
||||||
|
fileTags: ["qt.qml.qml", "qt.core.resource_data"]
|
||||||
|
}
|
||||||
|
@endif
|
||||||
|
}
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 228 B |
Binary file not shown.
|
After Width: | Height: | Size: 392 B |
@@ -0,0 +1,48 @@
|
|||||||
|
import QtQuick %{QtQuickVersion}
|
||||||
|
@if !%{IsQt6}
|
||||||
|
import QtQuick.Window %{QtQuickWindowVersion}
|
||||||
|
@endif
|
||||||
|
@if %{UseVirtualKeyboard}
|
||||||
|
import %{QtQuickVirtualKeyboardImport}
|
||||||
|
@endif
|
||||||
|
|
||||||
|
Window {
|
||||||
|
@if %{UseVirtualKeyboard}
|
||||||
|
id: window
|
||||||
|
@endif
|
||||||
|
width: 640
|
||||||
|
height: 480
|
||||||
|
visible: true
|
||||||
|
title: qsTr("Hello World")
|
||||||
|
@if %{UseVirtualKeyboard}
|
||||||
|
|
||||||
|
InputPanel {
|
||||||
|
id: inputPanel
|
||||||
|
z: 99
|
||||||
|
x: 0
|
||||||
|
y: window.height
|
||||||
|
width: window.width
|
||||||
|
|
||||||
|
states: State {
|
||||||
|
name: "visible"
|
||||||
|
when: inputPanel.active
|
||||||
|
PropertyChanges {
|
||||||
|
target: inputPanel
|
||||||
|
y: window.height - inputPanel.height
|
||||||
|
}
|
||||||
|
}
|
||||||
|
transitions: Transition {
|
||||||
|
from: ""
|
||||||
|
to: "visible"
|
||||||
|
reversible: true
|
||||||
|
ParallelAnimation {
|
||||||
|
NumberAnimation {
|
||||||
|
properties: "y"
|
||||||
|
duration: 250
|
||||||
|
easing.type: Easing.InOutQuad
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@endif
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
<RCC>
|
||||||
|
<qresource prefix="/">
|
||||||
|
<file>main.qml</file>
|
||||||
|
</qresource>
|
||||||
|
</RCC>
|
||||||
@@ -0,0 +1,230 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"supportedProjectTypes": [ "CMakeProjectManager.CMakeProject", "Qbs.QbsProject", "Qt4ProjectManager.Qt4Project" ],
|
||||||
|
"id": "V.QtQuickApplicationEmptyCompat",
|
||||||
|
"category": "D.ApplicationQt",
|
||||||
|
"trDescription": "Creates a Qt Quick application that contains an empty window.\n\nUse this \"compat\" version if you want to use other build systems than CMake or Qt versions lower than 6.",
|
||||||
|
"trDisplayName": "Qt Quick Application (compat)",
|
||||||
|
"trDisplayCategory": "Application (Qt)",
|
||||||
|
"icon": "icon.png",
|
||||||
|
"iconKind": "Themed",
|
||||||
|
"featuresRequired": [ "QtSupport.Wizards.FeatureQt.5.6" ],
|
||||||
|
"enabled": "%{JS: value('Plugins').indexOf('QmakeProjectManager') >= 0 || value('Plugins').indexOf('QbsProjectManager') >= 0 || value('Plugins').indexOf('CMakeProjectManager') >= 0}",
|
||||||
|
|
||||||
|
"options":
|
||||||
|
[
|
||||||
|
{ "key": "ProjectFile", "value": "%{JS: value('BuildSystem') === 'qmake' ? value('ProFile') : (value('BuildSystem') === 'cmake' ? value('CMakeFile') : value('QbsFile'))}" },
|
||||||
|
{ "key": "ProFile", "value": "%{JS: Util.fileName(value('ProjectDirectory') + '/' + value('ProjectName'), 'pro')}" },
|
||||||
|
{ "key": "QbsFile", "value": "%{JS: Util.fileName(value('ProjectDirectory') + '/' + value('ProjectName'), 'qbs')}" },
|
||||||
|
{ "key": "CMakeFile", "value": "%{ProjectDirectory}/CMakeLists.txt" },
|
||||||
|
{ "key": "IsQt6", "value": "%{JS: value('QtVersion').IsQt6}" },
|
||||||
|
{ "key": "MainCppFileName", "value": "%{JS: 'main.' + Util.preferredSuffix('text/x-c++src')}" },
|
||||||
|
{ "key": "QtQuickVersion", "value": "%{JS: value('QtVersion').QtQuickVersion}" },
|
||||||
|
{ "key": "QtQuickWindowVersion", "value": "%{JS: value('QtVersion').QtQuickWindowVersion}" },
|
||||||
|
{ "key": "QtQuickVirtualKeyboardImport", "value": "%{JS: value('QtVersion').QtQuickVirtualKeyboardImport}" },
|
||||||
|
{ "key": "QtQuickFeature", "value": "%{JS: (value('QtQuickVersion')=='') ? 'QtSupport.Wizards.FeatureQt.6.2' : 'QtSupport.Wizards.FeatureQtQuick.%{QtQuickVersion}'}" },
|
||||||
|
{ "key": "UseVirtualKeyboardByDefault", "value": "%{JS: value('Plugins').indexOf('Boot2Qt') >= 0 || value('Plugins').indexOf('Boot2QtQdb') >= 0}" },
|
||||||
|
{ "key": "HasTranslation", "value": "%{JS: value('TsFileName') !== ''}" },
|
||||||
|
{ "key": "SetQPAPhysicalSize", "value": "%{UseVirtualKeyboardByDefault}" },
|
||||||
|
{ "key": "AdditionalQmlFiles", "value": "" },
|
||||||
|
{ "key": "AdditionalQmlFilesQbs", "value": "" },
|
||||||
|
{ "key": "TargetName", "value": "%{JS: 'app' + value('ProjectName')}" }
|
||||||
|
],
|
||||||
|
|
||||||
|
"pages":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"trDisplayName": "Project Location",
|
||||||
|
"trShortTitle": "Location",
|
||||||
|
"typeId": "Project"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"trDisplayName": "Define Build System",
|
||||||
|
"trShortTitle": "Build System",
|
||||||
|
"typeId": "Fields",
|
||||||
|
"enabled": "%{JS: !value('IsSubproject')}",
|
||||||
|
"data":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "BuildSystem",
|
||||||
|
"trDisplayName": "Build system:",
|
||||||
|
"type": "ComboBox",
|
||||||
|
"persistenceKey": "BuildSystemType",
|
||||||
|
"data":
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"items":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"trKey": "qmake",
|
||||||
|
"value": "qmake",
|
||||||
|
"condition": "%{JS: value('Plugins').indexOf('QmakeProjectManager') >= 0}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"trKey": "CMake",
|
||||||
|
"value": "cmake",
|
||||||
|
"condition": "%{JS: value('Plugins').indexOf('CMakeProjectManager') >= 0}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"trKey": "Qbs",
|
||||||
|
"value": "qbs",
|
||||||
|
"condition": "%{JS: value('Plugins').indexOf('QbsProjectManager') >= 0}"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"trDisplayName": "Define Project Details",
|
||||||
|
"trShortTitle": "Details",
|
||||||
|
"typeId": "Fields",
|
||||||
|
"data":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "QtVersion",
|
||||||
|
"trDisplayName": "Minimum required Qt version:",
|
||||||
|
"type": "ComboBox",
|
||||||
|
"persistenceKey": "QtQuick.minimumQtVersion",
|
||||||
|
"data":
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"items":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"trKey": "Qt 6.2",
|
||||||
|
"value":
|
||||||
|
{
|
||||||
|
"QtQuickVersion": "",
|
||||||
|
"QtQuickWindowVersion": "",
|
||||||
|
"QtQuickVirtualKeyboardImport": "QtQuick.VirtualKeyboard",
|
||||||
|
"IsQt6": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"trKey": "Qt 5.15",
|
||||||
|
"value":
|
||||||
|
{
|
||||||
|
"QtQuickVersion": "2.15",
|
||||||
|
"QtQuickWindowVersion": "2.15",
|
||||||
|
"QtQuickVirtualKeyboardImport": "QtQuick.VirtualKeyboard 2.15",
|
||||||
|
"IsQt6": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"trKey": "Qt 5.14",
|
||||||
|
"value":
|
||||||
|
{
|
||||||
|
"QtQuickVersion": "2.14",
|
||||||
|
"QtQuickWindowVersion": "2.14",
|
||||||
|
"QtQuickVirtualKeyboardImport": "QtQuick.VirtualKeyboard 2.14",
|
||||||
|
"IsQt6": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"trKey": "Qt 5.13",
|
||||||
|
"value":
|
||||||
|
{
|
||||||
|
"QtQuickVersion": "2.13",
|
||||||
|
"QtQuickWindowVersion": "2.13",
|
||||||
|
"QtQuickVirtualKeyboardImport": "QtQuick.VirtualKeyboard 2.4",
|
||||||
|
"IsQt6": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"trKey": "Qt 5.12",
|
||||||
|
"value":
|
||||||
|
{
|
||||||
|
"QtQuickVersion": "2.12",
|
||||||
|
"QtQuickWindowVersion": "2.12",
|
||||||
|
"QtQuickVirtualKeyboardImport": "QtQuick.VirtualKeyboard 2.4",
|
||||||
|
"IsQt6": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "UseVirtualKeyboard",
|
||||||
|
"trDisplayName": "Use Qt Virtual Keyboard",
|
||||||
|
"type": "CheckBox",
|
||||||
|
"persistenceKey": "QtQuick.UseVirtualKeyboard.%{UseVirtualKeyboardByDefault}",
|
||||||
|
"data":
|
||||||
|
{
|
||||||
|
"checked": "%{UseVirtualKeyboardByDefault}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"trDisplayName": "Translation File",
|
||||||
|
"trShortTitle": "Translation",
|
||||||
|
"typeId": "QtTranslation"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"trDisplayName": "Kit Selection",
|
||||||
|
"trShortTitle": "Kits",
|
||||||
|
"typeId": "Kits",
|
||||||
|
"enabled": "%{JS: !value('IsSubproject')}",
|
||||||
|
"data": {
|
||||||
|
"projectFilePath": "%{ProjectFile}",
|
||||||
|
"requiredFeatures": [ "QtSupport.Wizards.FeatureQt", "%{QtQuickFeature}" ]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"trDisplayName": "Project Management",
|
||||||
|
"trShortTitle": "Summary",
|
||||||
|
"typeId": "Summary"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"generators":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"typeId": "File",
|
||||||
|
"data":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"source": "../app.pro",
|
||||||
|
"target": "%{ProFile}",
|
||||||
|
"openAsProject": true,
|
||||||
|
"condition": "%{JS: value('BuildSystem') === 'qmake'}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "%{JS: value('QtVersion').IsQt6 ? '../CMakeLists.6.x.txt' : '../CMakeLists.txt'}",
|
||||||
|
"target": "CMakeLists.txt",
|
||||||
|
"openAsProject": true,
|
||||||
|
"condition": "%{JS: value('BuildSystem') === 'cmake'}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "../app.qbs",
|
||||||
|
"target": "%{QbsFile}",
|
||||||
|
"openAsProject": true,
|
||||||
|
"condition": "%{JS: value('BuildSystem') === 'qbs'}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "../main.cpp",
|
||||||
|
"target": "%{MainCppFileName}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "main.qml.tpl",
|
||||||
|
"target": "main.qml",
|
||||||
|
"openInEditor": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "qml.qrc",
|
||||||
|
"condition": "%{JS: !value('QtVersion').IsQt6}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "../../translation.ts",
|
||||||
|
"target": "%{TsFileName}",
|
||||||
|
"condition": "%{HasTranslation}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "../../git.ignore",
|
||||||
|
"target": ".gitignore",
|
||||||
|
"condition": "%{JS: !value('IsSubproject') && value('VersionControl') === 'G.Git'}"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
%{Cpp:LicenseTemplate}\
|
||||||
|
%{JS: QtSupport.qtIncludes([], ["QtGui/QGuiApplication", "QtQml/QQmlApplicationEngine"])}
|
||||||
|
@if %{HasTranslation}
|
||||||
|
#include <QLocale>
|
||||||
|
#include <QTranslator>
|
||||||
|
@endif
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
@if %{UseVirtualKeyboard}
|
||||||
|
qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));
|
||||||
|
|
||||||
|
@endif
|
||||||
|
@if !%{IsQt6}
|
||||||
|
@if %{SetQPAPhysicalSize}
|
||||||
|
if (qEnvironmentVariableIsEmpty("QTGLESSTREAM_DISPLAY")) {
|
||||||
|
qputenv("QT_QPA_EGLFS_PHYSICAL_WIDTH", QByteArray("213"));
|
||||||
|
qputenv("QT_QPA_EGLFS_PHYSICAL_HEIGHT", QByteArray("120"));
|
||||||
|
|
||||||
|
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
|
||||||
|
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
@else
|
||||||
|
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
|
||||||
|
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
|
||||||
|
#endif
|
||||||
|
@endif
|
||||||
|
@endif
|
||||||
|
QGuiApplication app(argc, argv);
|
||||||
|
@if %{HasTranslation}
|
||||||
|
|
||||||
|
QTranslator translator;
|
||||||
|
const QStringList uiLanguages = QLocale::system().uiLanguages();
|
||||||
|
for (const QString &locale : uiLanguages) {
|
||||||
|
const QString baseName = "%{JS: value('ProjectName') + '_'}" + QLocale(locale).name();
|
||||||
|
if (translator.load(":/i18n/" + baseName)) {
|
||||||
|
app.installTranslator(&translator);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@endif
|
||||||
|
|
||||||
|
QQmlApplicationEngine engine;
|
||||||
|
@if %{IsQt6}
|
||||||
|
const QUrl url(u"qrc:/%{JS: value('ProjectName')}/main.qml"_qs);
|
||||||
|
@else
|
||||||
|
const QUrl url(QStringLiteral("qrc:/main.qml"));
|
||||||
|
@endif
|
||||||
|
QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
|
||||||
|
&app, [url](QObject *obj, const QUrl &objUrl) {
|
||||||
|
if (!obj && url == objUrl)
|
||||||
|
QCoreApplication::exit(-1);
|
||||||
|
}, Qt::QueuedConnection);
|
||||||
|
engine.load(url);
|
||||||
|
|
||||||
|
return app.exec();
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
; This file can be edited to change the style of the application
|
||||||
|
; Read "Qt Quick Controls 2 Configuration File" for details:
|
||||||
|
; https://doc.qt.io/qt/qtquickcontrols2-configuration.html
|
||||||
|
@if '%{QtQuickControlsStyle}' != 'Default'
|
||||||
|
|
||||||
|
[Controls]
|
||||||
|
Style=%{QtQuickControlsStyle}
|
||||||
|
@if '%{QtQuickControlsStyle}' == 'Universal'
|
||||||
|
|
||||||
|
[Universal]
|
||||||
|
Theme=%{QtQuickControlsStyleTheme}
|
||||||
|
;Accent=Steel
|
||||||
|
;Foreground=Brown
|
||||||
|
;Background=Steel
|
||||||
|
@endif
|
||||||
|
@if '%{QtQuickControlsStyle}' == 'Material'
|
||||||
|
|
||||||
|
[Material]
|
||||||
|
Theme=%{QtQuickControlsStyleTheme}
|
||||||
|
;Accent=BlueGrey
|
||||||
|
;Primary=BlueGray
|
||||||
|
;Foreground=Brown
|
||||||
|
;Background=Grey
|
||||||
|
@endif
|
||||||
|
@endif
|
||||||
@@ -40138,11 +40138,11 @@ fails because Clang does not understand the target architecture.</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Buffered output</source>
|
<source>Buffered output</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Ausgabe puffern</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Enabling improves output performance, but results in delayed output.</source>
|
<source>Enabling improves output performance, but results in delayed output.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Aktivieren dieser Option verbessert die Leistung der Anwendung, resultiert aber in verzögerter Ausgabe.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Script:</source>
|
<source>Script:</source>
|
||||||
@@ -40162,15 +40162,15 @@ fails because Clang does not understand the target architecture.</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Executable is empty.</source>
|
<source>Executable is empty.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Ausführbare Datei ist leer.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>%1 does not exist.</source>
|
<source>%1 does not exist.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>%1 existiert nicht.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>%1 is not an executable file.</source>
|
<source>%1 is not an executable file.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>%1 ist keine ausführbare Datei.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Add</source>
|
<source>&Add</source>
|
||||||
@@ -40186,11 +40186,11 @@ fails because Clang does not understand the target architecture.</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Clean Up</source>
|
<source>&Clean Up</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>&Bereiningen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Remove all Python interpreters without a valid executable.</source>
|
<source>Remove all Python interpreters without a valid executable.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Entfernt alle Python-Interpreter ohne gültige ausführbare Datei.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Interpreters</source>
|
<source>Interpreters</source>
|
||||||
@@ -40202,43 +40202,43 @@ fails because Clang does not understand the target architecture.</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Plugins:</source>
|
<source>Plugins:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Plugins:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Use Python Language Server</source>
|
<source>Use Python Language Server</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Python Language Server benutzen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>For a complete list of available options, consult the <a href="https://github.com/python-lsp/python-lsp-server/blob/develop/CONFIGURATION.md">Python LSP Server configuration documentation</a>.</source>
|
<source>For a complete list of available options, consult the <a href="https://github.com/python-lsp/python-lsp-server/blob/develop/CONFIGURATION.md">Python LSP Server configuration documentation</a>.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Für eine vollständige Liste der verfügbaren Optionen siehe auch die <a href="https://github.com/python-lsp/python-lsp-server/blob/develop/CONFIGURATION.md">Dokumentation zur Python LSP-Server-Konfiguration</a>.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Advanced</source>
|
<source>Advanced</source>
|
||||||
<translation type="unfinished">Erweitert</translation>
|
<translation>Erweitert</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Language Server Configuration</source>
|
<source>Language Server Configuration</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Language Server-Konfiguration</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source> (Windowed)</source>
|
<source> (Windowed)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation> (mit Fenster)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Removing Python</source>
|
<source>Removing Python</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Entferne Python</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Python:</source>
|
<source>Python:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Python:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>%1 installation missing for %2 (%3)</source>
|
<source>%1 installation missing for %2 (%3)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>%1-Installation fehlt für %2 (%3)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Install %1 for %2 using pip package installer.</source>
|
<source>Install %1 for %2 using pip package installer.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Installiere %1 für %2 mit dem pip Paket-Installationsprogramm.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Install</source>
|
<source>Install</source>
|
||||||
@@ -40246,95 +40246,99 @@ fails because Clang does not understand the target architecture.</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Install %1</source>
|
<source>Install %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translatorcomment>This is the header of a progress bar</translatorcomment>
|
||||||
|
<translation>Installiere %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Running "%1" to install %2.</source>
|
<source>Running "%1" to install %2.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Führe "%1" aus, um %2 zu installieren.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>The %1 installation was canceled by %2.</source>
|
<source>The %1 installation was canceled by %2.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translatorcomment>%2 can be "user" or "time out" which doesn't work in non-english... so working around that.</translatorcomment>
|
||||||
|
<translation>Die Installation von %1 wurde abgebrochen: %2.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>user</source>
|
<source>user</source>
|
||||||
<translation type="unfinished"></translation>
|
<translatorcomment>Used as %2 in "Die Installation von %1 wurde abgebrochen: %2."</translatorcomment>
|
||||||
|
<translation>Der Nutzer hat den Prozess abgebrochen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>time out</source>
|
<source>time out</source>
|
||||||
<translation type="unfinished"></translation>
|
<translatorcomment>Used as %2 in "Die Installation von %1 wurde abgebrochen: %2."</translatorcomment>
|
||||||
|
<translation>Zeitüberschreitung</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Installing the %1 failed with exit code %2</source>
|
<source>Installing the %1 failed with exit code %2</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Installation von %1 ist mit dem Rückgabewert %2 fehlgeschlagen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Run PySide6 project tool</source>
|
<source>Run PySide6 project tool</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>PySide6 Projektwerkzeug ausführen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>PySide project tool:</source>
|
<source>PySide project tool:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>PySide Projektwerkzeug:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Enter location of PySide project tool.</source>
|
<source>Enter location of PySide project tool.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Geben Sie den Ort des PySide Projektwerkzeugs ein.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>General</source>
|
<source>General</source>
|
||||||
<translation type="unfinished">Allgemein</translation>
|
<translation>Allgemein</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>REPL</source>
|
<source>REPL</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>REPL</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Open interactive Python.</source>
|
<source>Open interactive Python.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Interaktives Python öffnen.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>REPL Import File</source>
|
<source>REPL Import File</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>REPL mit Datei-Import</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Open interactive Python and import file.</source>
|
<source>Open interactive Python and import file.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Interaktives Python öffnen und Datei importieren.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>REPL Import *</source>
|
<source>REPL Import *</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>REPL mit *-Import</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Open interactive Python and import * from file.</source>
|
<source>Open interactive Python and import * from file.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Interaktives Python öffnen und alles (*) aus der Datei importieren.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Open interactive Python. Either importing nothing, importing the current file, or importing everything (*) from the current file.</source>
|
<source>Open interactive Python. Either importing nothing, importing the current file, or importing everything (*) from the current file.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Interaktives Python öffnen. Importiert entweder nichts, die aktuelle Datei oder alles (*) aus der aktuellen Datei.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>No Python Selected</source>
|
<source>No Python Selected</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Kein Python ausgewählt</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Manage Python Interpreters</source>
|
<source>Manage Python Interpreters</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Python-Interpreter verwalten</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Python Language Server (%1)</source>
|
<source>Python Language Server (%1)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Python Language Server (%1)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Install Python language server (PyLS) for %1 (%2). The language server provides Python specific completion and annotation.</source>
|
<source>Install Python language server (PyLS) for %1 (%2). The language server provides Python specific completion and annotation.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Python Language Server (PyLS) für %1 (%2) installieren. Der Language Server stellt Code-Vervollständigung und Annotationen für Python zur Verfügung.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Searching Python binaries...</source>
|
<source>Searching Python binaries...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Suche ausführbare Python-Dateien...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Found "%1" (%2)</source>
|
<source>Found "%1" (%2)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>"%1" (%2) gefunden</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
|||||||
@@ -246,7 +246,7 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>The directory %1 already contains a cbp file, which is recent enough. You can pass special arguments or change the used tool chain here and rerun CMake. Or simply finish the wizard directly.</source>
|
<source>The directory %1 already contains a cbp file, which is recent enough. You can pass special arguments or change the used tool chain here and rerun CMake. Or simply finish the wizard directly.</source>
|
||||||
<translation type="obsolete">目錄 %1 已存在一份足夠新的 cbp 檔。您可以在此傳送特殊引數,或是變更所使用的工具鍊,然後重新執行 CMake。或者您也可以直接結束此精靈。</translation>
|
<translation type="obsolete">目錄 %1 已存在一份足夠新的 cbp 檔。您可以在此傳送特殊引數,或是變更所使用的工具鏈,然後重新執行 CMake。或者您也可以直接結束此精靈。</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>The directory %1 does not contain a cbp file. Qt Creator needs to create this file by running CMake. Some projects require command line arguments to the initial CMake call.</source>
|
<source>The directory %1 does not contain a cbp file. Qt Creator needs to create this file by running CMake. Some projects require command line arguments to the initial CMake call.</source>
|
||||||
@@ -315,7 +315,7 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source><b>Unknown tool chain</b></source>
|
<source><b>Unknown tool chain</b></source>
|
||||||
<translation type="obsolete"><b>未知的工具鍊</b></translation>
|
<translation type="obsolete"><b>未知的工具鏈</b></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Please enter the directory in which you want to build your project. </source>
|
<source>Please enter the directory in which you want to build your project. </source>
|
||||||
@@ -3292,7 +3292,7 @@ at debugger startup.</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Tool chain:</source>
|
<source>&Tool chain:</source>
|
||||||
<translation type="obsolete">工具鍊(&T):</translation>
|
<translation type="obsolete">工具鏈(&T):</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Break at '&main':</source>
|
<source>Break at '&main':</source>
|
||||||
@@ -3304,7 +3304,7 @@ at debugger startup.</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Tool &chain:</source>
|
<source>Tool &chain:</source>
|
||||||
<translation type="obsolete">工具鍊(&C):</translation>
|
<translation type="obsolete">工具鏈(&C):</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>&Host and port:</source>
|
<source>&Host and port:</source>
|
||||||
@@ -4480,11 +4480,11 @@ Reason: %3</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Tool chain:</source>
|
<source>Tool chain:</source>
|
||||||
<translation type="obsolete">工具鍊:</translation>
|
<translation type="obsolete">工具鏈:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source><Invalid tool chain></source>
|
<source><Invalid tool chain></source>
|
||||||
<translation type="obsolete"><無效的工具鍊></translation>
|
<translation type="obsolete"><無效的工具鏈></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Generic Manager</source>
|
<source>Generic Manager</source>
|
||||||
@@ -7385,11 +7385,11 @@ Preselects a desktop Qt for building the application if available.</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>using Qt version: <b>%1</b><br>with tool chain <b>%2</b><br>building in <b>%3</b></source>
|
<source>using Qt version: <b>%1</b><br>with tool chain <b>%2</b><br>building in <b>%3</b></source>
|
||||||
<translation type="obsolete">使用 Qt 版本:<b>%1</b><br>和工具鍊 <b>%2</b><br>在目錄 <b>%3</b> 中建置</translation>
|
<translation type="obsolete">使用 Qt 版本:<b>%1</b><br>和工具鏈 <b>%2</b><br>在目錄 <b>%3</b> 中建置</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source><Invalid tool chain></source>
|
<source><Invalid tool chain></source>
|
||||||
<translation type="obsolete"><無效的工具鍊></translation>
|
<translation type="obsolete"><無效的工具鏈></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>General</source>
|
<source>General</source>
|
||||||
@@ -7426,7 +7426,7 @@ Preselects a desktop Qt for building the application if available.</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source><No tool chain selected></source>
|
<source><No tool chain selected></source>
|
||||||
<translation type="obsolete"><沒有選擇工具鍊></translation>
|
<translation type="obsolete"><沒有選擇工具鏈></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>An incompatible build exists in %1, which will be overwritten.</source>
|
<source>An incompatible build exists in %1, which will be overwritten.</source>
|
||||||
@@ -7443,7 +7443,7 @@ Preselects a desktop Qt for building the application if available.</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Tool chain:</source>
|
<source>Tool chain:</source>
|
||||||
<translation type="obsolete">工具鍊:</translation>
|
<translation type="obsolete">工具鏈:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Shadow build:</source>
|
<source>Shadow build:</source>
|
||||||
@@ -7592,11 +7592,11 @@ Preselects a desktop Qt for building the application if available.</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Qt Creator needs a build configuration set up to build. Configure a tool chain in Project mode.</source>
|
<source>Qt Creator needs a build configuration set up to build. Configure a tool chain in Project mode.</source>
|
||||||
<translation type="obsolete">Qt Creator 需要先設定建置組態才能執行建置。請在專案模式下組態工具鍊。</translation>
|
<translation type="obsolete">Qt Creator 需要先設定建置組態才能執行建置。請在專案模式下組態工具鏈。</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Qt Creator needs a tool chain set up to build. Configure a tool chain in Project mode.</source>
|
<source>Qt Creator needs a tool chain set up to build. Configure a tool chain in Project mode.</source>
|
||||||
<translation type="obsolete">Qt Creator 需要設置一個工具鍊才能建置。請在專案模式下組態工具鍊。</translation>
|
<translation type="obsolete">Qt Creator 需要設置一個工具鏈才能建置。請在專案模式下組態工具鏈。</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Cannot find Makefile. Check your build settings.</source>
|
<source>Cannot find Makefile. Check your build settings.</source>
|
||||||
@@ -7685,7 +7685,7 @@ Preselects a desktop Qt for building the application if available.</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source><b>Warning:</b> The tool chain suggests using another mkspec.</source>
|
<source><b>Warning:</b> The tool chain suggests using another mkspec.</source>
|
||||||
<translation type="obsolete"><b>警告:</b> 工具鍊建議使用另一個 mkspec。</translation>
|
<translation type="obsolete"><b>警告:</b> 工具鏈建議使用另一個 mkspec。</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Enable QML debugging:</source>
|
<source>Enable QML debugging:</source>
|
||||||
@@ -13411,7 +13411,7 @@ Requires <b>Qt 4.7.4</b> or newer.</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>ABI detection failed: Make sure to use a matching tool chain when building.</source>
|
<source>ABI detection failed: Make sure to use a matching tool chain when building.</source>
|
||||||
<translation type="obsolete">ABI 偵測失敗:請確認使用的工具鍊是否正確。</translation>
|
<translation type="obsolete">ABI 偵測失敗:請確認使用的工具鏈是否正確。</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>No qmlscene installed.</source>
|
<source>No qmlscene installed.</source>
|
||||||
@@ -13466,7 +13466,7 @@ Requires <b>Qt 4.7.4</b> or newer.</source>
|
|||||||
<message>
|
<message>
|
||||||
<source>Building helper(s) with toolchain '%1'...
|
<source>Building helper(s) with toolchain '%1'...
|
||||||
</source>
|
</source>
|
||||||
<translation>正在使用工具鍊 '%1' 建置小助手...
|
<translation>正在使用工具鏈 '%1' 建置小助手...
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
@@ -13769,11 +13769,11 @@ with a password, which you can enter below.</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>The Symbian tool chain does not handle spaces in the project path '%1'.</source>
|
<source>The Symbian tool chain does not handle spaces in the project path '%1'.</source>
|
||||||
<translation type="obsolete">Symbian 工具鍊不能處理在專案路徑 '%1' 中的空白。</translation>
|
<translation type="obsolete">Symbian 工具鏈不能處理在專案路徑 '%1' 中的空白。</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>The Symbian tool chain does not handle special characters in the project name '%1' well.</source>
|
<source>The Symbian tool chain does not handle special characters in the project name '%1' well.</source>
|
||||||
<translation type="obsolete">Symbian 的工具鍊不能處理專案名稱 '%1' 中的特殊字元。</translation>
|
<translation type="obsolete">Symbian 的工具鏈不能處理專案名稱 '%1' 中的特殊字元。</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
@@ -18977,15 +18977,15 @@ Do you want to retry?</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>The following tool chain was already configured:<br>&nbsp;%1<br>It was not configured again.</source>
|
<source>The following tool chain was already configured:<br>&nbsp;%1<br>It was not configured again.</source>
|
||||||
<translation type="obsolete">已組態以下工具鍊:<br>&nbsp;%1<br>因此未再次組態。</translation>
|
<translation type="obsolete">已組態以下工具鏈:<br>&nbsp;%1<br>因此未再次組態。</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Duplicate Tool Chains detected</source>
|
<source>Duplicate Tool Chains detected</source>
|
||||||
<translation type="obsolete">偵測到工具鍊有重複</translation>
|
<translation type="obsolete">偵測到工具鏈有重複</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>The following tool chains were already configured:<br>&nbsp;%1<br>They were not configured again.</source>
|
<source>The following tool chains were already configured:<br>&nbsp;%1<br>They were not configured again.</source>
|
||||||
<translation type="obsolete">已組態以下工具鍊:<br>&nbsp;%1<br>因此未再次組態。</translation>
|
<translation type="obsolete">已組態以下工具鏈:<br>&nbsp;%1<br>因此未再次組態。</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
@@ -20328,7 +20328,7 @@ if (a &&
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Tool chain:</source>
|
<source>Tool chain:</source>
|
||||||
<translation type="obsolete">工具鍊:</translation>
|
<translation type="obsolete">工具鏈:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Compiler:</source>
|
<source>Compiler:</source>
|
||||||
@@ -21416,7 +21416,7 @@ Do you want to retry?</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>No valid tool chain has been detected.<br>Define a correct tool chain in "Options > Tool Chains"</source>
|
<source>No valid tool chain has been detected.<br>Define a correct tool chain in "Options > Tool Chains"</source>
|
||||||
<translation type="obsolete">沒有偵測到有效的工具鍊。<br>請在「選項」─「工具鍊」中定義一個正確的工具鍊</translation>
|
<translation type="obsolete">沒有偵測到有效的工具鏈。<br>請在「選項」─「工具鏈」中定義一個正確的工具鏈</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Choose a build configuration:</source>
|
<source>Choose a build configuration:</source>
|
||||||
@@ -21424,7 +21424,7 @@ Do you want to retry?</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Choose a tool chain:</source>
|
<source>Choose a tool chain:</source>
|
||||||
<translation type="obsolete">選擇一個工具鍊:</translation>
|
<translation type="obsolete">選擇一個工具鏈:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Launching</source>
|
<source>Launching</source>
|
||||||
@@ -21562,11 +21562,11 @@ Do you want to retry?</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>No tool chain can produce code for this Qt version. Please define one or more tool chains.</source>
|
<source>No tool chain can produce code for this Qt version. Please define one or more tool chains.</source>
|
||||||
<translation type="obsolete">沒有這個 Qt 版本使用的工具鍊。請定義一個或更多工具鍊。</translation>
|
<translation type="obsolete">沒有這個 Qt 版本使用的工具鏈。請定義一個或更多工具鏈。</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Not all possible target environments can be supported due to missing tool chains.</source>
|
<source>Not all possible target environments can be supported due to missing tool chains.</source>
|
||||||
<translation type="obsolete">因為缺少工具鍊,所以不是所有的目標平台都能被支援。</translation>
|
<translation type="obsolete">因為缺少工具鏈,所以不是所有的目標平台都能被支援。</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>The following ABIs are currently not supported:<ul><li>%1</li></ul></source>
|
<source>The following ABIs are currently not supported:<ul><li>%1</li></ul></source>
|
||||||
@@ -26093,11 +26093,11 @@ should a repository require SSH-authentication (see documentation on SSH and the
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Tool chain:</source>
|
<source>Tool chain:</source>
|
||||||
<translation type="obsolete">工具鍊:</translation>
|
<translation type="obsolete">工具鏈:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source><Invalid tool chain></source>
|
<source><Invalid tool chain></source>
|
||||||
<translation type="obsolete"><無效的工具鍊></translation>
|
<translation type="obsolete"><無效的工具鏈></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Failed opening project '%1': Project file does not exist</source>
|
<source>Failed opening project '%1': Project file does not exist</source>
|
||||||
@@ -26174,7 +26174,7 @@ should a repository require SSH-authentication (see documentation on SSH and the
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source><b>Unknown tool chain</b></source>
|
<source><b>Unknown tool chain</b></source>
|
||||||
<translation type="obsolete"><b>未知的工具鍊</b></translation>
|
<translation type="obsolete"><b>未知的工具鏈</b></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
@@ -26650,7 +26650,7 @@ references to elements in other files, loops, etc.)</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source><p>The project <b>%1</b> is not yet configured.</p><p>Qt Creator uses the Qt version: <b>%2</b> and the tool chain: <b>%3</b> to parse the project. You can edit these in the <b><a href="edit">options.</a></b></p></source>
|
<source><p>The project <b>%1</b> is not yet configured.</p><p>Qt Creator uses the Qt version: <b>%2</b> and the tool chain: <b>%3</b> to parse the project. You can edit these in the <b><a href="edit">options.</a></b></p></source>
|
||||||
<translation type="obsolete"><p>專案 <b>%1</b>還沒組態。</p><p>Qt Creator 使用的 Qt 版本: <b>%2</b> 和工具鍊: <b>%3</b> 來解析專案。 你可以編輯這些 <b><a href="edit">選項.</a></b></p></translation>
|
<translation type="obsolete"><p>專案 <b>%1</b>還沒組態。</p><p>Qt Creator 使用的 Qt 版本: <b>%2</b> 和工具鏈: <b>%3</b> 來解析專案。 你可以編輯這些 <b><a href="edit">選項.</a></b></p></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Qt Version:</source>
|
<source>Qt Version:</source>
|
||||||
@@ -26658,7 +26658,7 @@ references to elements in other files, loops, etc.)</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Tool Chain:</source>
|
<source>Tool Chain:</source>
|
||||||
<translation type="obsolete">工具鍊:</translation>
|
<translation type="obsolete">工具鏈:</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
|||||||
@@ -377,8 +377,14 @@ QSet<QString> internalTargets(const FilePath &proFile)
|
|||||||
for (const CppEditor::ProjectPart::ConstPtr &projectPart : projectInfo->projectParts()) {
|
for (const CppEditor::ProjectPart::ConstPtr &projectPart : projectInfo->projectParts()) {
|
||||||
if (projectPart->buildTargetType != ProjectExplorer::BuildTargetType::Executable)
|
if (projectPart->buildTargetType != ProjectExplorer::BuildTargetType::Executable)
|
||||||
continue;
|
continue;
|
||||||
if (projectPart->projectFile == proFile.toString())
|
if (projectPart->projectFile != proFile.toString())
|
||||||
|
continue;
|
||||||
|
if (Utils::anyOf(projectPart->projectMacros, [](const ProjectExplorer::Macro ¯o){
|
||||||
|
return macro.type == ProjectExplorer::MacroType::Define &&
|
||||||
|
macro.key == "QUICK_TEST_SOURCE_DIR";
|
||||||
|
})) {
|
||||||
result.insert(projectPart->buildSystemTarget);
|
result.insert(projectPart->buildSystemTarget);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -203,4 +203,10 @@ void ClangFormatGlobalConfigWidget::apply()
|
|||||||
settings.write();
|
settings.write();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ClangFormatGlobalConfigWidget::finish()
|
||||||
|
{
|
||||||
|
m_codeStyle->currentPreferences()->setTemporarilyReadOnly(
|
||||||
|
!ClangFormatSettings::instance().overrideDefaultFile());
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace ClangFormat
|
} // namespace ClangFormat
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ public:
|
|||||||
QWidget *parent = nullptr);
|
QWidget *parent = nullptr);
|
||||||
~ClangFormatGlobalConfigWidget() override;
|
~ClangFormatGlobalConfigWidget() override;
|
||||||
void apply() override;
|
void apply() override;
|
||||||
|
void finish() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void initCheckBoxes();
|
void initCheckBoxes();
|
||||||
|
|||||||
@@ -215,9 +215,10 @@ bool getCurrentOverriddenSettings(const Utils::FilePath &filePath)
|
|||||||
const ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::projectForFile(
|
const ProjectExplorer::Project *project = ProjectExplorer::ProjectManager::projectForFile(
|
||||||
filePath);
|
filePath);
|
||||||
|
|
||||||
return getProjectUseGlobalSettings(project)
|
return getProjectUseGlobalSettings(project) ? !TextEditor::TextEditorSettings::codeStyle("Cpp")
|
||||||
? ClangFormatSettings::instance().overrideDefaultFile()
|
->currentPreferences()
|
||||||
: getProjectOverriddenSettings(project);
|
->isTemporarilyReadOnly()
|
||||||
|
: getProjectOverriddenSettings(project);
|
||||||
}
|
}
|
||||||
|
|
||||||
ClangFormatSettings::Mode getProjectIndentationOrFormattingSettings(
|
ClangFormatSettings::Mode getProjectIndentationOrFormattingSettings(
|
||||||
|
|||||||
@@ -55,7 +55,8 @@ private:
|
|||||||
|
|
||||||
connect(BuildManager::instance(), &BuildManager::buildQueueFinished,
|
connect(BuildManager::instance(), &BuildManager::buildQueueFinished,
|
||||||
this, &ProjectBuilder::onBuildFinished, Qt::QueuedConnection);
|
this, &ProjectBuilder::onBuildFinished, Qt::QueuedConnection);
|
||||||
BuildManager::buildProjectWithDependencies(target->project());
|
if (!BuildManager::isBuilding(target))
|
||||||
|
BuildManager::buildProjectWithDependencies(target->project());
|
||||||
}
|
}
|
||||||
|
|
||||||
void onBuildFinished(bool success)
|
void onBuildFinished(bool success)
|
||||||
|
|||||||
@@ -1470,7 +1470,7 @@ CMakeBuildConfiguration::CMakeBuildConfiguration(Target *target, Id id)
|
|||||||
// Android magic:
|
// Android magic:
|
||||||
if (DeviceTypeKitAspect::deviceTypeId(k) == Android::Constants::ANDROID_DEVICE_TYPE) {
|
if (DeviceTypeKitAspect::deviceTypeId(k) == Android::Constants::ANDROID_DEVICE_TYPE) {
|
||||||
buildSteps()->appendStep(Android::Constants::ANDROID_BUILD_APK_ID);
|
buildSteps()->appendStep(Android::Constants::ANDROID_BUILD_APK_ID);
|
||||||
const auto &bs = buildSteps()->steps().constLast();
|
const auto bs = buildSteps()->steps().constLast();
|
||||||
cmd.addArg("-DANDROID_PLATFORM:STRING="
|
cmd.addArg("-DANDROID_PLATFORM:STRING="
|
||||||
+ bs->data(Android::Constants::AndroidNdkPlatform).toString());
|
+ bs->data(Android::Constants::AndroidNdkPlatform).toString());
|
||||||
auto ndkLocation = bs->data(Android::Constants::NdkLocation).value<FilePath>();
|
auto ndkLocation = bs->data(Android::Constants::NdkLocation).value<FilePath>();
|
||||||
|
|||||||
@@ -411,7 +411,7 @@ RawProjectParts generateRawProjectParts(const PreprocessedData &input,
|
|||||||
continue;
|
continue;
|
||||||
const auto mimeTypes = Utils::mimeTypesForFileName(si.path);
|
const auto mimeTypes = Utils::mimeTypesForFileName(si.path);
|
||||||
for (const auto &mime : mimeTypes)
|
for (const auto &mime : mimeTypes)
|
||||||
if (mime.name() == headerMimeType)
|
if (mime.inherits(headerMimeType))
|
||||||
sources.push_back(sourceDir.absoluteFilePath(si.path));
|
sources.push_back(sourceDir.absoluteFilePath(si.path));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -397,7 +397,7 @@ void AppOutputPane::createNewOutputWindow(RunControl *rc)
|
|||||||
const Environment thisEnvironment = rc->environment();
|
const Environment thisEnvironment = rc->environment();
|
||||||
const auto tab = std::find_if(m_runControlTabs.begin(), m_runControlTabs.end(),
|
const auto tab = std::find_if(m_runControlTabs.begin(), m_runControlTabs.end(),
|
||||||
[&](const RunControlTab &tab) {
|
[&](const RunControlTab &tab) {
|
||||||
if (!tab.runControl || tab.runControl->isRunning())
|
if (!tab.runControl || tab.runControl->isRunning() || tab.runControl->isStarting())
|
||||||
return false;
|
return false;
|
||||||
return thisCommand == tab.runControl->commandLine()
|
return thisCommand == tab.runControl->commandLine()
|
||||||
&& thisWorkingDirectory == tab.runControl->workingDirectory()
|
&& thisWorkingDirectory == tab.runControl->workingDirectory()
|
||||||
|
|||||||
@@ -505,7 +505,6 @@ QmlJSEditorDocumentPrivate::QmlJSEditorDocumentPrivate(QmlJSEditorDocument *pare
|
|||||||
this, &QmlJSEditorDocumentPrivate::updateOutlineModel);
|
this, &QmlJSEditorDocumentPrivate::updateOutlineModel);
|
||||||
|
|
||||||
modelManager->updateSourceFiles(Utils::FilePaths({parent->filePath()}), false);
|
modelManager->updateSourceFiles(Utils::FilePaths({parent->filePath()}), false);
|
||||||
settingsChanged();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QmlJSEditorDocumentPrivate::~QmlJSEditorDocumentPrivate()
|
QmlJSEditorDocumentPrivate::~QmlJSEditorDocumentPrivate()
|
||||||
@@ -818,6 +817,8 @@ QmlJSEditorDocument::QmlJSEditorDocument(Utils::Id id)
|
|||||||
setId(id);
|
setId(id);
|
||||||
connect(this, &TextEditor::TextDocument::tabSettingsChanged,
|
connect(this, &TextEditor::TextDocument::tabSettingsChanged,
|
||||||
d, &Internal::QmlJSEditorDocumentPrivate::invalidateFormatterCache);
|
d, &Internal::QmlJSEditorDocumentPrivate::invalidateFormatterCache);
|
||||||
|
connect(this, &TextEditor::TextDocument::openFinishedSuccessfully,
|
||||||
|
d, &Internal::QmlJSEditorDocumentPrivate::settingsChanged);
|
||||||
setSyntaxHighlighter(new QmlJSHighlighter(document()));
|
setSyntaxHighlighter(new QmlJSHighlighter(document()));
|
||||||
setCodec(QTextCodec::codecForName("UTF-8")); // qml files are defined to be utf-8
|
setCodec(QTextCodec::codecForName("UTF-8")); // qml files are defined to be utf-8
|
||||||
setIndenter(new Internal::Indenter(document()));
|
setIndenter(new Internal::Indenter(document()));
|
||||||
|
|||||||
@@ -211,9 +211,9 @@ static QList<ExampleItem *> parseTutorials(QXmlStreamReader *reader, const FileP
|
|||||||
item->type = Tutorial;
|
item->type = Tutorial;
|
||||||
QXmlStreamAttributes attributes = reader->attributes();
|
QXmlStreamAttributes attributes = reader->attributes();
|
||||||
item->name = attributes.value(QLatin1String("name")).toString();
|
item->name = attributes.value(QLatin1String("name")).toString();
|
||||||
item->projectPath = projectsOffset
|
const QString projectPath = attributes.value(QLatin1String("projectPath")).toString();
|
||||||
/ attributes.value(QLatin1String("projectPath")).toString();
|
item->projectPath = projectsOffset / projectPath;
|
||||||
item->hasSourceCode = !item->projectPath.isEmpty();
|
item->hasSourceCode = !projectPath.isEmpty();
|
||||||
item->imageUrl = Utils::StyleHelper::dpiSpecificImageFile(
|
item->imageUrl = Utils::StyleHelper::dpiSpecificImageFile(
|
||||||
attributes.value(QLatin1String("imageUrl")).toString());
|
attributes.value(QLatin1String("imageUrl")).toString());
|
||||||
QPixmapCache::remove(item->imageUrl);
|
QPixmapCache::remove(item->imageUrl);
|
||||||
|
|||||||
@@ -108,6 +108,9 @@ void CodeStyleEditor::finish()
|
|||||||
{
|
{
|
||||||
if (m_widget)
|
if (m_widget)
|
||||||
m_widget->finish();
|
m_widget->finish();
|
||||||
|
|
||||||
|
if (m_additionalGlobalSettingsWidget)
|
||||||
|
m_additionalGlobalSettingsWidget->finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
} // TextEditor
|
} // TextEditor
|
||||||
|
|||||||
@@ -2979,9 +2979,9 @@ void TextEditorWidget::insertCodeSnippet(const QTextCursor &cursor_arg,
|
|||||||
d->m_document->autoIndent(cursor);
|
d->m_document->autoIndent(cursor);
|
||||||
cursor.endEditBlock();
|
cursor.endEditBlock();
|
||||||
|
|
||||||
const QColor &occurrencesColor
|
const QColor occurrencesColor
|
||||||
= textDocument()->fontSettings().toTextCharFormat(C_OCCURRENCES).background().color();
|
= textDocument()->fontSettings().toTextCharFormat(C_OCCURRENCES).background().color();
|
||||||
const QColor &renameColor
|
const QColor renameColor
|
||||||
= textDocument()->fontSettings().toTextCharFormat(C_OCCURRENCES_RENAME).background().color();
|
= textDocument()->fontSettings().toTextCharFormat(C_OCCURRENCES_RENAME).background().color();
|
||||||
|
|
||||||
for (const CursorPart &part : cursorParts) {
|
for (const CursorPart &part : cursorParts) {
|
||||||
|
|||||||
@@ -134,8 +134,10 @@ QPainterPath TextEditorOverlay::createSelectionPath(const QTextCursor &begin, co
|
|||||||
int x = line.cursorToX(pos);
|
int x = line.cursorToX(pos);
|
||||||
lineRect.setLeft(x - borderWidth);
|
lineRect.setLeft(x - borderWidth);
|
||||||
lineRect.setRight(x + borderWidth);
|
lineRect.setRight(x + borderWidth);
|
||||||
|
lineRect.setBottom(lineRect.bottom() + borderWidth);
|
||||||
QPainterPath path;
|
QPainterPath path;
|
||||||
path.addRect(lineRect);
|
path.addRect(lineRect);
|
||||||
|
path.translate(offset);
|
||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -250,6 +252,8 @@ void TextEditorOverlay::paintSelection(QPainter *painter,
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
QPainterPath path = createSelectionPath(begin, end, clip);
|
QPainterPath path = createSelectionPath(begin, end, clip);
|
||||||
|
if (path.isEmpty())
|
||||||
|
return;
|
||||||
|
|
||||||
painter->save();
|
painter->save();
|
||||||
QColor penColor = fg;
|
QColor penColor = fg;
|
||||||
@@ -305,6 +309,8 @@ void TextEditorOverlay::fillSelection(QPainter *painter,
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
QPainterPath path = createSelectionPath(begin, end, clip);
|
QPainterPath path = createSelectionPath(begin, end, clip);
|
||||||
|
if (path.isEmpty())
|
||||||
|
return;
|
||||||
|
|
||||||
painter->save();
|
painter->save();
|
||||||
painter->translate(-.5, -.5);
|
painter->translate(-.5, -.5);
|
||||||
|
|||||||
@@ -137,7 +137,7 @@ void TextMark::paintAnnotation(QPainter &painter,
|
|||||||
const QColor &markColor = annotationColor();
|
const QColor &markColor = annotationColor();
|
||||||
|
|
||||||
const FontSettings &fontSettings = m_baseTextDocument->fontSettings();
|
const FontSettings &fontSettings = m_baseTextDocument->fontSettings();
|
||||||
const AnnotationColors &colors = AnnotationColors::getAnnotationColors(
|
const AnnotationColors colors = AnnotationColors::getAnnotationColors(
|
||||||
markColor.isValid() ? markColor : painter.pen().color(),
|
markColor.isValid() ? markColor : painter.pen().color(),
|
||||||
fontSettings.toTextCharFormat(C_TEXT).background().color());
|
fontSettings.toTextCharFormat(C_TEXT).background().color());
|
||||||
|
|
||||||
|
|||||||
@@ -155,7 +155,7 @@ void FunctionGraphicsItem::paint(QPainter *painter,
|
|||||||
painter->save();
|
painter->save();
|
||||||
|
|
||||||
QRectF rect = this->rect();
|
QRectF rect = this->rect();
|
||||||
const QColor &color = brush().color();
|
const QColor color = brush().color();
|
||||||
if (option->state & QStyle::State_Selected) {
|
if (option->state & QStyle::State_Selected) {
|
||||||
QLinearGradient gradient(0, 0, rect.width(), 0);
|
QLinearGradient gradient(0, 0, rect.width(), 0);
|
||||||
gradient.setColorAt(0, color.darker(100));
|
gradient.setColorAt(0, color.darker(100));
|
||||||
|
|||||||
@@ -275,7 +275,9 @@ def __getCDB__():
|
|||||||
"C:\\Program Files\\Windows Kits\\8.1\\Debuggers\\x86",
|
"C:\\Program Files\\Windows Kits\\8.1\\Debuggers\\x86",
|
||||||
"C:\\Program Files\\Windows Kits\\8.1\\Debuggers\\x64",
|
"C:\\Program Files\\Windows Kits\\8.1\\Debuggers\\x64",
|
||||||
"C:\\Program Files (x86)\\Windows Kits\\10\\Debuggers\\x86",
|
"C:\\Program Files (x86)\\Windows Kits\\10\\Debuggers\\x86",
|
||||||
"C:\\Program Files (x86)\\Windows Kits\\10\\Debuggers\\x64"]
|
"C:\\Program Files (x86)\\Windows Kits\\10\\Debuggers\\x64",
|
||||||
|
"C:\\Program Files\\Windows Kits\\10\\Debuggers\\x86",
|
||||||
|
"C:\\Program Files\\Windows Kits\\10\\Debuggers\\x64"]
|
||||||
for cdbPath in possibleLocations:
|
for cdbPath in possibleLocations:
|
||||||
cdb = os.path.join(cdbPath, "cdb.exe")
|
cdb = os.path.join(cdbPath, "cdb.exe")
|
||||||
if os.path.exists(cdb):
|
if os.path.exists(cdb):
|
||||||
|
|||||||
Reference in New Issue
Block a user