forked from qt-creator/qt-creator
This misused typeLines() to close the dialog by pressing "Return". Although the entire name of the button should be selected at first, I witnessed the new name being appended to the old one. The new code uses replaceEditorContent() to explicit select the old name and replace it with the new name. After that, it explicitly presses "Return" to close the dialog. Change-Id: I5ec946f57000396b70428e08ab795a1ee3eba91a Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
60 lines
3.0 KiB
Python
60 lines
3.0 KiB
Python
# Copyright (C) 2016 The Qt Company Ltd.
|
|
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
|
|
|
source("../../shared/qtcreator.py")
|
|
|
|
def main():
|
|
startQC()
|
|
if not startedWithoutPluginError():
|
|
return
|
|
projectName = "DesignerTestApp"
|
|
# explicitly chose new kit to avoid compiler issues on Windows
|
|
targets = createProject_Qt_GUI(tempDir(), projectName, buildSystem="CMake",
|
|
targets=[Targets.DESKTOP_6_2_4])
|
|
if len(targets) != 1:
|
|
earlyExit()
|
|
return
|
|
|
|
invokeMenuItem('Build', 'Build Project "%s"' % projectName)
|
|
selectFromLocator("mainwindow.ui")
|
|
dragAndDrop(waitForObject("{container=':qdesigner_internal::WidgetBoxCategoryListView'"
|
|
"text='Push Button' type='QModelIndex'}"), 5, 5,
|
|
":FormEditorStack_qdesigner_internal::FormWindow", 20, 50, Qt.CopyAction)
|
|
for buttonName in [None, "aDifferentName", "anotherDifferentName", "pushButton"]:
|
|
if buttonName:
|
|
openContextMenu(waitForObject("{container=':*Qt Creator.FormEditorStack_Designer::Internal::FormEditorStack'"
|
|
"text='PushButton' type='QPushButton' visible='1'}"), 5, 5, 1)
|
|
activateItem(waitForObjectItem("{type='QMenu' unnamed='1' visible='1'}", "Change objectName..."))
|
|
buttonNameEdit = waitForObject(":FormEditorStack_qdesigner_internal::PropertyLineEdit")
|
|
replaceEditorContent(buttonNameEdit, buttonName)
|
|
type(buttonNameEdit, "<Return>")
|
|
else:
|
|
# Verify that everything works without ever changing the name
|
|
buttonName = "pushButton"
|
|
selectFromLocator("mainwindow.cpp")
|
|
editor = waitForObject(":Qt Creator_CppEditor::Internal::CPPEditorWidget")
|
|
for tryDotOperator in [False, True]:
|
|
if not placeCursorToLine(editor, "ui->setupUi(this);"):
|
|
earlyExit("Maybe the project template changed.")
|
|
return
|
|
type(editor, "<Return>")
|
|
type(editor, "ui")
|
|
if tryDotOperator:
|
|
snooze(1)
|
|
type(editor, ".")
|
|
waitFor("object.exists(':popupFrame_TextEditor::GenericProposalWidget')", 1500)
|
|
else:
|
|
type(editor, "-")
|
|
snooze(1)
|
|
type(editor, ">")
|
|
snooze(1)
|
|
nativeType("%s" % buttonName[0])
|
|
test.verify(waitFor("object.exists(':popupFrame_TextEditor::GenericProposalWidget')", 1500),
|
|
"Verify that GenericProposalWidget is being shown.")
|
|
nativeType("<Return>")
|
|
test.verify(waitFor('str(lineUnderCursor(editor)).strip() == "ui->%s" % buttonName', 1000),
|
|
'Comparing line "%s" to expected "%s"' % (lineUnderCursor(editor), "ui->%s" % buttonName))
|
|
type(editor, "<Shift+Delete>") # Delete line
|
|
selectFromLocator("mainwindow.ui")
|
|
saveAndExit()
|