From 147ca66932c508bbcf40692d8536468638ba014e Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 24 Nov 2020 12:38:52 +0100 Subject: [PATCH 01/18] Debugger: Rename byteArrayDataHelper to qArrayDataHelper in dumpers It's generic, and operating on QArrayData (-subclasses). Change-Id: Ieedc0f1e3f573aeeb422eb9516d4634e6e0da4b9 Reviewed-by: Christian Stenger --- share/qtcreator/debugger/creatortypes.py | 2 +- share/qtcreator/debugger/dumper.py | 32 ++++++++++++------------ share/qtcreator/debugger/qttypes.py | 12 ++++----- 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/share/qtcreator/debugger/creatortypes.py b/share/qtcreator/debugger/creatortypes.py index 71970e3498b..52a98934212 100644 --- a/share/qtcreator/debugger/creatortypes.py +++ b/share/qtcreator/debugger/creatortypes.py @@ -298,7 +298,7 @@ def qdump__CPlusPlus__Token(d, value): def qdump__CPlusPlus__Internal__PPToken(d, value): - data, size, alloc = d.byteArrayData(value["m_src"]) + data, size, alloc = d.qArrayData(value["m_src"]) length = value["f"]["utf16chars"].integer() offset = value["utf16charOffset"].integer() #DumperBase.warn("size: %s, alloc: %s, offset: %s, length: %s, data: %s" diff --git a/share/qtcreator/debugger/dumper.py b/share/qtcreator/debugger/dumper.py index 7bde6b5b56f..cc3e8ddd59a 100644 --- a/share/qtcreator/debugger/dumper.py +++ b/share/qtcreator/debugger/dumper.py @@ -570,17 +570,17 @@ class DumperBase(): self.check(0 <= size and size <= alloc and alloc <= 1000 * 1000 * 1000) return data, size, alloc - def byteArrayDataHelper(self, bytearray_data_ptr): - # bytearray_data_ptr is what is e.g. stored in a QByteArray's d_ptr. + def qArrayDataHelper(self, array_data_ptr): + # array_data_ptr is what is e.g. stored in a QByteArray's d_ptr. if self.qtVersion() >= 0x050000: # QTypedArray: # - QtPrivate::RefCount ref # - int size # - uint alloc : 31, capacityReserved : 1 # - qptrdiff offset - (ref, size, alloc, offset) = self.split('IIpp', bytearray_data_ptr) + (ref, size, alloc, offset) = self.split('IIpp', array_data_ptr) alloc = alloc & 0x7ffffff - data = bytearray_data_ptr + offset + data = array_data_ptr + offset if self.ptrSize() == 4: data = data & 0xffffffff else: @@ -592,19 +592,19 @@ class DumperBase(): # - [padding] # - char *data; if self.ptrSize() == 4: - (ref, alloc, size, data) = self.split('IIIp', bytearray_data_ptr) + (ref, alloc, size, data) = self.split('IIIp', array_data_ptr) else: - (ref, alloc, size, pad, data) = self.split('IIIIp', bytearray_data_ptr) + (ref, alloc, size, pad, data) = self.split('IIIIp', array_data_ptr) else: # Data: # - QShared count; # - QChar *unicode # - char *ascii # - uint len: 30 - (dummy, dummy, dummy, size) = self.split('IIIp', bytearray_data_ptr) - size = self.extractInt(bytearray_data_ptr + 3 * self.ptrSize()) & 0x3ffffff + (dummy, dummy, dummy, size) = self.split('IIIp', array_data_ptr) + size = self.extractInt(array_data_ptr + 3 * self.ptrSize()) & 0x3ffffff alloc = size # pretend. - data = self.extractPointer(bytearray_data_ptr + self.ptrSize()) + data = self.extractPointer(array_data_ptr + self.ptrSize()) return data, size, alloc # addr is the begin of a QByteArrayData structure @@ -613,14 +613,14 @@ class DumperBase(): # of inferior calls if addr == 0: return 0, '' - data, size, alloc = self.byteArrayDataHelper(addr) + data, size, alloc = self.qArrayDataHelper(addr) if alloc != 0: self.check(0 <= size and size <= alloc and alloc <= 100 * 1000 * 1000) elided, shown = self.computeLimit(size, limit) return elided, self.readMemory(data, 2 * shown) def encodeByteArrayHelper(self, addr, limit): - data, size, alloc = self.byteArrayDataHelper(addr) + data, size, alloc = self.qArrayDataHelper(addr) if alloc != 0: self.check(0 <= size and size <= alloc and alloc <= 100 * 1000 * 1000) elided, shown = self.computeLimit(size, limit) @@ -673,8 +673,8 @@ class DumperBase(): elided, data = self.encodeByteArrayHelper(self.extractPointer(value), limit) return data - def byteArrayData(self, value): - return self.byteArrayDataHelper(self.extractPointer(value)) + def qArrayData(self, value): + return self.qArrayDataHelper(self.extractPointer(value)) def putByteArrayValue(self, value): elided, data = self.encodeByteArrayHelper( @@ -708,7 +708,7 @@ class DumperBase(): alloc = size return data, size, alloc else: - return self.byteArrayDataHelper(self.extractPointer(value)) + return self.qArrayData(value) def extractTemplateArgument(self, typename, position): level = 0 @@ -1479,7 +1479,7 @@ class DumperBase(): # - QString objectName objectName = self.extractPointer(extra + 5 * ptrSize) - data, size, alloc = self.byteArrayDataHelper(objectName) + data, size, alloc = self.qArrayDataHelper(objectName) # Object names are short, and GDB can crash on to big chunks. # Since this here is a convenience feature only, limit it. @@ -1769,7 +1769,7 @@ class DumperBase(): if revision >= 7: # Qt 5. byteArrayDataSize = 24 if ptrSize == 8 else 16 literal = stringdata + toInteger(index) * byteArrayDataSize - ldata, lsize, lalloc = self.byteArrayDataHelper(literal) + ldata, lsize, lalloc = self.qArrayDataHelper(literal) try: s = struct.unpack_from('%ds' % lsize, self.readRawMemory(ldata, lsize))[0] return s if sys.version_info[0] == 2 else s.decode('utf8') diff --git a/share/qtcreator/debugger/qttypes.py b/share/qtcreator/debugger/qttypes.py index 20f51a831b2..da1f31e8939 100644 --- a/share/qtcreator/debugger/qttypes.py +++ b/share/qtcreator/debugger/qttypes.py @@ -62,7 +62,7 @@ def qdump__QByteArray(d, value): else: # fromRawData alloc = size else: - data, size, alloc = d.byteArrayData(value) + data, size, alloc = d.qArrayData(value) d.check(alloc == 0 or (0 <= size and size <= alloc and alloc <= 100000000)) if size > 0: @@ -90,7 +90,7 @@ def qdump__QByteArray(d, value): def qdump__QArrayData(d, value): - data, size, alloc = d.byteArrayDataHelper(value.address()) + data, size, alloc = d.qArrayDataHelper(value.address()) d.check(alloc == 0 or (0 <= size and size <= alloc and alloc <= 100000000)) d.putValue(d.readMemory(data, size), 'latin1') d.putPlainChildren(value) @@ -104,7 +104,7 @@ def qdump__QBitArray(d, value): if d.qtVersion() >= 0x60000: _, data, basize = value.split('ppi') else: - data, basize, _ = d.byteArrayDataHelper(d.extractPointer(value['d'])) + data, basize, _ = d.qArrayData(value['d']) unused = d.extractByte(data) if data else 0 size = basize * 8 - unused d.putItemCount(size) @@ -3158,7 +3158,7 @@ def qdumpHelper_QCbor_string(d, container_ptr, element_index, is_bytes): element_at_n_addr = elements_data_ptr + element_index * 16 # sizeof(QtCbor::Element) == 15 element_value, _, element_flags = d.split('qII', element_at_n_addr) enc = 'latin1' if is_bytes or (element_flags & 8) else 'utf16' - bytedata, _, _ = d.byteArrayDataHelper(data_d_ptr) + bytedata, _, _ = d.qArrayDataHelper(data_d_ptr) bytedata += element_value if d.qtVersion() >= 0x060000: bytedata_len = d.extractInt64(bytedata) @@ -3193,7 +3193,7 @@ def qdumpHelper_QCbor_array(d, container_ptr, is_cbor): elements_data_ptr, elements_size, _ = d.vectorDataHelper(elements_d_ptr) d.putItemCount(elements_size) if d.isExpanded(): - bytedata, _, _ = d.byteArrayDataHelper(data_d_ptr) + bytedata, _, _ = d.qArrayDataHelper(data_d_ptr) with Children(d, maxNumChild=1000): for i in range(elements_size): d.putSubItem(i, qdumpHelper_QCborArray_valueAt(d, container_ptr, elements_data_ptr, i, bytedata, is_cbor)) @@ -3215,7 +3215,7 @@ def qdumpHelper_QCbor_map(d, container_ptr, is_cbor): elements_size = int(elements_size / 2) d.putItemCount(elements_size) if d.isExpanded(): - bytedata, _, _ = d.byteArrayDataHelper(data_d_ptr) + bytedata, _, _ = d.qArrayDataHelper(data_d_ptr) with Children(d, maxNumChild=1000): for i in range(elements_size): key = qdumpHelper_QCborArray_valueAt(d, container_ptr, elements_data_ptr, 2 * i, bytedata, is_cbor) From 961c660ebd79cce4921c3c6674185a59daaaaf17 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 24 Nov 2020 15:44:49 +0100 Subject: [PATCH 02/18] Debugger: Use Values instead of addresses in encodeByteArrayHelper Change-Id: I4ee44f14b5b0d6afddb305a923d25a737f0d3d97 Reviewed-by: Christian Stenger --- share/qtcreator/debugger/dumper.py | 8 ++++---- share/qtcreator/debugger/qttypes.py | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/share/qtcreator/debugger/dumper.py b/share/qtcreator/debugger/dumper.py index cc3e8ddd59a..a6f02e8b527 100644 --- a/share/qtcreator/debugger/dumper.py +++ b/share/qtcreator/debugger/dumper.py @@ -619,7 +619,8 @@ class DumperBase(): elided, shown = self.computeLimit(size, limit) return elided, self.readMemory(data, 2 * shown) - def encodeByteArrayHelper(self, addr, limit): + def encodeByteArrayHelper(self, value, limit): + addr = self.extractPointer(value) data, size, alloc = self.qArrayDataHelper(addr) if alloc != 0: self.check(0 <= size and size <= alloc and alloc <= 100 * 1000 * 1000) @@ -670,15 +671,14 @@ class DumperBase(): return self.hexencode(bytes(self.readRawMemory(addr, size))) def encodeByteArray(self, value, limit=0): - elided, data = self.encodeByteArrayHelper(self.extractPointer(value), limit) + elided, data = self.encodeByteArrayHelper(value, limit) return data def qArrayData(self, value): return self.qArrayDataHelper(self.extractPointer(value)) def putByteArrayValue(self, value): - elided, data = self.encodeByteArrayHelper( - self.extractPointer(value), self.displayStringLimit) + elided, data = self.encodeByteArrayHelper(value, self.displayStringLimit) self.putValue(data, 'latin1', elided=elided) def encodeString(self, value, limit=0): diff --git a/share/qtcreator/debugger/qttypes.py b/share/qtcreator/debugger/qttypes.py index da1f31e8939..36da4087a5b 100644 --- a/share/qtcreator/debugger/qttypes.py +++ b/share/qtcreator/debugger/qttypes.py @@ -72,7 +72,7 @@ def qdump__QByteArray(d, value): elided, shown = d.computeLimit(size, d.displayStringLimit) p = d.readMemory(data, shown) else: - elided, p = d.encodeByteArrayHelper(d.extractPointer(value), d.displayStringLimit) + elided, p = d.encodeByteArrayHelper(value, d.displayStringLimit) displayFormat = d.currentItemFormat() if displayFormat == DisplayFormat.Automatic or displayFormat == DisplayFormat.Latin1String: @@ -380,7 +380,7 @@ def qdump__QDateTime(d, value): tz = '' else: idBase = tzp + 2 * d.ptrSize() # [QSharedData] + [vptr] - elided, tz = d.encodeByteArrayHelper(d.extractPointer(idBase), limit=100) + elided, tz = d.encodeByteArray(idBase, limit=100) d.putValue('%s/%s/%s/%s/%s/%s' % (msecs, spec, offset, tz, status, 0), 'datetimeinternal') else: From 1074c2ffceb1a0df5598ae6e4b9ce1985ee05f25 Mon Sep 17 00:00:00 2001 From: hjk Date: Mon, 23 Nov 2020 13:32:04 +0100 Subject: [PATCH 03/18] Debugger: Remove shortcut to get known type sizes in dumpers This was incomplete, can conceptionally not be complete, and most of the sizes were wrong for Qt 6. Change-Id: Id107b30dd6707b280c18a5d2065a4ec9c39fb035 Reviewed-by: Christian Stenger --- share/qtcreator/debugger/dumper.py | 32 ------------------------------ 1 file changed, 32 deletions(-) diff --git a/share/qtcreator/debugger/dumper.py b/share/qtcreator/debugger/dumper.py index a6f02e8b527..a9ef5b980f7 100644 --- a/share/qtcreator/debugger/dumper.py +++ b/share/qtcreator/debugger/dumper.py @@ -3816,40 +3816,8 @@ class DumperBase(): #typish.check() return typish if isinstance(typish, str): - def knownSize(tn): - if tn[0] == 'Q': - if tn in ('QByteArray', 'QString', 'QList', 'QStringList', - 'QStringDataPtr'): - return self.ptrSize() - if tn == 'QStandardItemData': - return 8 + 2 * self.ptrSize() - if tn in ('QImage', 'QObject'): - return 2 * self.ptrSize() - if tn == 'QVariant': - return 8 + self.ptrSize() - if typish in ('QPointF', 'QDateTime', 'QRect'): - return 16 - if typish == 'QPoint': - return 8 - if typish == 'Qt::ItemDataRole': - return 4 - if typish == 'QChar': - return 2 - if typish in ('quint32', 'qint32'): - return 4 - return None - ns = self.qtNamespace() typish = typish.replace('@', ns) - if typish.startswith(ns): - if size is None: - size = knownSize(typish[len(ns):]) - else: - if size is None: - size = knownSize(typish) - if size is not None: - typish = ns + typish - tdata = self.typeData.get(typish, None) if tdata is not None: return self.Type(self, typish) From 79df1c08043b16f1141f3f6f470557a06f55c242 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 24 Nov 2020 16:33:57 +0100 Subject: [PATCH 04/18] Debugger: Use Values instead of addresses in putStringValue Change-Id: I31a3c1a326d777d9e7081552d5a956e8e2882dcf Reviewed-by: Christian Stenger --- share/qtcreator/debugger/dumper.py | 8 ++++---- share/qtcreator/debugger/qttypes.py | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/share/qtcreator/debugger/dumper.py b/share/qtcreator/debugger/dumper.py index a9ef5b980f7..d0d1244ff1b 100644 --- a/share/qtcreator/debugger/dumper.py +++ b/share/qtcreator/debugger/dumper.py @@ -608,7 +608,8 @@ class DumperBase(): return data, size, alloc # addr is the begin of a QByteArrayData structure - def encodeStringHelper(self, addr, limit): + def encodeStringHelper(self, value, limit): + addr = self.extractPointer(value) # Should not happen, but we get it with LLDB as result # of inferior calls if addr == 0: @@ -690,7 +691,7 @@ class DumperBase(): data = self.readMemory(ptr, shown) return data else: - elided, data = self.encodeStringHelper(self.extractPointer(value), limit) + elided, data = self.encodeStringHelper(value, limit) return data def encodedUtf16ToUtf8(self, s): @@ -750,8 +751,7 @@ class DumperBase(): data = self.readMemory(ptr, shown) self.putValue(data, 'utf16', elided=elided) else: - addr = self.extractPointer(value) - elided, data = self.encodeStringHelper(addr, self.displayStringLimit) + elided, data = self.encodeStringHelper(value, self.displayStringLimit) self.putValue(data, 'utf16', elided=elided) def putPtrItem(self, name, value): diff --git a/share/qtcreator/debugger/qttypes.py b/share/qtcreator/debugger/qttypes.py index 36da4087a5b..0d1facbecbf 100644 --- a/share/qtcreator/debugger/qttypes.py +++ b/share/qtcreator/debugger/qttypes.py @@ -3052,7 +3052,8 @@ def qdump__QJsonValue(d, value): return if t == 3: d.putType('QJsonValue (String)') - elided, base = d.encodeStringHelper(data, d.displayStringLimit) + string = value.split('{QString}')[0] + elided, base = d.encodeString(string, d.displayStringLimit) d.putValue(base, 'utf16', elided=elided) return if t == 4: From c13c9f1deadfe2bffd870a17735c7f19a61fbf39 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Mon, 23 Nov 2020 13:39:13 +0100 Subject: [PATCH 05/18] Clang: Avoid flooding unknown warning on macOS clang seems to be pretending to be gcc (besides clang and llvm) on macOS. Change-Id: Ifd838a2918673b8877f5bb5fd8248d4a849664f7 Reviewed-by: Eike Ziller --- src/shared/clang/clang_installation.pri | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/shared/clang/clang_installation.pri b/src/shared/clang/clang_installation.pri index 2d412c48d2b..20e7cc14dca 100644 --- a/src/shared/clang/clang_installation.pri +++ b/src/shared/clang/clang_installation.pri @@ -169,7 +169,7 @@ isEmpty(LLVM_VERSION) { LLVM_VERSION = } else { # CLANG-UPGRADE-CHECK: Remove suppression if this warning is resolved. - gcc { + gcc:!clang: { # GCC6 shows full version (6.4.0), while GCC7 and up show only major version (8) GCC_VERSION = $$system("$$QMAKE_CXX -dumpversion") GCC_MAJOR_VERSION = $$section(GCC_VERSION, ., 0, 0) From 1f75893eba1de68934a940cdd695cdc6e99fd08c Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 25 Nov 2020 08:23:22 +0100 Subject: [PATCH 06/18] Debugger: Adapt QDir dumper to Qt6 Task-number: QTCREATORBUG-24098 Change-Id: I5346a8eb129dd042279754748b26852acf082f94 Reviewed-by: David Schulz --- share/qtcreator/debugger/qttypes.py | 33 ++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/share/qtcreator/debugger/qttypes.py b/share/qtcreator/debugger/qttypes.py index 0d1facbecbf..28241ea1efc 100644 --- a/share/qtcreator/debugger/qttypes.py +++ b/share/qtcreator/debugger/qttypes.py @@ -468,10 +468,12 @@ def qdump__QDir(d, value): # + 2 byte padding fileSystemEntrySize = 2 * d.ptrSize() + 8 - if d.qtVersion() < 0x050200: - case = 0 + if d.qtVersion() >= 0x060000: + case = 2 elif d.qtVersion() >= 0x050300: case = 1 + elif d.qtVersion() < 0x050200: + case = 0 else: # Try to distinguish bool vs QStringList at the first item # after the (padded) refcount. If it looks like a bool assume @@ -479,17 +481,28 @@ def qdump__QDir(d, value): firstValue = d.extractInt(privAddress + d.ptrSize()) case = 1 if firstValue == 0 or firstValue == 1 else 0 - if case == 1: + if case == 2: + if bit32: + filesOffset = 4 + fileInfosOffset = 16 + dirEntryOffset = 40 + absoluteDirEntryOffset = 72 + else: + filesOffset = 8 + fileInfosOffset = 32 + dirEntryOffset = 96 + absoluteDirEntryOffset = 152 + elif case == 1: if bit32: filesOffset = 4 fileInfosOffset = 8 - dirEntryOffset = 0x20 - absoluteDirEntryOffset = 0x30 + dirEntryOffset = 32 + absoluteDirEntryOffset = 48 else: - filesOffset = 0x08 - fileInfosOffset = 0x10 - dirEntryOffset = 0x30 - absoluteDirEntryOffset = 0x48 + filesOffset = 8 + fileInfosOffset = 16 + dirEntryOffset = 48 + absoluteDirEntryOffset = 72 else: # Assume this is before 9fc0965. qt3support = d.isQt3Support() @@ -1037,7 +1050,7 @@ def qdump__QVariantList(d, value): def qdumpHelper_QList(d, value, innerType): if d.qtVersion() >= 0x60000: - dd, data, size = value.split('ppi') + dd, data, size = d.split('ppi', value) d.putItemCount(size) d.putPlotData(data, size, innerType) return From 35c2d51ec9ac4a1b52d2a6626083162839bb84b6 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 25 Nov 2020 09:34:40 +0100 Subject: [PATCH 07/18] Debugger: Adapt QDate{,Time} dumper and test to Qt6 Essentially removing the parts that are gone in Qt6 Task-number: QTCREATORBUG-24098 Change-Id: I49f7ed8ea8e568803850bd4a0118b690248013af Reviewed-by: David Schulz --- share/qtcreator/debugger/qttypes.py | 38 +++++++++++++++-------------- tests/auto/debugger/tst_dumpers.cpp | 6 +++++ 2 files changed, 26 insertions(+), 18 deletions(-) diff --git a/share/qtcreator/debugger/qttypes.py b/share/qtcreator/debugger/qttypes.py index 28241ea1efc..093ccf0e4e6 100644 --- a/share/qtcreator/debugger/qttypes.py +++ b/share/qtcreator/debugger/qttypes.py @@ -270,23 +270,24 @@ def qdump__QStandardItem(d, value): def qdump__QDate(d, value): jd = value.pointer() - if jd: - d.putValue(jd, 'juliandate') - d.putExpandable() - if d.isExpanded(): - with Children(d): - if d.canCallLocale(): - d.putCallItem('toString', '@QString', value, 'toString', - d.enumExpression('DateFormat', 'TextDate')) - d.putCallItem('(ISO)', '@QString', value, 'toString', - d.enumExpression('DateFormat', 'ISODate')) + if not jd: + d.putValue('(invalid)') + return + d.putValue(jd, 'juliandate') + d.putExpandable() + if d.isExpanded(): + with Children(d): + if d.canCallLocale(): + d.putCallItem('toString', '@QString', value, 'toString', + d.enumExpression('DateFormat', 'TextDate')) + d.putCallItem('(ISO)', '@QString', value, 'toString', + d.enumExpression('DateFormat', 'ISODate')) + if d.qtVersion() < 0x060000: d.putCallItem('(SystemLocale)', '@QString', value, 'toString', d.enumExpression('DateFormat', 'SystemLocaleDate')) d.putCallItem('(Locale)', '@QString', value, 'toString', d.enumExpression('DateFormat', 'LocaleDate')) - d.putFields(value) - else: - d.putValue('(invalid)') + d.putFields(value) def qdump__QTime(d, value): @@ -301,7 +302,7 @@ def qdump__QTime(d, value): d.enumExpression('DateFormat', 'TextDate')) d.putCallItem('(ISO)', '@QString', value, 'toString', d.enumExpression('DateFormat', 'ISODate')) - if d.canCallLocale(): + if d.canCallLocale() and d.qtVersion() < 0x060000: d.putCallItem('(SystemLocale)', '@QString', value, 'toString', d.enumExpression('DateFormat', 'SystemLocaleDate')) d.putCallItem('(Locale)', '@QString', value, 'toString', @@ -419,10 +420,11 @@ def qdump__QDateTime(d, value): d.enumExpression('DateFormat', 'ISODate')) d.putCallItem('toUTC', '@QDateTime', value, 'toTimeSpec', d.enumExpression('TimeSpec', 'UTC')) - d.putCallItem('(SystemLocale)', '@QString', value, 'toString', - d.enumExpression('DateFormat', 'SystemLocaleDate')) - d.putCallItem('(Locale)', '@QString', value, 'toString', - d.enumExpression('DateFormat', 'LocaleDate')) + if d.qtVersion() < 0x060000: + d.putCallItem('(SystemLocale)', '@QString', value, 'toString', + d.enumExpression('DateFormat', 'SystemLocaleDate')) + d.putCallItem('(Locale)', '@QString', value, 'toString', + d.enumExpression('DateFormat', 'LocaleDate')) d.putCallItem('toLocalTime', '@QDateTime', value, 'toTimeSpec', d.enumExpression('TimeSpec', 'LocalTime')) d.putFields(value) diff --git a/tests/auto/debugger/tst_dumpers.cpp b/tests/auto/debugger/tst_dumpers.cpp index 5c0f56e288b..9adf8543c33 100644 --- a/tests/auto/debugger/tst_dumpers.cpp +++ b/tests/auto/debugger/tst_dumpers.cpp @@ -2276,14 +2276,18 @@ void tst_Dumpers::dumper_data() + Check("d1.(ISO)", "\"1980-01-01\"", "@QString") % NeedsInferiorCall + Check("d1.toString", "\"Tue Jan 1 1980\"", "@QString") % NeedsInferiorCall + CheckType("d1.(Locale)", "@QString") % NeedsInferiorCall + % QtVersion(0, 0x5ffff) // Gone in Qt6 + CheckType("d1.(SystemLocale)", "@QString") % NeedsInferiorCall + % QtVersion(0, 0x5ffff) // Gone in Qt6 + Check("t0", "(invalid)", "@QTime") + Check("t1", "13:15:32", "@QTime") + Check("t1.(ISO)", "\"13:15:32\"", "@QString") % NeedsInferiorCall + Check("t1.toString", "\"13:15:32\"", "@QString") % NeedsInferiorCall + CheckType("t1.(Locale)", "@QString") % NeedsInferiorCall + % QtVersion(0, 0x5ffff) // Gone in Qt6 + CheckType("t1.(SystemLocale)", "@QString") % NeedsInferiorCall + % QtVersion(0, 0x5ffff) // Gone in Qt6 + Check("dt0", "(invalid)", "@QDateTime") + Check("dt1", Value4("Tue Jan 1 13:15:32 1980"), "@QDateTime") @@ -2291,7 +2295,9 @@ void tst_Dumpers::dumper_data() + Check("dt1.(ISO)", "\"1980-01-01T13:15:32Z\"", "@QString") % NeedsInferiorCall + CheckType("dt1.(Locale)", "@QString") % NeedsInferiorCall + % QtVersion(0, 0x5ffff) // Gone in Qt6 + CheckType("dt1.(SystemLocale)", "@QString") % NeedsInferiorCall + % QtVersion(0, 0x5ffff) // Gone in Qt6 + Check("dt1.toString", Value4("\"Tue Jan 1 13:15:32 1980\""), "@QString") % NeedsInferiorCall + Check("dt1.toString", From 9939b1844d58b6f032926babddd278296e055557 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Wed, 25 Nov 2020 12:25:24 +0100 Subject: [PATCH 08/18] Fix crash in ManhattanStyle The widget can be a nullptr. const bool isComboBox = widget->inherits("QComboBox"); Was crashing in the iso icon browser. Task-number: QDS-3079 Change-Id: Ie7efa08ff5be094b94a835db895929158918bfcf Reviewed-by: Alessandro Portale --- src/plugins/coreplugin/manhattanstyle.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/plugins/coreplugin/manhattanstyle.cpp b/src/plugins/coreplugin/manhattanstyle.cpp index 5a6b80f0d62..c043b05e8ad 100644 --- a/src/plugins/coreplugin/manhattanstyle.cpp +++ b/src/plugins/coreplugin/manhattanstyle.cpp @@ -431,7 +431,7 @@ static void drawPrimitiveTweakedForDarkTheme(QStyle::PrimitiveElement element, break; } case QStyle::PE_FrameLineEdit: { - const bool isComboBox = widget->inherits("QComboBox"); + const bool isComboBox = widget && widget->inherits("QComboBox"); const QRectF frameRectF = QRectF(option->rect).adjusted(0.5, 0.5, isComboBox ? -8.5 : -0.5, -0.5); painter->setPen(framePen); @@ -447,7 +447,8 @@ static void drawPrimitiveTweakedForDarkTheme(QStyle::PrimitiveElement element, // Shrinking the topMargin if Not checkable AND title is empty topMargin = groupBoxTopMargin; } else { - topMargin = qMax(widget->style()->pixelMetric(QStyle::PM_ExclusiveIndicatorHeight), + const int exclusiveIndicatorHeight = widget ? widget->style()->pixelMetric(QStyle::PM_ExclusiveIndicatorHeight) : 0; + topMargin = qMax(exclusiveIndicatorHeight, option->fontMetrics.height()) + groupBoxTopMargin; } // Snippet from QFusionStyle::drawPrimitive - END @@ -505,15 +506,16 @@ static void drawPrimitiveTweakedForDarkTheme(QStyle::PrimitiveElement element, break; } case QStyle::PE_IndicatorTabClose: { - QWindow *window = widget->window()->windowHandle(); + QWindow *window = widget ? widget->window()->windowHandle() : nullptr; QRect iconRect = QRect(0, 0, 16, 16); iconRect.moveCenter(option->rect.center()); const QIcon::Mode mode = !isEnabled ? QIcon::Disabled : QIcon::Normal; const static QIcon closeIcon = Utils::Icons::CLOSE_FOREGROUND.icon(); - if (option->state & QStyle::State_MouseOver) + if (option->state & QStyle::State_MouseOver && widget) widget->style()->drawPrimitive(QStyle::PE_PanelButtonCommand, option, painter, widget); + const int devicePixelRatio = widget ? widget->devicePixelRatio() : 1; const QPixmap iconPx = - closeIcon.pixmap(window, iconRect.size() * widget->devicePixelRatio(), mode); + closeIcon.pixmap(window, iconRect.size() * devicePixelRatio, mode); painter->drawPixmap(iconRect, iconPx); break; } From 93fedb2c9e3afdd31cb7b0d1b2f4a72c1aa39cde Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 24 Nov 2020 14:46:22 +0100 Subject: [PATCH 09/18] Debugger: Disable Q{Typed,Byte,}ArrayData dumpers Mainly because it is getting in the way of the string data dumper consolidation. We can re-enable that afterwards. The loss here is limited either way as QArrayData is only an implementation detail of some Qt container, rarely, if ever used by end users. Change-Id: I7e9074434f84da536d603b6a163a3a039facc8fc Reviewed-by: Christian Stenger --- share/qtcreator/debugger/qttypes.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/share/qtcreator/debugger/qttypes.py b/share/qtcreator/debugger/qttypes.py index 093ccf0e4e6..cff834aa235 100644 --- a/share/qtcreator/debugger/qttypes.py +++ b/share/qtcreator/debugger/qttypes.py @@ -89,15 +89,15 @@ def qdump__QByteArray(d, value): d.putArrayData(data, size, d.charType()) -def qdump__QArrayData(d, value): - data, size, alloc = d.qArrayDataHelper(value.address()) - d.check(alloc == 0 or (0 <= size and size <= alloc and alloc <= 100000000)) - d.putValue(d.readMemory(data, size), 'latin1') - d.putPlainChildren(value) +#def qdump__QArrayData(d, value): +# data, size, alloc = d.qArrayDataHelper(value.address()) +# d.check(alloc == 0 or (0 <= size and size <= alloc and alloc <= 100000000)) +# d.putValue(d.readMemory(data, size), 'latin1') +# d.putPlainChildren(value) -def qdump__QByteArrayData(d, value): - qdump__QArrayData(d, value) +#def qdump__QByteArrayData(d, value): +# qdump__QArrayData(d, value) def qdump__QBitArray(d, value): @@ -1674,11 +1674,11 @@ def qdump__QStaticStringData(d, value): d.putPlainChildren(value) -def qdump__QTypedArrayData(d, value): - if value.type[0].name == 'unsigned short': - qdump__QStringData(d, value) - else: - qdump__QArrayData(d, value) +#def qdump__QTypedArrayData(d, value): +# if value.type[0].name == 'unsigned short': +# qdump__QStringData(d, value) +# else: +# qdump__QArrayData(d, value) def qdump__QStringData(d, value): From b243a794aadd02f2187608f5a3b63656be9eb1e0 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Wed, 25 Nov 2020 14:21:02 +0100 Subject: [PATCH 10/18] CMake: Fix missing run of CMake after saving sub-CMakeLists.txt If you have a project with subdirs, changing and saving on of the subdirs CMakeLists.txt would just "reparse" the existing project data again. Instead run CMake first, so the change actually takes effect. Change-Id: Ia2b0f8b5681f10d426229470fdc420b3234eccec Reviewed-by: Cristian Adam --- src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp index c77f7855100..c890f3f4227 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp @@ -781,7 +781,7 @@ void CMakeBuildSystem::wireUpConnections() if (cmake && cmake->isAutoRun()) { qCDebug(cmakeBuildSystemLog) << "Requesting parse due to dirty project file"; setParametersAndRequestParse(BuildDirParameters(cmakeBuildConfiguration()), - CMakeBuildSystem::REPARSE_DEFAULT); + CMakeBuildSystem::REPARSE_FORCE_CMAKE_RUN); } } }); From 1b477cbadbbda09cbbb4492008092e60f0d49c93 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Tue, 24 Nov 2020 10:16:33 +0100 Subject: [PATCH 11/18] QmlDesigner: Don't copy the target It is to costly. It is not thread save but we think there will be no race condition. To improve the code we should capture only the needed data and copy that. Change-Id: Ide9c640a98c2aab6fbf25beedc9f533b695b9f02 Reviewed-by: Tim Jenssen --- .../components/itemlibrary/itemlibraryview.cpp | 8 ++------ .../designercore/imagecache/imagecachecollector.cpp | 6 +++--- .../designercore/imagecache/imagecachecollector.h | 6 +++--- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.cpp index 2799cc345d6..5360417432a 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.cpp +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.cpp @@ -96,12 +96,8 @@ void ItemLibraryView::modelAttached(Model *model) auto target = QmlDesignerPlugin::instance()->currentDesignDocument()->currentTarget(); m_imageCacheData->cache.clean(); - if (target) { - auto clonedTarget = std::make_unique( - target->project(), target->kit()->clone(), ProjectExplorer::Target::_constructor_tag{}); - - m_imageCacheData->collector.setTarget(std::move(clonedTarget)); - } + if (target) + m_imageCacheData->collector.setTarget(target); m_widget->clearSearchFilter(); m_widget->setModel(model); diff --git a/src/plugins/qmldesigner/designercore/imagecache/imagecachecollector.cpp b/src/plugins/qmldesigner/designercore/imagecache/imagecachecollector.cpp index 55d44d7d49f..fb7367822ba 100644 --- a/src/plugins/qmldesigner/designercore/imagecache/imagecachecollector.cpp +++ b/src/plugins/qmldesigner/designercore/imagecache/imagecachecollector.cpp @@ -99,7 +99,7 @@ void ImageCacheCollector::start(Utils::SmallStringView name, m_connectionManager.setCallback(std::move(captureCallback)); - nodeInstanceView.setTarget(m_target.get()); + nodeInstanceView.setTarget(m_target.data()); nodeInstanceView.setCrashCallback(abortCallback); model->setNodeInstanceView(&nodeInstanceView); @@ -115,9 +115,9 @@ void ImageCacheCollector::start(Utils::SmallStringView name, abortCallback(); } -void ImageCacheCollector::setTarget(std::unique_ptr target) +void ImageCacheCollector::setTarget(ProjectExplorer::Target *target) { - m_target = std::move(target); + m_target = target; } } // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/designercore/imagecache/imagecachecollector.h b/src/plugins/qmldesigner/designercore/imagecache/imagecachecollector.h index d7f19e17a7c..82756c7d22b 100644 --- a/src/plugins/qmldesigner/designercore/imagecache/imagecachecollector.h +++ b/src/plugins/qmldesigner/designercore/imagecache/imagecachecollector.h @@ -27,7 +27,7 @@ #include "imagecachecollectorinterface.h" -#include +#include QT_BEGIN_NAMESPACE class QTextDocument; @@ -57,11 +57,11 @@ public: CaptureCallback captureCallback, AbortCallback abortCallback) override; - void setTarget(std::unique_ptr target); + void setTarget(ProjectExplorer::Target *target); private: ImageCacheConnectionManager &m_connectionManager; - std::unique_ptr m_target; + QPointer m_target; }; } // namespace QmlDesigner From 3ef279450bd026c9bbfde9d32321cd857655cea3 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Wed, 25 Nov 2020 17:56:03 +0100 Subject: [PATCH 12/18] CMake: Don't overwrite existing builds when changing build dir When changing a build configuration's build directory to a directory with an existing build (i.e. CMakeCache.txt), do not overwrite it, but just parse it (running CMake as needed to generate the fileapi response). Do not ask funny questions in that case. This solves the pattern that you want to use some preconfigured build but configured the right kit already with the default parameters. Switching to a different build directory should simply never "kill" an existing build in any case (and running CMake with the "initial arguments" basically kills the existing build in the not-so-uncommon case). Change-Id: I54ca1f14d72a11a3bfe5b09ce340b28be321f80e Reviewed-by: Cristian Adam --- .../cmakebuildconfiguration.cpp | 2 +- .../cmakeprojectmanager/cmakebuildsystem.cpp | 25 +++++++++++++------ 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp index 1dcf14f3970..6b396a2aadb 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp @@ -111,7 +111,7 @@ CMakeBuildConfiguration::CMakeBuildConfiguration(Target *target, Utils::Id id) if (oldDir.isEmpty()) return newDir; - if (QDir(oldDir).exists("CMakeCache.txt")) { + if (QDir(oldDir).exists("CMakeCache.txt") && !QDir(newDir).exists("CMakeCache.txt")) { if (QMessageBox::information(nullptr, tr("Changing Build Directory"), tr("Change the build directory and start with a " diff --git a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp index c890f3f4227..2f332dc7e9a 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp @@ -766,14 +766,23 @@ void CMakeBuildSystem::wireUpConnections() setParametersAndRequestParse(BuildDirParameters(cmakeBuildConfiguration()), CMakeBuildSystem::REPARSE_FORCE_CMAKE_RUN); }); - connect(cmakeBuildConfiguration(), &CMakeBuildConfiguration::buildDirectoryChanged, this, [this]() { - // The build directory of our BC has changed: - // Run with initial arguments! - qCDebug(cmakeBuildSystemLog) << "Requesting parse due to build directory change"; - setParametersAndRequestParse(BuildDirParameters(cmakeBuildConfiguration()), - CMakeBuildSystem::REPARSE_FORCE_INITIAL_CONFIGURATION - | CMakeBuildSystem::REPARSE_FORCE_CMAKE_RUN); - }); + connect(cmakeBuildConfiguration(), + &CMakeBuildConfiguration::buildDirectoryChanged, + this, + [this]() { + // The build directory of our BC has changed: + // Does the directory contain a CMakeCache ? Existing build, just parse + // No CMakeCache? Run with initial arguments! + qCDebug(cmakeBuildSystemLog) << "Requesting parse due to build directory change"; + const BuildDirParameters parameters(cmakeBuildConfiguration()); + const bool hasCMakeCache = QFile::exists( + (parameters.buildDirectory / "CMakeCache.txt").toString()); + const auto options = ReparseParameters( + hasCMakeCache + ? REPARSE_DEFAULT + : (REPARSE_FORCE_INITIAL_CONFIGURATION | REPARSE_FORCE_CMAKE_RUN)); + setParametersAndRequestParse(BuildDirParameters(cmakeBuildConfiguration()), options); + }); connect(project(), &Project::projectFileIsDirty, this, [this]() { if (cmakeBuildConfiguration()->isActive() && !isParsing()) { From 3d6ef913b7cc5146bd412f98572d4a62bae50cd2 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Mon, 23 Nov 2020 15:29:54 +0100 Subject: [PATCH 13/18] Doc: Update info about 2D effects The effects can now be dragged to components in Navigator. Add icons to the table to follow the new style of listing components. Fixes: QDS-3153 Change-Id: I2c603acb165f809143b04adb93f65a2655344fab Reviewed-by: Thomas Hartmann --- .../images/icons/blend-mode-16px.png | Bin 0 -> 299 bytes .../images/icons/brightness-contrast-16px.png | Bin 0 -> 226 bytes .../images/icons/colourize-16px.png | Bin 0 -> 388 bytes .../images/icons/desaturation-16px.png | Bin 0 -> 162 bytes .../images/icons/directional-blur-16px.png | Bin 0 -> 277 bytes .../images/icons/drop-shadow-16px.png | Bin 0 -> 119 bytes .../images/icons/fast-blur-16px.png | Bin 0 -> 258 bytes doc/qtdesignstudio/images/icons/glow-16px.png | Bin 0 -> 376 bytes .../images/icons/hue-saturation-16px.png | Bin 0 -> 371 bytes .../images/icons/mask-blur-16px.png | Bin 0 -> 300 bytes .../images/icons/opacity-mask-16px.png | Bin 0 -> 150 bytes .../images/icons/radial-blur-16px.png | Bin 0 -> 337 bytes .../images/icons/zoom-blur-16px.png | Bin 0 -> 325 bytes .../src/qtdesignstudio-visual-effects.qdocinc | 24 +++++++++++++----- 14 files changed, 18 insertions(+), 6 deletions(-) create mode 100644 doc/qtdesignstudio/images/icons/blend-mode-16px.png create mode 100644 doc/qtdesignstudio/images/icons/brightness-contrast-16px.png create mode 100644 doc/qtdesignstudio/images/icons/colourize-16px.png create mode 100644 doc/qtdesignstudio/images/icons/desaturation-16px.png create mode 100644 doc/qtdesignstudio/images/icons/directional-blur-16px.png create mode 100644 doc/qtdesignstudio/images/icons/drop-shadow-16px.png create mode 100644 doc/qtdesignstudio/images/icons/fast-blur-16px.png create mode 100644 doc/qtdesignstudio/images/icons/glow-16px.png create mode 100644 doc/qtdesignstudio/images/icons/hue-saturation-16px.png create mode 100644 doc/qtdesignstudio/images/icons/mask-blur-16px.png create mode 100644 doc/qtdesignstudio/images/icons/opacity-mask-16px.png create mode 100644 doc/qtdesignstudio/images/icons/radial-blur-16px.png create mode 100644 doc/qtdesignstudio/images/icons/zoom-blur-16px.png diff --git a/doc/qtdesignstudio/images/icons/blend-mode-16px.png b/doc/qtdesignstudio/images/icons/blend-mode-16px.png new file mode 100644 index 0000000000000000000000000000000000000000..8ec9736260ba419a3c4141acd34fef137c713bed GIT binary patch literal 299 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4rT@h1`S>QUeVY&tT=!A^o28LAnI4FSg~&1y7lYV@7uHI%!w0cPM$n>`ZQd@ zN*j((3=9k+B|(0{4BXr*DwUO&FW5Gp^;QfF3^|@Ijv*4^y?yRX z4F()68<#{R>u3D?@5?D+`|6IwEv7#TfyZ{Pdda@}azOggBWGrRPxY%^S$^d5WKTy= z`wf#WCOl$z0sI~P8VPO|&)R@SGeB|)e*=e3^O|3^#` YH+T!m7Db$AU|?YIboFyt=akR{09i4S$p8QV literal 0 HcmV?d00001 diff --git a/doc/qtdesignstudio/images/icons/brightness-contrast-16px.png b/doc/qtdesignstudio/images/icons/brightness-contrast-16px.png new file mode 100644 index 0000000000000000000000000000000000000000..76160da230378343ce69373c8bb4b4ce2d6b7e35 GIT binary patch literal 226 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdmW!d_r6q7#LQN0#@xxv}9ml z;4caC3ufTt6EKU*?3*%c>B;-ge-*Gz@MmCP2=a7s4B?PXPDuD*^F57=Ss>#tdy^{< zkI(P_|NZy>k8W(_K4CuL$Nq+c@<$S0{6AzMe`dnplLc~T68<0lAa^F=Z+pUlr4PCu k-g?M(Xl+9@S1}udLcQ0`Afwu23=9kmp00i_>zopr0N7DsWdHyG literal 0 HcmV?d00001 diff --git a/doc/qtdesignstudio/images/icons/colourize-16px.png b/doc/qtdesignstudio/images/icons/colourize-16px.png new file mode 100644 index 0000000000000000000000000000000000000000..b7532068447a9c08575cf040e14d89af34421a2a GIT binary patch literal 388 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7y**tVLo9lyUbf8+2^494 znC`@4FW|DpH&r!iiPyqbo-EUdj-yHn8#jE=U$OTeYj$p#B8QTgm|<(v#t9C~E`>}q z=}UMj-W2g9&Qq`0dDHCTi1fYPXYHQz$Shcu)zL1YI`hDTh7a5_2PF=xOupB!YFF=7 zmDjR6)*7}2Gq1|xn{RN?*5=iL+`ac#H@n&#^yz=9?pE8rq4oWb%k1ir^P~boxhwj9 z@3_eMli&EM*s3f!?TTqn!WPFK4wg9-H0k)-`en@Xk89T)nd>I~K&S4pzMRRvyNscw zY^Qr)R!xczE#=ZL6j#1;BvWV0oi}_Htm*}pC!ep{)p4jW#&^@Liu)=zbC}tBe=vT& zaU@$NukAZ;_@p(Z>04Jb&&j!Fsbl(E-`D(gt-+bFtClivUqtVil9H^y_3R!luGt&Pu-zY5Z=oZcLV_;xl@O1TaS?83{1OOX2s3-sc literal 0 HcmV?d00001 diff --git a/doc/qtdesignstudio/images/icons/desaturation-16px.png b/doc/qtdesignstudio/images/icons/desaturation-16px.png new file mode 100644 index 0000000000000000000000000000000000000000..23ce849b7240aa53e5cab2f2f783af97f3adfbdb GIT binary patch literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdqsCd_r6q7#LQdf{?klLKqkr zSWANZf*AzlJElumE8XB2+L=qJC-AedhZpJ=$f(-M2z1bkwFnGH9xvXPbQBQjV?XdA(C6}&(|4o& zHl;oL^ZZQO^e&^%TE_ZWf8$th9TZ-6qq}4JrOjcI6}_c74?e|r&fM95d{K>n;N;NG z<+@uZpF48q&XLmIhw)B{n&xnmy=V3uP87ee=(k{+(w@s{qcj-C6z^=XGT#mnAX8pr8(3@bbK)R}7Z7&z)D8M5W{Y`UMi^9oX_m?g!9P())mb$?Uwv?uWK1P+%#HP&$RAhU|?YI MboFyt=akR{0Kx!ds{jB1 literal 0 HcmV?d00001 diff --git a/doc/qtdesignstudio/images/icons/glow-16px.png b/doc/qtdesignstudio/images/icons/glow-16px.png new file mode 100644 index 0000000000000000000000000000000000000000..8adc9315bb9ba73634b5aa5a3136e140bfc9cded GIT binary patch literal 376 zcmeAS@N?(olHy`uVBq!ia0y~yVBlk5U=ZM7V_;xVo8o81z`$tl>EaloF|qgj#;mE1 z0!KgI|2|P8FsCUY(S&hzLVBhmON+)G_8D6I3(Odqqdcordw(%FCCE7lC~kFCDw}kz z!R%lNr<-!e**hC*;x0C(KA&Uz|L#q{;F*^Fp*;ri-{j(wm6g67ySc9MT_SV3&pP2X zZbwcB8yLTTT*=z^k?XzJ{UcmyUiKXw;<0IQhxL|y6kOc#!{o;yr`~E=`;9jqCpz9& zcMQ0%!&d%+(#4D>gqV>ep7i_n$W_YtGJF*UuFEvp-P0b-quc^!5)L#@|1x zDec?#^30x&-4!v{%BIiU{!y%U^53?@uk=my59;fD7u?vY`i94CSIFwtvJE1F(Xq*= z&RE_#kUB^AH~YQ^&Mq}_>9;>#Ihez|vTj>z!m0UN8`PQeYb9Q_v(0<7;39j)H-7`A jJ}$ex8cKZaJMVM+jQaIGJ3*6yfq}u()z4*}Q$iB}woavf literal 0 HcmV?d00001 diff --git a/doc/qtdesignstudio/images/icons/hue-saturation-16px.png b/doc/qtdesignstudio/images/icons/hue-saturation-16px.png new file mode 100644 index 0000000000000000000000000000000000000000..392d73c1a7baa02d96aa10e63a36bc8a6b4d36a0 GIT binary patch literal 371 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4rT@h1`S>QUxhj$1RVSe^~q=TlQ_&BI9*4 z-^zwz4t@e#?-P8I~$H(X5QR8Z~N`dc{6mJzi79qE;0XqC#bJ4G>p$`N~CGk zlSJkzQB1x3ChSIM8)9DaIxH0xc(c;<$=MajliAmLuJhYzopr0Lpo?%K!iX literal 0 HcmV?d00001 diff --git a/doc/qtdesignstudio/images/icons/mask-blur-16px.png b/doc/qtdesignstudio/images/icons/mask-blur-16px.png new file mode 100644 index 0000000000000000000000000000000000000000..46a223611ce415de5ae00f69fd7ff1c5c62822fe GIT binary patch literal 300 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7K6|=2hFJ7Yy{PEj;wW(J zz`7M*>jD3LSEr>(Q;hOgVlCdbM0hYTKU-*A&h>~`bHB?@M)&F>H1J^k+V z&J6~}Xa3AjFRQllOZ!&X|Fz?X&et=gj0L@-GS{W5WM4&BWLy&eqWtK!J>NRDN1-y) zW_2~3xpO#gb&ZuV!(pe~3u~_Oo;Xv>qxE2Nq|BVqHbtZ2#7zcYxo7U|JbvgwkjtLw z9iP|!S+Qu(jG2#rSS#6OH8gW2mY%J8CTWbUXEJ$mwP(v#EJH| zA6s8FX6@*Rj(M>B(GSk&p$^QFNz&!LN_!r$S-<`MgLU2y+lB4V+e{c37#KWV{an^L HB{Ts5YtM)p literal 0 HcmV?d00001 diff --git a/doc/qtdesignstudio/images/icons/opacity-mask-16px.png b/doc/qtdesignstudio/images/icons/opacity-mask-16px.png new file mode 100644 index 0000000000000000000000000000000000000000..10fb5b119a34d40867118379e1779beef88c8b52 GIT binary patch literal 150 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdqsCd_r6q7#LQpSaI>}*}c1W zLm0v$3%SNiJNoka3}c8^eV2 vTuBlPl0F(r89a`TjvUOA2V4)ZF)=jH7fyN9QUggMpn7PE|nYC!?rp;SU-hck%*Y7`HpNeZRFfg=wx;TbN zgs1kO7HTqJI1==Mb;VMpOI^?Y+h2D6xTyNfnR983FM{H(&#}syby7E&`GQW=BZDK0 zyqSHh*!bKJtq?A;V(Pax$a3Gra^p3hli|eP1HSnVCY!AseqTxFZeGu&x9U09Cc(6; zJHsZa);MY`v%0)q=&waRwI`Om(w|JVJU^MA{8%;azJ*z{YRfq{X+)78&qol`;+ E05I*Ez5oCK literal 0 HcmV?d00001 diff --git a/doc/qtdesignstudio/images/icons/zoom-blur-16px.png b/doc/qtdesignstudio/images/icons/zoom-blur-16px.png new file mode 100644 index 0000000000000000000000000000000000000000..ee5f40a7285b66e39b761da00b9d5398d2fa4a89 GIT binary patch literal 325 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7c|2VlLo9lyUf!?Q5-7m> z;eJ;~k>-sF9BbQ-%nu5Q5=j!88YJR$WmEowZ)}fMJJcgOSF|?0*b>5ZU#(_$x%skP z#m~;nELNY{=9Kb`<=sXRL3!1C9xEG?&pgava9?at%X2>Cp(wZD$FK72zeA1BB&>h3 zK&8M)MV~w6nO0cVhp4n`8y7VnKD1%qkNK);&n)g;cysu#gSL_#yXB34S8JpMd*dh1 zzOi!kH(?18+pia+_B9&YJY0AvZ$r0c43F@Pqq#13${RZ>4tl4Zdz>}nfHt2|v2eNI z#gk`Ta}qbL;uqO*tn#a!EBosmYc`yg+MnK;Yg4v=^32n9d|s{FUo+VrpEC1om&A-? g)mdKI;Vst04zq26#xJL literal 0 HcmV?d00001 diff --git a/doc/qtdesignstudio/src/qtdesignstudio-visual-effects.qdocinc b/doc/qtdesignstudio/src/qtdesignstudio-visual-effects.qdocinc index 8683539cacb..d477c661741 100644 --- a/doc/qtdesignstudio/src/qtdesignstudio-visual-effects.qdocinc +++ b/doc/qtdesignstudio/src/qtdesignstudio-visual-effects.qdocinc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2019 The Qt Company Ltd. +** Copyright (C) 2020 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Design Studio documentation. @@ -30,20 +30,19 @@ \QDS provides a set of Qt Quick Studio effects that inherit the types in the \l {Qt Graphical Effects} module. To apply a visual effect to a component, - you must place the component inside the effect. First drag-and-drop an - effect from \uicontrol Library > \uicontrol Effects to the the - \uicontrol {Form Editor} or the \uicontrol Navigator, and then drag-and-drop - the component to the effect. For some effects, you need two source - components. + drag-and-drop it from \uicontrol Library > \uicontrol Effects to the + component in \uicontrol Navigator. The following table summarizes the available effects and contains links to the documentation of the inherited QML type. \table \header + \li Icon \li Qt Quick Studio Effect \li Description \row + \li \inlineimage icons/blend-mode-16px.png \li \l [QML] {Blend} \li Merges two source components by using a blend mode. @@ -54,34 +53,44 @@ For a list of possible values and examples of their use, see \l{Blend::mode}{Blend.mode}. \row + \li \inlineimage icons/fast-blur-16px.png \li \l {FastBlur}{Blur} \li Applies a fast blur effect to one or more source components. \row + \li \inlineimage icons/brightness-contrast-16px.png \li \l {BrightnessContrast}{Brightness Contrast} \li Adjusts brightness and contrast. \row + \li \inlineimage icons/colourize-16px.png \li \l {ColorOverlay}{Color Overlay} \li Alters the colors of the source component by applying an overlay color. \row + \li \inlineimage icons/colourize-16px.png \li \l Colorize \li Sets the color in the HSL color space. \row + \li \inlineimage icons/directional-blur-16px.png \li \l {DirectionalBlur}{Directional Blur} \li Applies blur effect to the specified direction. \row + \li \inlineimage icons/drop-shadow-16px.png \li \l {DropShadow}{Drop Shadow} \li Generates a soft shadow behind the source component. \row + \li \inlineimage icons/glow-16px.png \li \l [QML] {Glow} \li Generates a halo-like glow around the source component. \row + \li \inlineimage icons/hue-saturation-16px.png \li \l {HueSaturation}{Hue Saturation} \li Alters the source component colors in the HSL color space. \row + \li \inlineimage icons/opacity-mask-16px.png \li \l {OpacityMask}{Mask} \li Masks the source component with another component. \row + \li \inlineimage icons/mask-blur-16px.png \li \l {MaskedBlur}{Masked Blur} \li Applies a blur effect with a varying intesity. The \l GradientStop type is used to specify the color used at a @@ -89,13 +98,16 @@ The default positions for the stops are 0.20, 0.50, 0.80, and 1.00. The default color is black. \row + \li \inlineimage icons/radial-blur-16px.png \li \l {RadialBlur}{Radial Blur} \li Applies directional blur in a circular direction around the component's center point. \row + \li \inlineimage icons/desaturation-16px.png \li \l {Desaturate}{Saturation} \li Reduces the saturation of the colors. \row + \li \inlineimage icons/zoom-blur-16px.png \li \l {ZoomBlur}{Zoom Blur} \li Applies directional blur effect towards source component's center point. From 3680d6aa5c9ca991346d72ac4f5d030dd5e2e3c4 Mon Sep 17 00:00:00 2001 From: Johanna Vanhatapio Date: Mon, 23 Nov 2020 14:58:52 +0200 Subject: [PATCH 14/18] Doc: Update Editing 3D Assets in Design Mode Fixes: QDS-3105 Change-Id: I7ddbe2330c30c2bd8c5630bb499c64b7366e406a Reviewed-by: Leena Miettinen --- .../images/studio-editing-3d-scenes.png | Bin 87606 -> 46797 bytes .../qtdesignstudio-3d-design-mode.qdoc | 18 ++++++++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/doc/qtdesignstudio/images/studio-editing-3d-scenes.png b/doc/qtdesignstudio/images/studio-editing-3d-scenes.png index f5b29439a79fb75f62c22e1381ecd0f435a70612..8566b6171cf2cc7f3c164b0516f5e3b4248a5e76 100644 GIT binary patch literal 46797 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 literal 87606 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

\uicontrol Views: \list \li \uicontrol {3D Editor} (1) is the working area where you create the - scene, position the model, light and camera, as well as move and - scale items. For more information, see \l {Working in 3D Editor}. + scene, position the model, light and camera, as well as move, rotate + and scale items. For more information, see + \l {Working in 3D Editor}. \li \uicontrol {Form Editor} (2) is where you see the scene projected by the camera. \li \uicontrol {Library} (3) displays the building blocks that you @@ -60,14 +61,19 @@ file as a tree structure. For more information, see \l {Managing Item Hierarchy}. \li \uicontrol {Properties} (5) organizes the properties of the - selected item. You can change the properties also in the - \uicontrol {Text Editor}. For more information, see + selected item. You can change the properties also in \uicontrol + {Text Editor}. For more information, see \l {Specifying Item Properties}. \li \uicontrol Connections (6) enables you to create connections between objects, signals, and object properties. For more information, see \l{Adding Connections}. - \li \uicontrol Timeline (7) provides a timeline and keyframe based + \li \uicontrol States displays the different states of the item. QML + states typically describe user interface configurations, such as the + UI controls, their properties and behavior and the available + actions. For more information, see \l {Adding States}. + \li \uicontrol Timeline provides a timeline and keyframe based editor that enables you to animate the properties of components. + For more information, see \l {Creating Animations}. \endlist For more information on other views, see From b40dcf6d2968fe2dd542a24702a6d52eefbd80eb Mon Sep 17 00:00:00 2001 From: David Schulz Date: Wed, 25 Nov 2020 14:54:19 +0100 Subject: [PATCH 15/18] ClangTools: Fix crash in document tool runner Prevent removing refactor markers from already destroyed widgets. Fixes: QTCREATORBUG-24982 Change-Id: Icf8950f8f8407fa8733a1ef30d05abb4a2b44dd4 Reviewed-by: Christian Stenger --- .../clangtools/documentclangtoolrunner.cpp | 19 +++++++++++++------ .../clangtools/documentclangtoolrunner.h | 2 +- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/plugins/clangtools/documentclangtoolrunner.cpp b/src/plugins/clangtools/documentclangtoolrunner.cpp index 9e2b388e5da..0f5e4da958b 100644 --- a/src/plugins/clangtools/documentclangtoolrunner.cpp +++ b/src/plugins/clangtools/documentclangtoolrunner.cpp @@ -105,15 +105,21 @@ Diagnostics DocumentClangToolRunner::diagnosticsAtLine(int lineNumber) const return diagnostics; } +static void removeClangToolRefactorMarkers(TextEditor::TextEditorWidget *editor) +{ + if (!editor) + return; + editor->setRefactorMarkers( + TextEditor::RefactorMarker::filterOutType(editor->refactorMarkers(), + Constants::CLANG_TOOL_FIXIT_AVAILABLE_MARKER_ID)); +} + void DocumentClangToolRunner::scheduleRun() { for (DiagnosticMark *mark : m_marks) mark->disable(); - for (TextEditor::TextEditorWidget *editor : m_editorsWithMarkers) { - editor->setRefactorMarkers( - TextEditor::RefactorMarker::filterOutType(editor->refactorMarkers(), - Constants::CLANG_TOOL_FIXIT_AVAILABLE_MARKER_ID)); - } + for (TextEditor::TextEditorWidget *editor : m_editorsWithMarkers) + removeClangToolRefactorMarkers(editor); m_runTimer.start(); } @@ -325,7 +331,8 @@ void DocumentClangToolRunner::onSuccess() for (auto editor : TextEditor::BaseTextEditor::textEditorsForDocument(doc)) { if (TextEditor::TextEditorWidget *widget = editor->editorWidget()) { widget->setRefactorMarkers(markers + widget->refactorMarkers()); - m_editorsWithMarkers << widget; + if (!m_editorsWithMarkers.contains(widget)) + m_editorsWithMarkers << widget; } } diff --git a/src/plugins/clangtools/documentclangtoolrunner.h b/src/plugins/clangtools/documentclangtoolrunner.h index 4cf8f25308e..faec3ca8e7e 100644 --- a/src/plugins/clangtools/documentclangtoolrunner.h +++ b/src/plugins/clangtools/documentclangtoolrunner.h @@ -83,7 +83,7 @@ private: QList m_marks; FileInfo m_fileInfo; QMetaObject::Connection m_projectSettingsUpdate; - QSet m_editorsWithMarkers; + QList> m_editorsWithMarkers; SuppressedDiagnosticsList m_suppressed; Utils::FilePath m_lastProjectDirectory; }; From 786c131beb49152f76c570df49f5d514e8110205 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Thu, 26 Nov 2020 08:57:30 +0100 Subject: [PATCH 16/18] ClangTools: compare file names host os case sensitive Change-Id: I31b889ca5e722bd565bde9b742e24da39151e8bc Reviewed-by: Christian Stenger --- .../clangtools/documentclangtoolrunner.cpp | 21 +++++++------------ 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/src/plugins/clangtools/documentclangtoolrunner.cpp b/src/plugins/clangtools/documentclangtoolrunner.cpp index 0f5e4da958b..1b3bf945394 100644 --- a/src/plugins/clangtools/documentclangtoolrunner.cpp +++ b/src/plugins/clangtools/documentclangtoolrunner.cpp @@ -150,22 +150,17 @@ static FileInfo getFileInfo(const Utils::FilePath &file, ProjectExplorer::Projec QTC_ASSERT(projectFile.kind != CppTools::ProjectFile::Unsupported, continue); if (projectFile.path == CppTools::CppModelManager::configurationFileName()) continue; - if (file.toString() != projectFile.path) + const auto projectFilePath = Utils::FilePath::fromString(projectFile.path); + if (file != projectFilePath) continue; if (!projectFile.active) continue; - if (projectPart->buildTargetType != ProjectExplorer::BuildTargetType::Unknown) { - // found the best candidate, early return - return FileInfo(Utils::FilePath::fromString(projectFile.path), - projectFile.kind, - projectPart); - } - if (candidate.projectPart.isNull()) { - // found at least something but keep looking for better candidates - candidate = FileInfo(Utils::FilePath::fromString(projectFile.path), - projectFile.kind, - projectPart); - } + // found the best candidate, early return + if (projectPart->buildTargetType != ProjectExplorer::BuildTargetType::Unknown) + return FileInfo(projectFilePath, projectFile.kind, projectPart); + // found something but keep looking for better candidates + if (candidate.projectPart.isNull()) + candidate = FileInfo(projectFilePath, projectFile.kind, projectPart); } } From 0ce92b3ac7f9ca93259471c3887b6bfc624fde61 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 25 Nov 2020 10:25:08 +0100 Subject: [PATCH 17/18] Debugger: Adapt QXmlAttributes dumper to Qt6 Task-number: QTCREATORBUG-24098 Change-Id: I67ee0fae1308d20b474fe0dd565b46d2a83dd5e3 Reviewed-by: David Schulz --- share/qtcreator/debugger/qttypes.py | 9 +++++---- tests/auto/debugger/tst_dumpers.cpp | 3 ++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/share/qtcreator/debugger/qttypes.py b/share/qtcreator/debugger/qttypes.py index cff834aa235..b9cac650653 100644 --- a/share/qtcreator/debugger/qttypes.py +++ b/share/qtcreator/debugger/qttypes.py @@ -2202,10 +2202,11 @@ def qdump__QXmlAttributes__Attribute(d, value): def qdump__QXmlAttributes(d, value): - (vptr, atts) = value.split('pP') - innerType = d.createType(d.qtNamespace() + 'QXmlAttributes::Attribute', 4 * d.ptrSize()) - val = d.createListItem(atts, innerType) - qdumpHelper_QList(d, val, innerType) + vptr, atts = value.split('p{QList}') + _, att_size, _ = d.describeStruct('{QString}' * 4) + innerType = d.createType(d.qtNamespace() + 'QXmlAttributes::Attribute', + att_size) + qdumpHelper_QList(d, atts, innerType) def qdump__QXmlStreamStringRef(d, value): diff --git a/tests/auto/debugger/tst_dumpers.cpp b/tests/auto/debugger/tst_dumpers.cpp index 9adf8543c33..aed514301f7 100644 --- a/tests/auto/debugger/tst_dumpers.cpp +++ b/tests/auto/debugger/tst_dumpers.cpp @@ -1050,7 +1050,8 @@ public: { this->operator+(CoreProfile()); profileExtra += - " QT += xml\n"; + "greaterThan(QT_MAJOR_VERSION, 5): QT += core5compat\n" + "else: QT += xml\n"; cmakelistsExtra += "find_package(Qt5 COMPONENTS Core Xml REQUIRED)\n" From d31f2219fda1a96e755b96621443df64ec5bd2a1 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Thu, 26 Nov 2020 09:53:04 +0100 Subject: [PATCH 18/18] Tests: Fix QString dumper test on Windows Partially reverts 93fedb2c9. Change-Id: I82c40c41a2d3e72774f046f91845fe2dc0745aad Reviewed-by: hjk --- share/qtcreator/debugger/qttypes.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/share/qtcreator/debugger/qttypes.py b/share/qtcreator/debugger/qttypes.py index b9cac650653..e6e501a309e 100644 --- a/share/qtcreator/debugger/qttypes.py +++ b/share/qtcreator/debugger/qttypes.py @@ -1674,9 +1674,9 @@ def qdump__QStaticStringData(d, value): d.putPlainChildren(value) -#def qdump__QTypedArrayData(d, value): -# if value.type[0].name == 'unsigned short': -# qdump__QStringData(d, value) +def qdump__QTypedArrayData(d, value): + if value.type[0].name == 'unsigned short': + qdump__QStringData(d, value) # else: # qdump__QArrayData(d, value)

gHxBbF8R0R&Fur0hnY$ZJmnR+Capa< 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