forked from qt-creator/qt-creator
Used by tst_session_handling and tst_WELP02. Change-Id: I28bdececac39719372834c373f82ac9e99beb613 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
75 lines
3.3 KiB
Python
75 lines
3.3 KiB
Python
############################################################################
|
|
#
|
|
# Copyright (C) 2017 The Qt Company Ltd.
|
|
# Contact: https://www.qt.io/licensing/
|
|
#
|
|
# This file is part of Qt Creator.
|
|
#
|
|
# Commercial License Usage
|
|
# Licensees holding valid commercial Qt licenses may use this file in
|
|
# accordance with the commercial license agreement provided with the
|
|
# Software or, alternatively, in accordance with the terms contained in
|
|
# a written agreement between you and The Qt Company. For licensing terms
|
|
# and conditions see https://www.qt.io/terms-conditions. For further
|
|
# information use the contact form at https://www.qt.io/contact-us.
|
|
#
|
|
# GNU General Public License Usage
|
|
# Alternatively, this file may be used under the terms of the GNU
|
|
# General Public License version 3 as published by the Free Software
|
|
# Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
|
# included in the packaging of this file. Please review the following
|
|
# information to ensure the GNU General Public License requirements will
|
|
# be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
|
#
|
|
############################################################################
|
|
|
|
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')
|
|
for frame in frames:
|
|
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
|
|
return None, None
|
|
|
|
def getWelcomeScreenSideBarButton(buttonLabel, isUrlButton = False):
|
|
sideBar = waitForObject("{type='Welcome::Internal::SideBar' unnamed='1' "
|
|
"window=':Qt Creator_Core::Internal::MainWindow'}")
|
|
return __getWelcomeScreenButtonHelper__(buttonLabel, sideBar, isUrlButton)
|
|
|
|
def getWelcomeScreenMainButton(buttonLabel):
|
|
stackedWidget = waitForObject(":Qt Creator.WelcomeScreenStackedWidget")
|
|
currentStackWidget = stackedWidget.currentWidget()
|
|
return __getWelcomeScreenButtonHelper__(buttonLabel, currentStackWidget)
|
|
|
|
def getWelcomeTreeView(treeViewLabel):
|
|
try:
|
|
return waitForObjectExists("{container=':Qt Creator.WelcomeScreenStackedWidget' "
|
|
"name='%s' type='QTreeView' visible='1'}" % treeViewLabel)
|
|
except:
|
|
return None
|
|
|
|
def switchToSubMode(subModeLabel):
|
|
wsButtonFrame, wsButtonLabel = getWelcomeScreenSideBarButton(subModeLabel)
|
|
frameAndLabelFound = all((wsButtonFrame, wsButtonLabel))
|
|
if frameAndLabelFound:
|
|
mouseClick(wsButtonLabel)
|
|
return frameAndLabelFound
|
|
|
|
def findExampleOrTutorial(tableView, regex, verbose=False):
|
|
children = __childrenOfType__(tableView, 'QModelIndex')
|
|
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
|