forked from qt-creator/qt-creator
Merge commit 'origin/7.0'
Change-Id: I90148816d32c81b9fef982b5010c785161d83097
This commit is contained in:
@@ -472,6 +472,8 @@ class Dumper(DumperBase):
|
|||||||
tdata.code = TypeCode.Void
|
tdata.code = TypeCode.Void
|
||||||
elif typeName == 'wchar_t':
|
elif typeName == 'wchar_t':
|
||||||
tdata.code = TypeCode.Integral
|
tdata.code = TypeCode.Integral
|
||||||
|
elif typeName in ("char16_t", "char32_t", "char8_t"):
|
||||||
|
tdata.code = TypeCode.Integral
|
||||||
else:
|
else:
|
||||||
self.warn('UNKNOWN TYPE KEY: %s: %s' % (typeName, code))
|
self.warn('UNKNOWN TYPE KEY: %s: %s' % (typeName, code))
|
||||||
elif code == lldb.eTypeClassEnumeration:
|
elif code == lldb.eTypeClassEnumeration:
|
||||||
|
@@ -643,7 +643,7 @@ def qdump__std____1__map(d, value):
|
|||||||
|
|
||||||
with Children(d, size, maxNumChild=1000):
|
with Children(d, size, maxNumChild=1000):
|
||||||
for (i, pair) in zip(d.childRange(), in_order_traversal(head)):
|
for (i, pair) in zip(d.childRange(), in_order_traversal(head)):
|
||||||
d.putPairItem(i, pair, 'key', 'value')
|
d.putPairItem(i, pair)
|
||||||
|
|
||||||
|
|
||||||
def qform__std____1__multimap():
|
def qform__std____1__multimap():
|
||||||
@@ -1293,9 +1293,9 @@ def qform__std____cxx11__wstring():
|
|||||||
|
|
||||||
def qdump__std____1__basic_string(d, value):
|
def qdump__std____1__basic_string(d, value):
|
||||||
innerType = value.type[0].name
|
innerType = value.type[0].name
|
||||||
if innerType == "char":
|
if innerType in ("char", "char8_t", "char16_t"):
|
||||||
qdump__std____1__string(d, value)
|
qdump__std____1__string(d, value)
|
||||||
elif innerType == "wchar_t":
|
elif innerType in ("wchar_t", "char32_t"):
|
||||||
qdump__std____1__wstring(d, value)
|
qdump__std____1__wstring(d, value)
|
||||||
else:
|
else:
|
||||||
d.warn("UNKNOWN INNER TYPE %s" % innerType)
|
d.warn("UNKNOWN INNER TYPE %s" % innerType)
|
||||||
|
@@ -670,6 +670,11 @@ WelcomeMode::WelcomeMode()
|
|||||||
|
|
||||||
m_modeWidget->engine()->setOutputWarningsToStandardError(false);
|
m_modeWidget->engine()->setOutputWarningsToStandardError(false);
|
||||||
|
|
||||||
|
connect(Core::ModeManager::instance(), &Core::ModeManager::currentModeChanged, this, [this](Utils::Id mode){
|
||||||
|
bool active = (mode == Core::Constants::MODE_WELCOME);
|
||||||
|
m_modeWidget->rootObject()->setProperty("active", active);
|
||||||
|
});
|
||||||
|
|
||||||
if (!useNewWelcomePage()) {
|
if (!useNewWelcomePage()) {
|
||||||
|
|
||||||
#ifdef QT_DEBUG
|
#ifdef QT_DEBUG
|
||||||
|
@@ -5301,7 +5301,9 @@ void tst_Dumpers::dumper_data()
|
|||||||
<< Data("#include <vector>\n"
|
<< Data("#include <vector>\n"
|
||||||
"#include <list>\n"
|
"#include <list>\n"
|
||||||
"template<class T>\n"
|
"template<class T>\n"
|
||||||
"class myallocator : public std::allocator<T> {};\n",
|
"class myallocator : public std::allocator<T> {\n"
|
||||||
|
"using std::allocator<T>::allocator;\n"
|
||||||
|
"};\n",
|
||||||
|
|
||||||
"std::vector<double> v0, v1;\n"
|
"std::vector<double> v0, v1;\n"
|
||||||
"v1.push_back(1);\n"
|
"v1.push_back(1);\n"
|
||||||
|
@@ -63,10 +63,7 @@ Fifth - you'll have to make sure that some needed tools are available (no matter
|
|||||||
* wget or curl, capable of HTTPS
|
* wget or curl, capable of HTTPS
|
||||||
Normally it should be okay to just install them as usual and add their executables' path(s) to the PATH variable.
|
Normally it should be okay to just install them as usual and add their executables' path(s) to the PATH variable.
|
||||||
|
|
||||||
Sixth - Qt Creator must be built on a Qt without Qt WebEngine or Qt WebKit. Its ClangCodeModel
|
Sixth - Qt Creator must be built on a Qt without Qt WebEngine or Qt WebKit.
|
||||||
plugin should be linked to LLVM/Clang 7.0.0 or later. How to do so, see QTCREATOR_REPO/README.md.
|
|
||||||
With a lower version, the tests for the ClangCodeModel might fail. Without the plugin, the tests for
|
|
||||||
the ClangCodeModel will be skipped but will not cause failures.
|
|
||||||
|
|
||||||
On macOS make sure you are using the correct keyboard layout to avoid problems when using keyboard interaction. Tested and known to be
|
On macOS make sure you are using the correct keyboard layout to avoid problems when using keyboard interaction. Tested and known to be
|
||||||
working would be 'U.S. International - PC', while pure 'U.S.' had problems.
|
working would be 'U.S. International - PC', while pure 'U.S.' had problems.
|
||||||
|
@@ -167,7 +167,6 @@
|
|||||||
:Qt Creator_Utils::BuildDirectoryLineEdit {name='LineEdit' type='Utils::FancyLineEdit' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
:Qt Creator_Utils::BuildDirectoryLineEdit {name='LineEdit' type='Utils::FancyLineEdit' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
||||||
:Qt Creator_Utils::NavigationTreeView {type='Utils::NavigationTreeView' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
:Qt Creator_Utils::NavigationTreeView {type='Utils::NavigationTreeView' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
||||||
:Qt Creator_Utils::NavigationTreeView::QExpandingLineEdit {container=':Qt Creator_Utils::NavigationTreeView' type='QExpandingLineEdit' unnamed='1' visible='1'}
|
:Qt Creator_Utils::NavigationTreeView::QExpandingLineEdit {container=':Qt Creator_Utils::NavigationTreeView' type='QExpandingLineEdit' unnamed='1' visible='1'}
|
||||||
:QtSupport__Internal__QtVersionManager.QLabel {container=':qt_tabwidget_stackedwidget_QScrollArea' text?='Qt version *' type='QLabel' unnamed='1' visible='1'}
|
|
||||||
:QtSupport__Internal__QtVersionManager.errorLabel.QLabel {container=':qt_tabwidget_stackedwidget.QtSupport__Internal__QtVersionManager_QtSupport::Internal::QtOptionsPageWidget' name='errorLabel' type='QLabel' visible='1'}
|
:QtSupport__Internal__QtVersionManager.errorLabel.QLabel {container=':qt_tabwidget_stackedwidget.QtSupport__Internal__QtVersionManager_QtSupport::Internal::QtOptionsPageWidget' name='errorLabel' type='QLabel' visible='1'}
|
||||||
:QtSupport__Internal__QtVersionManager.qmake_QLabel {container=':qt_tabwidget_stackedwidget.QtSupport__Internal__QtVersionManager_QtSupport::Internal::QtOptionsPageWidget' name='qmakePath' type='QLabel' visible='1'}
|
:QtSupport__Internal__QtVersionManager.qmake_QLabel {container=':qt_tabwidget_stackedwidget.QtSupport__Internal__QtVersionManager_QtSupport::Internal::QtOptionsPageWidget' name='qmakePath' type='QLabel' visible='1'}
|
||||||
:QtVersionLabel_KitPage {container=':qt_tabwidget_stackedwidget_QWidget' text='Qt version:' type='QLabel' unnamed='1' visible='1'}
|
:QtVersionLabel_KitPage {container=':qt_tabwidget_stackedwidget_QWidget' text='Qt version:' type='QLabel' unnamed='1' visible='1'}
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
############################################################################
|
############################################################################
|
||||||
#
|
#
|
||||||
# Copyright (C) 2016 The Qt Company Ltd.
|
# Copyright (C) 2022 The Qt Company Ltd.
|
||||||
# Contact: https://www.qt.io/licensing/
|
# Contact: https://www.qt.io/licensing/
|
||||||
#
|
#
|
||||||
# This file is part of Qt Creator.
|
# This file is part of Qt Creator.
|
||||||
@@ -347,10 +347,6 @@ def __checkParentAccess__(filePath):
|
|||||||
# options dialog and returns a dict holding the kits as keys
|
# options dialog and returns a dict holding the kits as keys
|
||||||
# and a list of information of its configured Qt
|
# and a list of information of its configured Qt
|
||||||
def getConfiguredKits():
|
def getConfiguredKits():
|
||||||
def __retrieveQtVersionName__(target, version):
|
|
||||||
treeView = waitForObject(":qtdirList_QTreeView")
|
|
||||||
return str(treeView.currentIndex().data().toString())
|
|
||||||
# end of internal function for iterateQtVersions
|
|
||||||
def __setQtVersionForKit__(kit, kitName, kitsQtVersionName):
|
def __setQtVersionForKit__(kit, kitName, kitsQtVersionName):
|
||||||
mouseClick(waitForObjectItem(":BuildAndRun_QTreeView", kit))
|
mouseClick(waitForObjectItem(":BuildAndRun_QTreeView", kit))
|
||||||
qtVersionStr = str(waitForObjectExists(":Kits_QtVersion_QComboBox").currentText)
|
qtVersionStr = str(waitForObjectExists(":Kits_QtVersion_QComboBox").currentText)
|
||||||
@@ -361,18 +357,15 @@ def getConfiguredKits():
|
|||||||
# end of internal function for iterate kits
|
# end of internal function for iterate kits
|
||||||
|
|
||||||
kitsWithQtVersionName = {}
|
kitsWithQtVersionName = {}
|
||||||
result = {}
|
result = []
|
||||||
# collect kits and their Qt versions
|
# collect kits and their Qt versions
|
||||||
targetsQtVersions, qtVersionNames = iterateQtVersions(True, False, __retrieveQtVersionName__)
|
qtVersionNames = iterateQtVersions()
|
||||||
# update collected Qt versions with their configured device and version
|
# update collected Qt versions with their configured device and version
|
||||||
iterateKits(True, True, __setQtVersionForKit__, kitsWithQtVersionName)
|
iterateKits(False, True, __setQtVersionForKit__, kitsWithQtVersionName)
|
||||||
# merge defined target names with their configured Qt versions and devices
|
# merge defined target names with their configured Qt versions and devices
|
||||||
for kit, qtVersion in kitsWithQtVersionName.iteritems():
|
for kit, qtVersion in kitsWithQtVersionName.iteritems():
|
||||||
if kit in ('Fremantle', 'Harmattan', 'Qt Simulator'):
|
if qtVersion in qtVersionNames:
|
||||||
test.verify(qtVersion == 'None',
|
result.append(kit)
|
||||||
"The outdated kit '%s' should not have a Qt version" % kit)
|
|
||||||
elif qtVersion in qtVersionNames:
|
|
||||||
result[kit] = targetsQtVersions[qtVersionNames.index(qtVersion)].items()[0]
|
|
||||||
else:
|
else:
|
||||||
test.fail("Qt version '%s' for kit '%s' can't be found in qtVersionNames."
|
test.fail("Qt version '%s' for kit '%s' can't be found in qtVersionNames."
|
||||||
% (qtVersion, kit))
|
% (qtVersion, kit))
|
||||||
@@ -400,35 +393,14 @@ def regexVerify(text, expectedTexts):
|
|||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
# function that opens Options Dialog and parses the configured Qt versions
|
# function that opens Options Dialog and parses the configured Qt versions
|
||||||
# param keepOptionsOpen set to True if the Options dialog should stay open when
|
# the function returns a list of the found Qt versions
|
||||||
# leaving this function
|
def iterateQtVersions():
|
||||||
# param alreadyOnOptionsDialog set to True if you already have opened the Options Dialog
|
qtVersionNames = []
|
||||||
# (if False this function will open it via the MenuBar -> Tools -> Options...)
|
|
||||||
# param additionalFunction pass a function or name of a defined function to execute
|
|
||||||
# for each correctly configured item on the list of Qt versions
|
|
||||||
# (Qt versions having no assigned toolchain, failing qmake,... will be skipped)
|
|
||||||
# this function must take at least 2 parameters - the first is the target name
|
|
||||||
# and the second the version of the current selected Qt version item
|
|
||||||
# param argsForAdditionalFunc you can specify as much parameters as you want to pass
|
|
||||||
# to additionalFunction from the outside
|
|
||||||
# the function returns a list of dict holding target-version mappings if used without
|
|
||||||
# additionalFunction
|
|
||||||
# WATCH OUT! if you're using the additionalFunction parameter - this function will
|
|
||||||
# return the list mentioned above as well as the returned value(s) from
|
|
||||||
# additionalFunction. You MUST call this function like
|
|
||||||
# result, additionalResult = _iterateQtVersions(...)
|
|
||||||
# where additionalResult is the result of all executions of additionalFunction which
|
|
||||||
# means it is a list of results.
|
|
||||||
def iterateQtVersions(keepOptionsOpen=False, alreadyOnOptionsDialog=False,
|
|
||||||
additionalFunction=None, *argsForAdditionalFunc):
|
|
||||||
result = []
|
|
||||||
additionalResult = []
|
|
||||||
if not alreadyOnOptionsDialog:
|
|
||||||
invokeMenuItem("Tools", "Options...")
|
invokeMenuItem("Tools", "Options...")
|
||||||
mouseClick(waitForObjectItem(":Options_QListView", "Kits"))
|
mouseClick(waitForObjectItem(":Options_QListView", "Kits"))
|
||||||
clickOnTab(":Options.qt_tabwidget_tabbar_QTabBar", "Qt Versions")
|
clickOnTab(":Options.qt_tabwidget_tabbar_QTabBar", "Qt Versions")
|
||||||
pattern = re.compile("Qt version (?P<version>.*?) for (?P<target>.*)")
|
|
||||||
treeView = waitForObject(":qtdirList_QTreeView")
|
treeView = waitForObject(":qtdirList_QTreeView")
|
||||||
model = treeView.model()
|
model = treeView.model()
|
||||||
for rootIndex in dumpIndices(model):
|
for rootIndex in dumpIndices(model):
|
||||||
@@ -437,51 +409,28 @@ def iterateQtVersions(keepOptionsOpen=False, alreadyOnOptionsDialog=False,
|
|||||||
subChildText = str(subIndex.data()).replace(".", "\\.").replace("_", "\\_")
|
subChildText = str(subIndex.data()).replace(".", "\\.").replace("_", "\\_")
|
||||||
treeView.scrollTo(subIndex)
|
treeView.scrollTo(subIndex)
|
||||||
mouseClick(waitForObjectItem(treeView, ".".join([rootChildText, subChildText])))
|
mouseClick(waitForObjectItem(treeView, ".".join([rootChildText, subChildText])))
|
||||||
currentText = str(waitForObject(":QtSupport__Internal__QtVersionManager.QLabel").text)
|
qtVersionNames.append(str(treeView.currentIndex().data().toString()))
|
||||||
matches = pattern.match(currentText)
|
return qtVersionNames
|
||||||
if matches:
|
|
||||||
target = matches.group("target").strip()
|
|
||||||
version = matches.group("version").strip()
|
|
||||||
result.append({target:version})
|
|
||||||
if additionalFunction:
|
|
||||||
try:
|
|
||||||
if isString(additionalFunction):
|
|
||||||
currResult = globals()[additionalFunction](target, version, *argsForAdditionalFunc)
|
|
||||||
else:
|
|
||||||
currResult = additionalFunction(target, version, *argsForAdditionalFunc)
|
|
||||||
except:
|
|
||||||
t,v,_ = sys.exc_info()
|
|
||||||
currResult = None
|
|
||||||
test.fatal("Function to additionally execute on Options Dialog could not be found or "
|
|
||||||
"an exception occurred while executing it.", "%s(%s)" % (str(t), str(v)))
|
|
||||||
additionalResult.append(currResult)
|
|
||||||
if not keepOptionsOpen:
|
|
||||||
clickButton(waitForObject(":Options.Cancel_QPushButton"))
|
|
||||||
if additionalFunction:
|
|
||||||
return result, additionalResult
|
|
||||||
else:
|
|
||||||
return result
|
|
||||||
|
|
||||||
# function that opens Options Dialog (if necessary) and parses the configured Kits
|
# function that opens Options Dialog (if necessary) and parses the configured Kits
|
||||||
# param keepOptionsOpen set to True if the Options dialog should stay open when
|
# param clickOkWhenDone set to True if the Options dialog should be closed by clicking the
|
||||||
# leaving this function
|
# "OK" button. If False, the dialog will stay open
|
||||||
# param alreadyOnOptionsDialog set to True if you already have opened the Options Dialog
|
# param alreadyOnOptionsDialog set to True if you already have opened the Options Dialog
|
||||||
# (if False this functions will open it via the MenuBar -> Tools -> Options...)
|
# (if False this function will open it via the MenuBar -> Tools -> Options...)
|
||||||
# param additionalFunction pass a function or name of a defined function to execute
|
# param additionalFunction pass a function or name of a defined function to execute
|
||||||
# for each configured item on the list of Kits
|
# for each configured item on the list of Kits
|
||||||
# this function must take at least 2 parameters - the first is the item (QModelIndex)
|
# this function must take at least 2 parameters - the first is the full string
|
||||||
# of the current Kit (if you need to click on it) and the second the Kit name itself
|
# of the kit which can be used in waitForObjectItem(), the second the Kit name itself
|
||||||
# param argsForAdditionalFunc you can specify as much parameters as you want to pass
|
# param argsForAdditionalFunc you can specify as many parameters as you want to pass
|
||||||
# to additionalFunction from the outside
|
# to additionalFunction from the outside
|
||||||
# the function returns a list of Kit names if used without an additional function
|
# this function will return a list of Kit names as well as the returned value(s) from
|
||||||
# WATCH OUT! if you're using the additionalFunction parameter - this function will
|
|
||||||
# return the list mentioned above as well as the returned value(s) from
|
|
||||||
# additionalFunction. You MUST call this function like
|
# additionalFunction. You MUST call this function like
|
||||||
# result, additionalResult = _iterateQtVersions(...)
|
# result, additionalResult = iterateKits(...)
|
||||||
# where additionalResult is the result of all executions of additionalFunction which
|
# where additionalResult is the result of all executions of additionalFunction which
|
||||||
# means it is a list of results.
|
# means it is a list of results.
|
||||||
def iterateKits(keepOptionsOpen=False, alreadyOnOptionsDialog=False,
|
def iterateKits(clickOkWhenDone, alreadyOnOptionsDialog,
|
||||||
additionalFunction=None, *argsForAdditionalFunc):
|
additionalFunction, *argsForAdditionalFunc):
|
||||||
result = []
|
result = []
|
||||||
additionalResult = []
|
additionalResult = []
|
||||||
if not alreadyOnOptionsDialog:
|
if not alreadyOnOptionsDialog:
|
||||||
@@ -498,17 +447,11 @@ def iterateKits(keepOptionsOpen=False, alreadyOnOptionsDialog=False,
|
|||||||
test.compare(manual.data().toString(), "Manual", "Verifying label for target section")
|
test.compare(manual.data().toString(), "Manual", "Verifying label for target section")
|
||||||
for section in [autoDetected, manual]:
|
for section in [autoDetected, manual]:
|
||||||
for currentItem in dumpItems(model, section):
|
for currentItem in dumpItems(model, section):
|
||||||
kitName = currentItem
|
kitName = currentItem.rsplit(" (default)", 1)[0]
|
||||||
if (kitName.endswith(" (default)")):
|
|
||||||
kitName = kitName.rsplit(" (default)", 1)[0]
|
|
||||||
result.append(kitName)
|
result.append(kitName)
|
||||||
|
try:
|
||||||
item = ".".join([str(section.data().toString()),
|
item = ".".join([str(section.data().toString()),
|
||||||
currentItem.replace(".", "\\.")])
|
currentItem.replace(".", "\\.")])
|
||||||
if additionalFunction:
|
|
||||||
try:
|
|
||||||
if isString(additionalFunction):
|
|
||||||
currResult = globals()[additionalFunction](item, kitName, *argsForAdditionalFunc)
|
|
||||||
else:
|
|
||||||
currResult = additionalFunction(item, kitName, *argsForAdditionalFunc)
|
currResult = additionalFunction(item, kitName, *argsForAdditionalFunc)
|
||||||
except:
|
except:
|
||||||
t, v, _ = sys.exc_info()
|
t, v, _ = sys.exc_info()
|
||||||
@@ -517,12 +460,9 @@ def iterateKits(keepOptionsOpen=False, alreadyOnOptionsDialog=False,
|
|||||||
"found or an exception occurred while executing it.", "%s(%s)" %
|
"found or an exception occurred while executing it.", "%s(%s)" %
|
||||||
(str(t), str(v)))
|
(str(t), str(v)))
|
||||||
additionalResult.append(currResult)
|
additionalResult.append(currResult)
|
||||||
if not keepOptionsOpen:
|
if clickOkWhenDone:
|
||||||
clickButton(waitForObject(":Options.Cancel_QPushButton"))
|
clickButton(waitForObject(":Options.OK_QPushButton"))
|
||||||
if additionalFunction:
|
|
||||||
return result, additionalResult
|
return result, additionalResult
|
||||||
else:
|
|
||||||
return result
|
|
||||||
|
|
||||||
# set a help viewer that will always be used, regardless of Creator's width
|
# set a help viewer that will always be used, regardless of Creator's width
|
||||||
|
|
||||||
|
@@ -93,7 +93,7 @@ def main():
|
|||||||
|
|
||||||
def verifyKitCheckboxes(kits, displayedPlatforms):
|
def verifyKitCheckboxes(kits, displayedPlatforms):
|
||||||
waitForObject("{type='QLabel' unnamed='1' visible='1' text='Kit Selection'}")
|
waitForObject("{type='QLabel' unnamed='1' visible='1' text='Kit Selection'}")
|
||||||
availableCheckboxes = frozenset(filter(enabledCheckBoxExists, kits.keys()))
|
availableCheckboxes = frozenset(filter(enabledCheckBoxExists, kits))
|
||||||
# verification whether expected, found and configured match
|
# verification whether expected, found and configured match
|
||||||
|
|
||||||
expectedShownKits = availableCheckboxes.intersection(displayedPlatforms)
|
expectedShownKits = availableCheckboxes.intersection(displayedPlatforms)
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
############################################################################
|
############################################################################
|
||||||
#
|
#
|
||||||
# Copyright (C) 2017 The Qt Company Ltd.
|
# Copyright (C) 2022 The Qt Company Ltd.
|
||||||
# Contact: https://www.qt.io/licensing/
|
# Contact: https://www.qt.io/licensing/
|
||||||
#
|
#
|
||||||
# This file is part of Qt Creator.
|
# This file is part of Qt Creator.
|
||||||
@@ -41,7 +41,8 @@ def verifyProjectsMode(expectedKits):
|
|||||||
|
|
||||||
kitNameTemplate = "Manual.%s"
|
kitNameTemplate = "Manual.%s"
|
||||||
|
|
||||||
def __removeKit__(kit, kitName):
|
|
||||||
|
def __removeKit__(_, kitName):
|
||||||
global kitNameTemplate
|
global kitNameTemplate
|
||||||
if kitName == Targets.getStringForTarget(Targets.getDefaultKit()):
|
if kitName == Targets.getStringForTarget(Targets.getDefaultKit()):
|
||||||
# The following kits will be the default kit at that time
|
# The following kits will be the default kit at that time
|
||||||
@@ -58,6 +59,5 @@ def main():
|
|||||||
switchViewTo(ViewConstants.PROJECTS)
|
switchViewTo(ViewConstants.PROJECTS)
|
||||||
verifyProjectsMode(Targets.getTargetsAsStrings(Targets.availableTargetClasses(True)))
|
verifyProjectsMode(Targets.getTargetsAsStrings(Targets.availableTargetClasses(True)))
|
||||||
iterateKits(True, False, __removeKit__)
|
iterateKits(True, False, __removeKit__)
|
||||||
clickButton(waitForObject(":Options.OK_QPushButton"))
|
|
||||||
verifyProjectsMode([])
|
verifyProjectsMode([])
|
||||||
invokeMenuItem("File", "Exit")
|
invokeMenuItem("File", "Exit")
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
############################################################################
|
############################################################################
|
||||||
#
|
#
|
||||||
# Copyright (C) 2019 The Qt Company Ltd.
|
# Copyright (C) 2022 The Qt Company Ltd.
|
||||||
# Contact: https://www.qt.io/licensing/
|
# Contact: https://www.qt.io/licensing/
|
||||||
#
|
#
|
||||||
# This file is part of Qt Creator.
|
# This file is part of Qt Creator.
|
||||||
@@ -189,7 +189,7 @@ def printResult():
|
|||||||
def deleteRemovable():
|
def deleteRemovable():
|
||||||
global useCounts, objMap
|
global useCounts, objMap
|
||||||
|
|
||||||
deletable = filter(lambda x: useCounts[x] == 0, useCounts)
|
deletable = list(filter(lambda x: useCounts[x] == 0, useCounts))
|
||||||
if len(deletable) == 0:
|
if len(deletable) == 0:
|
||||||
print("Nothing to delete - leaving objects.map untouched")
|
print("Nothing to delete - leaving objects.map untouched")
|
||||||
return
|
return
|
||||||
|
Reference in New Issue
Block a user