forked from qt-creator/qt-creator
Squish: Ensure text cursor has safe position
When re-opening a file that had been opened and closed inside the current active session we open the file at the last used editor position. Provide a function to explicitly jump to the first line of an editor. Change-Id: I0602d8ef46e80a20385fd1b205812776d6666326 Reviewed-by: Robert Loehning <robert.loehning@qt.io>
This commit is contained in:
@@ -23,6 +23,10 @@
|
|||||||
#
|
#
|
||||||
############################################################################
|
############################################################################
|
||||||
|
|
||||||
|
def jumpToFirstLine(editor):
|
||||||
|
home = "<Home>" if platform.system() == 'Darwin' else "<Ctrl+Home>"
|
||||||
|
type(editor, home)
|
||||||
|
|
||||||
# places the cursor inside the given editor into the given line
|
# places the cursor inside the given editor into the given line
|
||||||
# (leading and trailing whitespaces are ignored!)
|
# (leading and trailing whitespaces are ignored!)
|
||||||
# and goes to the end of the line
|
# and goes to the end of the line
|
||||||
@@ -36,10 +40,7 @@ def placeCursorToLine(editor, line, isRegex=False):
|
|||||||
if not isinstance(editor, (str, unicode)):
|
if not isinstance(editor, (str, unicode)):
|
||||||
editor = objectMap.realName(editor)
|
editor = objectMap.realName(editor)
|
||||||
oldPosition = 0
|
oldPosition = 0
|
||||||
if isDarwin:
|
jumpToFirstLine(getEditor())
|
||||||
type(getEditor(), "<Home>")
|
|
||||||
else:
|
|
||||||
type(getEditor(), "<Ctrl+Home>")
|
|
||||||
found = False
|
found = False
|
||||||
if isRegex:
|
if isRegex:
|
||||||
regex = re.compile(line)
|
regex = re.compile(line)
|
||||||
|
@@ -85,10 +85,7 @@ def main():
|
|||||||
if not waitFor("str(mainWin.windowTitle).startswith('dummy.cpp ') and ' @ cplusplus-tools ' in str(mainWin.windowTitle)", 5000):
|
if not waitFor("str(mainWin.windowTitle).startswith('dummy.cpp ') and ' @ cplusplus-tools ' in str(mainWin.windowTitle)", 5000):
|
||||||
test.warning("Opening dummy.cpp seems to have failed")
|
test.warning("Opening dummy.cpp seems to have failed")
|
||||||
# Reset cursor to the start of the document
|
# Reset cursor to the start of the document
|
||||||
if platform.system() == 'Darwin':
|
jumpToFirstLine(cppwindow)
|
||||||
type(cppwindow, "<Home>")
|
|
||||||
else:
|
|
||||||
type(cppwindow, "<Ctrl+Home>")
|
|
||||||
|
|
||||||
type(cppwindow, "<Ctrl+f>")
|
type(cppwindow, "<Ctrl+f>")
|
||||||
clickButton(waitForObject(":*Qt Creator_Utils::IconButton"))
|
clickButton(waitForObject(":*Qt Creator_Utils::IconButton"))
|
||||||
|
@@ -76,7 +76,7 @@ def pasteFile(sourceFile, protocol):
|
|||||||
invokeMenuItem("File", "Open File or Project...")
|
invokeMenuItem("File", "Open File or Project...")
|
||||||
selectFromFileDialog(sourceFile)
|
selectFromFileDialog(sourceFile)
|
||||||
editor = waitForObject(":Qt Creator_CppEditor::Internal::CPPEditorWidget")
|
editor = waitForObject(":Qt Creator_CppEditor::Internal::CPPEditorWidget")
|
||||||
type(editor, "<Up>")
|
jumpToFirstLine(editor)
|
||||||
typeLines(editor, "// tst_codepasting %s" % datetime.utcnow())
|
typeLines(editor, "// tst_codepasting %s" % datetime.utcnow())
|
||||||
sourceText = editor.plainText
|
sourceText = editor.plainText
|
||||||
invokeMenuItem("Tools", "Code Pasting", "Paste Snippet...")
|
invokeMenuItem("Tools", "Code Pasting", "Paste Snippet...")
|
||||||
@@ -232,6 +232,7 @@ def main():
|
|||||||
invokeMenuItem("File", "Open File or Project...")
|
invokeMenuItem("File", "Open File or Project...")
|
||||||
selectFromFileDialog(sourceFile)
|
selectFromFileDialog(sourceFile)
|
||||||
editor = waitForObject(":Qt Creator_CppEditor::Internal::CPPEditorWidget")
|
editor = waitForObject(":Qt Creator_CppEditor::Internal::CPPEditorWidget")
|
||||||
|
jumpToFirstLine(editor)
|
||||||
markText(editor, "Down", 7)
|
markText(editor, "Down", 7)
|
||||||
# QString QTextCursor::selectedText () const:
|
# QString QTextCursor::selectedText () const:
|
||||||
# "Note: If the selection obtained from an editor spans a line break, the text will contain a
|
# "Note: If the selection obtained from an editor spans a line break, the text will contain a
|
||||||
|
Reference in New Issue
Block a user