Merge remote-tracking branch 'origin/13.0'
Conflicts: src/plugins/remotelinux/linuxdevice.cpp Change-Id: Iad28a1bfa4632922931d351d2fe27757cf21dec3
|
Before Width: | Height: | Size: 9.7 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 33 KiB |
BIN
doc/qtcreator/images/qtquick-example-setting-breakpoint1.webp
Normal file
|
After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 7.4 KiB |
BIN
doc/qtcreator/images/qtquick-example-setting-breakpoint2.webp
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 31 KiB |
BIN
doc/qtcreator/images/qtquick-example-setting-breakpoint3.webp
Normal file
|
After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 56 KiB |
BIN
doc/qtcreator/images/qtquick-example-stack.webp
Normal file
|
After Width: | Height: | Size: 25 KiB |
@@ -11,6 +11,9 @@
|
|||||||
You can connect Android devices to the development PC using USB cables to
|
You can connect Android devices to the development PC using USB cables to
|
||||||
build, run, debug, and analyze applications from \QC.
|
build, run, debug, and analyze applications from \QC.
|
||||||
|
|
||||||
|
\note \QC only detects a device and connects to it after you
|
||||||
|
\l{Debugging on Android Devices}{enable USB debugging on it}.
|
||||||
|
|
||||||
To develop for Android, you must install a tool chain for building
|
To develop for Android, you must install a tool chain for building
|
||||||
applications for Android devices on the development PC. \QC can automatically
|
applications for Android devices on the development PC. \QC can automatically
|
||||||
download and install the tool chain and create a suitable build and run
|
download and install the tool chain and create a suitable build and run
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2018 The Qt Company Ltd.
|
// Copyright (C) 2024 The Qt Company Ltd.
|
||||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||||
|
|
||||||
// **********************************************************************
|
// **********************************************************************
|
||||||
@@ -47,13 +47,13 @@
|
|||||||
border on the line where the \c startNewGame() function is
|
border on the line where the \c startNewGame() function is
|
||||||
called (1).
|
called (1).
|
||||||
|
|
||||||
\image qtquick-example-setting-breakpoint1.png
|
\image qtquick-example-setting-breakpoint1.webp {Breakpoint in the code editor}
|
||||||
|
|
||||||
The red circle indicates that a breakpoint is now set on that line
|
The red circle indicates that a breakpoint is now set on that line
|
||||||
number.
|
number.
|
||||||
|
|
||||||
\li Select \uicontrol Debug > \uicontrol {Start Debugging} >
|
\li Go to \uicontrol Debug > \uicontrol {Start Debugging} >
|
||||||
\uicontrol {Start Debugging of Startup Project} or press
|
\uicontrol {Start Debugging of Startup Project}, or press
|
||||||
\key{F5}.
|
\key{F5}.
|
||||||
|
|
||||||
\li Once the Same Game application starts, select \uicontrol {Puzzle}
|
\li Once the Same Game application starts, select \uicontrol {Puzzle}
|
||||||
@@ -63,26 +63,26 @@
|
|||||||
|
|
||||||
\li When the debugger hits the breakpoint, it interrupts the
|
\li When the debugger hits the breakpoint, it interrupts the
|
||||||
application. \QC displays the nested function calls leading to the
|
application. \QC displays the nested function calls leading to the
|
||||||
current position as a call stack trace (1).
|
current position as a call stack trace.
|
||||||
|
|
||||||
\image qtquick-example-setting-breakpoint2.png
|
\image qtquick-example-setting-breakpoint2.webp {Debugger view}
|
||||||
|
|
||||||
\li Click the \inlineimage icons/debugger_stepinto_small.png
|
\li Select \inlineimage icons/debugger_stepinto_small.png
|
||||||
(\uicontrol {Step Into}) button on the toolbar or press \key F11 to step
|
(\uicontrol {Step Into}) on the toolbar or press \key F11 to step
|
||||||
into the code in the stack. The samegame.js file opens in the code
|
into the code in the stack. The samegame.js file opens in the code
|
||||||
editor at the function that starts a new game.
|
editor at the function that starts a new game.
|
||||||
|
|
||||||
\image qtquick-example-stack.png
|
\image qtquick-example-stack.webp {Stack view}
|
||||||
|
|
||||||
\li Examine the local variables in the \uicontrol Locals
|
\li Examine the local variables in the \uicontrol Locals
|
||||||
view. Step through the code to see how the information changes in
|
view. Step through the code to see how the information changes in
|
||||||
the view.
|
the view.
|
||||||
|
|
||||||
\li Add a breakpoint at the end of the \c {startNewGame()} function, and
|
\li Add a breakpoint at the end of the \c {startNewGame()} function, and
|
||||||
click \inlineimage icons/qtcreator-debugging-continue.png
|
select \inlineimage icons/qtcreator-debugging-continue.png
|
||||||
(\uicontrol Continue) to hit the breakpoint.
|
(\uicontrol Continue) to hit the breakpoint.
|
||||||
|
|
||||||
\image qtquick-example-setting-breakpoint3.png
|
\image qtquick-example-setting-breakpoint3.webp {Second breakpoint in the Breakpoints view}
|
||||||
|
|
||||||
\li To execute JavaScript commands in the current context, open the
|
\li To execute JavaScript commands in the current context, open the
|
||||||
\uicontrol {QML Debugger Console}.
|
\uicontrol {QML Debugger Console}.
|
||||||
@@ -97,11 +97,11 @@
|
|||||||
|
|
||||||
\image qtquick-example-qml-inspector.png
|
\image qtquick-example-qml-inspector.png
|
||||||
|
|
||||||
\li Select \uicontrol Debug > \uicontrol {Show Application on Top} to
|
\li Go to \uicontrol Debug > \uicontrol {Show Application on Top} to
|
||||||
keep the application visible while you interact with the debugger.
|
keep the application visible while you interact with the debugger.
|
||||||
|
|
||||||
\li Select \uicontrol Debug > \uicontrol Select to activate selection
|
\li Go to \uicontrol Debug > \uicontrol Select to activate selection
|
||||||
mode and then click the \uicontrol Menu button to move into the
|
mode, and then select \uicontrol Menu to move into the
|
||||||
\uicontrol menuButton component in the \uicontrol Locals view and
|
\uicontrol menuButton component in the \uicontrol Locals view and
|
||||||
the code editor.
|
the code editor.
|
||||||
|
|
||||||
|
|||||||
@@ -79,7 +79,11 @@
|
|||||||
If you hide the annotations, you can move the mouse pointer over an icon to
|
If you hide the annotations, you can move the mouse pointer over an icon to
|
||||||
view them.
|
view them.
|
||||||
|
|
||||||
\sa {Analyze code with Clang-Tidy and Clazy}, {JavaScript and QML Checks}
|
\if defined(qtcreator)
|
||||||
|
\sa {Analyze code with Clang-Tidy and Clazy}
|
||||||
|
\endif
|
||||||
|
|
||||||
|
\sa {JavaScript and QML Checks}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|||||||
@@ -45,7 +45,11 @@ signals:
|
|||||||
void lostFocus();
|
void lostFocus();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void focusOutEvent(QFocusEvent *) override { emit lostFocus(); }
|
void focusOutEvent(QFocusEvent *e) override
|
||||||
|
{
|
||||||
|
QPlainTextEdit::focusOutEvent(e);
|
||||||
|
emit lostFocus();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
|||||||
@@ -209,7 +209,8 @@ static bool isChildOf(const FilePath &path, const FilePaths &prefixes)
|
|||||||
static CMakeBuildTarget toBuildTarget(const TargetDetails &t,
|
static CMakeBuildTarget toBuildTarget(const TargetDetails &t,
|
||||||
const FilePath &sourceDirectory,
|
const FilePath &sourceDirectory,
|
||||||
const FilePath &buildDirectory,
|
const FilePath &buildDirectory,
|
||||||
bool relativeLibs)
|
bool relativeLibs,
|
||||||
|
const QSet<FilePath> &artifacts)
|
||||||
{
|
{
|
||||||
const FilePath currentBuildDir = buildDirectory.resolvePath(t.buildDir);
|
const FilePath currentBuildDir = buildDirectory.resolvePath(t.buildDir);
|
||||||
|
|
||||||
@@ -341,14 +342,17 @@ static CMakeBuildTarget toBuildTarget(const TargetDetails &t,
|
|||||||
librarySeachPaths.append(tmp);
|
librarySeachPaths.append(tmp);
|
||||||
|
|
||||||
if (buildDir.osType() == OsTypeWindows && dllName) {
|
if (buildDir.osType() == OsTypeWindows && dllName) {
|
||||||
if (tmp.pathAppended(*dllName).exists())
|
const auto validPath = [&artifacts](const FilePath& path) {
|
||||||
|
return path.exists() || artifacts.contains(path);
|
||||||
|
};
|
||||||
|
if (validPath(tmp.pathAppended(*dllName)))
|
||||||
librarySeachPaths.append(tmp);
|
librarySeachPaths.append(tmp);
|
||||||
|
|
||||||
// Libraries often have their import libs in ../lib and the
|
// Libraries often have their import libs in ../lib and the
|
||||||
// actual dll files in ../bin on windows. Qt is one example of that.
|
// actual dll files in ../bin on windows. Qt is one example of that.
|
||||||
if (tmp.fileName() == "lib" && buildDir.osType() == OsTypeWindows) {
|
if (tmp.fileName() == "lib") {
|
||||||
const FilePath path = tmp.parentDir().pathAppended("bin");
|
const FilePath path = tmp.parentDir().pathAppended("bin");
|
||||||
if (path.isDir() && path.pathAppended(*dllName).exists())
|
if (path.isDir() && validPath(path.pathAppended(*dllName)))
|
||||||
librarySeachPaths.append(path);
|
librarySeachPaths.append(path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -367,12 +371,17 @@ static QList<CMakeBuildTarget> generateBuildTargets(const QFuture<void> &cancelF
|
|||||||
const FilePath &buildDirectory,
|
const FilePath &buildDirectory,
|
||||||
bool relativeLibs)
|
bool relativeLibs)
|
||||||
{
|
{
|
||||||
|
QSet<FilePath> artifacts;
|
||||||
|
for (const TargetDetails &t : input.targetDetails)
|
||||||
|
for (const FilePath &p: t.artifacts)
|
||||||
|
artifacts.insert(buildDirectory.resolvePath(p));
|
||||||
|
|
||||||
QList<CMakeBuildTarget> result;
|
QList<CMakeBuildTarget> result;
|
||||||
result.reserve(input.targetDetails.size());
|
result.reserve(input.targetDetails.size());
|
||||||
for (const TargetDetails &t : input.targetDetails) {
|
for (const TargetDetails &t : input.targetDetails) {
|
||||||
if (cancelFuture.isCanceled())
|
if (cancelFuture.isCanceled())
|
||||||
return {};
|
return {};
|
||||||
result.append(toBuildTarget(t, sourceDirectory, buildDirectory, relativeLibs));
|
result.append(toBuildTarget(t, sourceDirectory, buildDirectory, relativeLibs, artifacts));
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1035,12 +1035,57 @@ void ICore::addPreCloseListener(const std::function<bool ()> &listener)
|
|||||||
d->m_preCloseListeners.append(listener);
|
d->m_preCloseListeners.append(listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString uiConfigInformation()
|
||||||
|
{
|
||||||
|
QString info("UI configuration:\n\n");
|
||||||
|
info.append(QString("Color: %1\n").arg(StyleHelper::requestedBaseColor().name()));
|
||||||
|
info.append(QString("Theme: %1 \"%2\"\n").arg(creatorTheme()->id())
|
||||||
|
.arg(creatorTheme()->displayName()));
|
||||||
|
const QString toolbarStyle =
|
||||||
|
StyleHelper::toolbarStyle() == StyleHelper::ToolbarStyleCompact ? "Compact" : "Relaxed";
|
||||||
|
info.append(QString("Toolbar style: Utils::StyleHelper::ToolbarStyle%1\n").arg(toolbarStyle));
|
||||||
|
const QString policy =
|
||||||
|
QVariant::fromValue(QApplication::highDpiScaleFactorRoundingPolicy()).toString();
|
||||||
|
QString userInterfaceLanguage = ICore::userInterfaceLanguage();
|
||||||
|
if (userInterfaceLanguage.isEmpty())
|
||||||
|
userInterfaceLanguage = QLocale::system().name() + " (System Language)";
|
||||||
|
info.append(QString("Language: %1\n").arg(userInterfaceLanguage));
|
||||||
|
info.append(QString("Device pixel ratio: %1, Qt::HighDpiScaleFactorRoundingPolicy::%2\n")
|
||||||
|
.arg(qApp->devicePixelRatio()).arg(policy));
|
||||||
|
info.append(QString("Font DPI: %1\n").arg(qApp->fontMetrics().fontDpi()));
|
||||||
|
|
||||||
|
info.append(QString("Utils::StyleHelper::UiElement:\n"));
|
||||||
|
#define QTC_ADD_UIELEMENT_FONT(uiElement) ( \
|
||||||
|
info.append(QString(" %1: %2\n").arg(#uiElement) \
|
||||||
|
.arg(StyleHelper::uiFont(StyleHelper::UiElement##uiElement).toString())) \
|
||||||
|
);
|
||||||
|
QTC_ADD_UIELEMENT_FONT(H1);
|
||||||
|
QTC_ADD_UIELEMENT_FONT(H2);
|
||||||
|
QTC_ADD_UIELEMENT_FONT(H3);
|
||||||
|
QTC_ADD_UIELEMENT_FONT(H4);
|
||||||
|
QTC_ADD_UIELEMENT_FONT(H5);
|
||||||
|
QTC_ADD_UIELEMENT_FONT(H6);
|
||||||
|
QTC_ADD_UIELEMENT_FONT(H6Capital);
|
||||||
|
QTC_ADD_UIELEMENT_FONT(Body1);
|
||||||
|
QTC_ADD_UIELEMENT_FONT(Body2);
|
||||||
|
QTC_ADD_UIELEMENT_FONT(ButtonMedium);
|
||||||
|
QTC_ADD_UIELEMENT_FONT(ButtonSmall);
|
||||||
|
QTC_ADD_UIELEMENT_FONT(CaptionStrong);
|
||||||
|
QTC_ADD_UIELEMENT_FONT(Caption);
|
||||||
|
QTC_ADD_UIELEMENT_FONT(IconStandard);
|
||||||
|
QTC_ADD_UIELEMENT_FONT(IconActive);
|
||||||
|
#undef QTC_ADD_UIELEMENT_FONT
|
||||||
|
|
||||||
|
return info;
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\internal
|
\internal
|
||||||
*/
|
*/
|
||||||
QString ICore::systemInformation()
|
QString ICore::systemInformation()
|
||||||
{
|
{
|
||||||
return PluginManager::systemInformation() + '\n' + aboutInformationCompact() + '\n';
|
return PluginManager::systemInformation() + '\n' + uiConfigInformation() + '\n'
|
||||||
|
+ aboutInformationCompact() + '\n';
|
||||||
}
|
}
|
||||||
|
|
||||||
static const QString &screenShotsPath()
|
static const QString &screenShotsPath()
|
||||||
|
|||||||
@@ -194,10 +194,10 @@ DeviceSettings::DeviceSettings()
|
|||||||
displayName.setValueAcceptor(
|
displayName.setValueAcceptor(
|
||||||
[validateDisplayName](const QString &old,
|
[validateDisplayName](const QString &old,
|
||||||
const QString &newValue) -> std::optional<QString> {
|
const QString &newValue) -> std::optional<QString> {
|
||||||
if (validateDisplayName(old, newValue))
|
if (!validateDisplayName(old, newValue))
|
||||||
return std::nullopt;
|
return std::nullopt;
|
||||||
|
|
||||||
return old;
|
return newValue;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,7 @@
|
|||||||
# Copyright (C) 2016 The Qt Company Ltd.
|
# Copyright (C) 2016 The Qt Company Ltd.
|
||||||
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
try:
|
import builtins
|
||||||
import __builtin__ # Python 2
|
|
||||||
except ImportError:
|
|
||||||
import builtins as __builtin__ # Python 3
|
|
||||||
|
|
||||||
# for easier re-usage (because Python hasn't an enum type)
|
# for easier re-usage (because Python hasn't an enum type)
|
||||||
class Targets:
|
class Targets:
|
||||||
@@ -128,7 +125,7 @@ class QtPath:
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def toVersionTuple(versionString):
|
def toVersionTuple(versionString):
|
||||||
return tuple(map(__builtin__.int, versionString.split(".")))
|
return tuple(map(builtins.int, versionString.split(".")))
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def getQtVersion(target):
|
def getQtVersion(target):
|
||||||
|
|||||||
@@ -603,7 +603,7 @@ def __writeProjectTreeFile__(projectTree, filename):
|
|||||||
|
|
||||||
def __getTestData__(record):
|
def __getTestData__(record):
|
||||||
return [testData.field(record, "text"),
|
return [testData.field(record, "text"),
|
||||||
__builtin__.int(testData.field(record, "nestinglevel"))]
|
builtins.int(testData.field(record, "nestinglevel"))]
|
||||||
|
|
||||||
def compareProjectTree(rootObject, dataset):
|
def compareProjectTree(rootObject, dataset):
|
||||||
root = waitForObject(rootObject)
|
root = waitForObject(rootObject)
|
||||||
|
|||||||
@@ -12,11 +12,7 @@ import subprocess;
|
|||||||
import sys
|
import sys
|
||||||
import errno;
|
import errno;
|
||||||
from datetime import datetime,timedelta;
|
from datetime import datetime,timedelta;
|
||||||
if sys.version_info.major > 2:
|
import builtins
|
||||||
import builtins as __builtin__
|
|
||||||
else:
|
|
||||||
import __builtin__
|
|
||||||
|
|
||||||
|
|
||||||
srcPath = ''
|
srcPath = ''
|
||||||
SettingsPath = []
|
SettingsPath = []
|
||||||
|
|||||||
@@ -71,15 +71,15 @@ def verifyEnabled(objectSpec, expectedState = True):
|
|||||||
# param itemName is the item to be selected in the combo box
|
# param itemName is the item to be selected in the combo box
|
||||||
# returns True if selection was changed or False if the wanted value was already selected
|
# returns True if selection was changed or False if the wanted value was already selected
|
||||||
def selectFromCombo(objectSpec, itemName):
|
def selectFromCombo(objectSpec, itemName):
|
||||||
object = verifyEnabled(objectSpec)
|
comboObject = verifyEnabled(objectSpec)
|
||||||
if itemName == str(object.currentText):
|
if itemName == str(comboObject.currentText):
|
||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
mouseClick(object)
|
mouseClick(comboObject)
|
||||||
snooze(1)
|
snooze(1)
|
||||||
# params required here
|
# params required here
|
||||||
mouseClick(waitForObjectItem(object, itemName.replace(".", "\\.")), 5, 5, 0, Qt.LeftButton)
|
mouseClick(waitForObjectItem(comboObject, itemName.replace(".", "\\.")))
|
||||||
test.verify(waitFor("str(object.currentText)==itemName", 5000),
|
test.verify(waitFor("str(comboObject.currentText)==itemName", 5000),
|
||||||
"Switched combo item to '%s'" % itemName)
|
"Switched combo item to '%s'" % itemName)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
@@ -588,15 +588,12 @@ def getHelpTitle():
|
|||||||
|
|
||||||
|
|
||||||
def isString(sth):
|
def isString(sth):
|
||||||
if sys.version_info.major > 2:
|
|
||||||
return isinstance(sth, str)
|
return isinstance(sth, str)
|
||||||
else:
|
|
||||||
return isinstance(sth, (str, unicode))
|
|
||||||
|
|
||||||
# helper function to ensure we get str, converts bytes if necessary
|
# helper function to ensure we get str, converts bytes if necessary
|
||||||
def stringify(obj):
|
def stringify(obj):
|
||||||
stringTypes = (str, unicode) if sys.version_info.major == 2 else (str)
|
if isString(obj):
|
||||||
if isinstance(obj, stringTypes):
|
|
||||||
return obj
|
return obj
|
||||||
if isinstance(obj, bytes):
|
if isinstance(obj, bytes):
|
||||||
if not platform.system() in ('Microsoft', 'Windows'):
|
if not platform.system() in ('Microsoft', 'Windows'):
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ def main():
|
|||||||
__modifyFile__(fileName, modification)
|
__modifyFile__(fileName, modification)
|
||||||
test.log("Reverting all files...")
|
test.log("Reverting all files...")
|
||||||
fileModifications = dict(zip(fileModifications.keys(),
|
fileModifications = dict(zip(fileModifications.keys(),
|
||||||
(__builtin__.bool(v) for v in fileModifications.values())))
|
(builtins.bool(v) for v in fileModifications.values())))
|
||||||
revertChanges(fileModifications)
|
revertChanges(fileModifications)
|
||||||
invokeMenuItem("File", "Exit")
|
invokeMenuItem("File", "Exit")
|
||||||
|
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ def cmakeSupported():
|
|||||||
versionLine = next(iter(versionLines))
|
versionLine = next(iter(versionLines))
|
||||||
test.log("Using " + versionLine)
|
test.log("Using " + versionLine)
|
||||||
matcher = re.match("cmake version (\d+)\.(\d+)\.\d+", versionLine)
|
matcher = re.match("cmake version (\d+)\.(\d+)\.\d+", versionLine)
|
||||||
major = __builtin__.int(matcher.group(1))
|
major = builtins.int(matcher.group(1))
|
||||||
minor = __builtin__.int(matcher.group(2))
|
minor = builtins.int(matcher.group(2))
|
||||||
except:
|
except:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|||||||
@@ -79,7 +79,12 @@ def renameFile(projectDir, proFile, branch, oldname, newname):
|
|||||||
menu = ":Qt Creator.Project.Menu.Folder_QMenu"
|
menu = ":Qt Creator.Project.Menu.Folder_QMenu"
|
||||||
else:
|
else:
|
||||||
menu = ":Qt Creator.Project.Menu.File_QMenu"
|
menu = ":Qt Creator.Project.Menu.File_QMenu"
|
||||||
activateItem(waitForObjectItem(menu, "Rename..."))
|
try:
|
||||||
|
activateItem(waitForObjectItem(menu, "Rename...", 5000))
|
||||||
|
except:
|
||||||
|
# Try getting an enabled item by reopening the menu
|
||||||
|
openItemContextMenu(treeview, oldItemText, 5, 5, 0)
|
||||||
|
activateItem(waitForObjectItem(menu, "Rename...", 5000))
|
||||||
replaceEdit = waitForObject(":Qt Creator_Utils::NavigationTreeView::QExpandingLineEdit")
|
replaceEdit = waitForObject(":Qt Creator_Utils::NavigationTreeView::QExpandingLineEdit")
|
||||||
test.compare(replaceEdit.selectedText, oldname.rsplit(".", 1)[0],
|
test.compare(replaceEdit.selectedText, oldname.rsplit(".", 1)[0],
|
||||||
"Only the filename without the extension is selected?")
|
"Only the filename without the extension is selected?")
|
||||||
|
|||||||
@@ -104,7 +104,7 @@ def __writeOutlineFile__(outlinePseudoTree, filename):
|
|||||||
|
|
||||||
def retrieveData(record):
|
def retrieveData(record):
|
||||||
return (testData.field(record, "element"),
|
return (testData.field(record, "element"),
|
||||||
__builtin__.int(testData.field(record, "nestinglevel")),
|
builtins.int(testData.field(record, "nestinglevel")),
|
||||||
testData.field(record, "value"))
|
testData.field(record, "value"))
|
||||||
|
|
||||||
def verifyOutline(outlinePseudoTree, datasetFileName):
|
def verifyOutline(outlinePseudoTree, datasetFileName):
|
||||||
|
|||||||
@@ -243,7 +243,7 @@ def main():
|
|||||||
# 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
|
||||||
# Unicode U+2029 paragraph separator character instead of a newline \n character."
|
# Unicode U+2029 paragraph separator character instead of a newline \n character."
|
||||||
newParagraph = chr(0x2029) if sys.version_info.major > 2 else unichr(0x2029)
|
newParagraph = chr(0x2029)
|
||||||
selectedText = str(editor.textCursor().selectedText()).replace(newParagraph, "\n")
|
selectedText = str(editor.textCursor().selectedText()).replace(newParagraph, "\n")
|
||||||
invokeMenuItem("Tools", "Code Pasting", "Paste Snippet...")
|
invokeMenuItem("Tools", "Code Pasting", "Paste Snippet...")
|
||||||
test.compare(waitForObject(":stackedWidget.plainTextEdit_QPlainTextEdit").plainText,
|
test.compare(waitForObject(":stackedWidget.plainTextEdit_QPlainTextEdit").plainText,
|
||||||
|
|||||||