| 
									
										
										
										
											2017-02-07 09:08:11 +01:00
										 |  |  | ############################################################################ | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # 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. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | ############################################################################ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											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): | 
					
						
							| 
									
										
										
										
											2017-02-07 09:08:11 +01:00
										 |  |  |     sideBar = waitForObject("{type='Welcome::Internal::SideBar' unnamed='1' " | 
					
						
							|  |  |  |                             "window=':Qt Creator_Core::Internal::MainWindow'}") | 
					
						
							| 
									
										
										
										
											2017-10-17 08:54:55 +02:00
										 |  |  |     return __getWelcomeScreenButtonHelper__(buttonLabel, sideBar, isUrlButton) | 
					
						
							| 
									
										
										
										
											2017-02-07 09:08:11 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | def getWelcomeScreenMainButton(buttonLabel): | 
					
						
							| 
									
										
										
										
											2019-10-31 17:40:16 +01:00
										 |  |  |     stackedWidget = waitForObject(":Qt Creator.WelcomeScreenStackedWidget") | 
					
						
							| 
									
										
										
										
											2017-02-07 09:08:11 +01:00
										 |  |  |     currentStackWidget = stackedWidget.currentWidget() | 
					
						
							|  |  |  |     return __getWelcomeScreenButtonHelper__(buttonLabel, currentStackWidget) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 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 |