2017-02-07 09:08:11 +01:00
|
|
|
# Copyright (C) 2017 The Qt Company Ltd.
|
2022-08-19 15:59:36 +02:00
|
|
|
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
|
2017-02-07 09:08:11 +01:00
|
|
|
|
2017-10-17 08:54:55 +02:00
|
|
|
def __childrenOfType__(parentObject, typeName):
|
|
|
|
|
return [child for child in object.children(parentObject) if className(child) == typeName]
|
|
|
|
|
|
|
|
|
|
def __getWelcomeScreenButtonHelper__(buttonLabel, widgetWithQFrames, isUrlButton = False):
|
|
|
|
|
frames = __childrenOfType__(widgetWithQFrames, 'QWidget')
|
2017-02-07 09:08:11 +01:00
|
|
|
for frame in frames:
|
2017-10-17 08:54:55 +02:00
|
|
|
childCount = 1 # incorrect but okay for framed sidebar buttons
|
|
|
|
|
if isUrlButton:
|
|
|
|
|
childCount = len(__childrenOfType__(frame, 'QLabel'))
|
|
|
|
|
for occurrence in range(1, childCount + 1):
|
|
|
|
|
label = getChildByClass(frame, 'QLabel', occurrence)
|
|
|
|
|
if label is None:
|
|
|
|
|
continue
|
|
|
|
|
if str(label.text) == buttonLabel:
|
|
|
|
|
return frame, label
|
2017-02-07 09:08:11 +01:00
|
|
|
return None, None
|
|
|
|
|
|
2017-10-17 08:54:55 +02:00
|
|
|
def getWelcomeScreenSideBarButton(buttonLabel, isUrlButton = False):
|
2022-02-14 17:03:11 +01:00
|
|
|
sideBar = waitForObject("{container={type='Welcome::Internal::SideArea' unnamed='1' "
|
|
|
|
|
"window=':Qt Creator_Core::Internal::MainWindow'} type='QWidget' "
|
|
|
|
|
"unnamed='1'}")
|
2017-10-17 08:54:55 +02:00
|
|
|
return __getWelcomeScreenButtonHelper__(buttonLabel, sideBar, isUrlButton)
|
2017-02-07 09:08:11 +01:00
|
|
|
|
2022-03-22 14:00:36 +01:00
|
|
|
def getWelcomeScreenBottomButton(buttonLabel):
|
|
|
|
|
bottomArea = waitForObject("{type='Welcome::Internal::BottomArea' unnamed='1' "
|
|
|
|
|
"window=':Qt Creator_Core::Internal::MainWindow'}")
|
|
|
|
|
return __getWelcomeScreenButtonHelper__(buttonLabel, bottomArea, False)
|
2017-02-07 09:08:11 +01:00
|
|
|
|
|
|
|
|
def getWelcomeTreeView(treeViewLabel):
|
|
|
|
|
try:
|
2019-10-31 17:40:16 +01:00
|
|
|
return waitForObjectExists("{container=':Qt Creator.WelcomeScreenStackedWidget' "
|
|
|
|
|
"name='%s' type='QTreeView' visible='1'}" % treeViewLabel)
|
2017-02-07 09:08:11 +01:00
|
|
|
except:
|
|
|
|
|
return None
|
2017-02-08 09:34:40 +01:00
|
|
|
|
2018-07-10 13:57:16 +02:00
|
|
|
def switchToSubMode(subModeLabel):
|
|
|
|
|
wsButtonFrame, wsButtonLabel = getWelcomeScreenSideBarButton(subModeLabel)
|
|
|
|
|
frameAndLabelFound = all((wsButtonFrame, wsButtonLabel))
|
|
|
|
|
if frameAndLabelFound:
|
|
|
|
|
mouseClick(wsButtonLabel)
|
|
|
|
|
return frameAndLabelFound
|
|
|
|
|
|
2017-02-08 09:34:40 +01:00
|
|
|
def findExampleOrTutorial(tableView, regex, verbose=False):
|
2017-10-17 08:54:55 +02:00
|
|
|
children = __childrenOfType__(tableView, 'QModelIndex')
|
2017-02-08 09:34:40 +01:00
|
|
|
for child in children:
|
|
|
|
|
if re.match(regex, str(child.text)):
|
|
|
|
|
if verbose:
|
|
|
|
|
test.log("Returning matching example/tutorial '%s'." % str(child.text), regex)
|
|
|
|
|
return child
|
|
|
|
|
return None
|