Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
quicktestutil.cpp
Go to the documentation of this file.
1// Copyright (C) 2019 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#include "quicktestutil_p.h"
5
6#include <QtQuickTest/private/qtestoptions_p.h>
7#include <QtQml/private/qqmltype_p.h>
8#include <QtQml/private/qqmlmetatype_p.h>
9#include <QtQml/private/qv4engine_p.h>
10#include <QtQml/private/qv4scopedvalue_p.h>
11#include <QtQml/private/qjsvalue_p.h>
12
13#include <QtGui/qguiapplication.h>
14#include <QtGui/qclipboard.h>
15#include <QtGui/qstylehints.h>
16#include <QtQml/qqmlengine.h>
17
19
20using namespace Qt::StringLiterals;
21
26
28{
29 return QGuiApplication::styleHints()->startDragDistance();
30}
31
33{
34#if QT_CONFIG(clipboard)
35 QString fmt(u"%1 bottles of beer on the wall, %1 bottles of beer; "
36 "take one down, pass it around, %2 bottles of beer on the wall."_s);
37 QStringList lines;
38 for (int i = lineCount; i > 0; --i)
39 lines << fmt.arg(i).arg(i - 1);
40 QGuiApplication::clipboard()->setText(lines.join(u'\n'));
41#else
42 Q_UNUSED(lineCount)
43#endif
44}
45
47{
48 QString name = QString::fromUtf8(v.typeName());
49 if (v.canConvert<QObject*>()) {
51 const QMetaObject *mo = v.value<QObject*>()->metaObject();
52 while (!type.isValid() && mo) {
54 mo = mo->superClass();
55 }
56 if (type.isValid()) {
57 name = type.qmlTypeName();
58 }
59 }
60
64}
65
66bool QuickTestUtil::compare(const QVariant &act, const QVariant &exp) const {
67 return act == exp;
68}
69
71{
74 QV4::Scope scope(v4);
75
76 QVector<QV4::StackFrame> stack = v4->stackTrace(frameIndex + 2);
77 return (stack.size() > frameIndex + 1)
79 v4->newString(stack.at(frameIndex + 1).source)->asReturnedValue())
80 : QJSValue();
81}
82
83int QuickTestUtil::callerLine(int frameIndex) const
84{
87
88 QVector<QV4::StackFrame> stack = v4->stackTrace(frameIndex + 2);
89 if (stack.size() > frameIndex + 1)
90 return qAbs(stack.at(frameIndex + 1).line);
91 return -1;
92}
93
95
96#include "moc_quicktestutil_p.cpp"
static QClipboard * clipboard()
Returns the object for interacting with the clipboard.
static QStyleHints * styleHints()
Returns the application's style hints.
QV4::ExecutionEngine * handle() const
Definition qjsengine.h:298
static QJSValue fromReturnedValue(QV4::ReturnedValue d)
Definition qjsvalue_p.h:197
The QJSValue class acts as a container for Qt/JavaScript data types.
Definition qjsvalue.h:31
\inmodule QtCore
Definition qobject.h:103
The QQmlEngine class provides an environment for instantiating QML components.
Definition qqmlengine.h:57
static QQmlType qmlType(const QString &qualifiedName, QTypeRevision version)
Returns the type (if any) of URI-qualified named qualifiedName and version specified by version_major...
\inmodule QtCore
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
static QString fromUtf8(QByteArrayView utf8)
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition qstring.cpp:6018
\inmodule QtCore
Definition qvariant.h:65
bool printAvailableFunctions
int callerLine(int frameIndex=0) const
bool compare(const QVariant &act, const QVariant &exp) const
Q_INVOKABLE void populateClipboardText(int lineCount)
QJSValue typeName(const QVariant &v) const
QJSValue callerFile(int frameIndex=0) const
auto mo
[7]
Combined button and popup list for selecting options.
Q_TESTLIB_EXPORT bool printAvailableFunctions
constexpr T qAbs(const T &t)
Definition qnumeric.h:328
GLsizei const GLfloat * v
[13]
GLenum type
GLuint name
QQmlEngine * qmlEngine(const QObject *obj)
Definition qqml.cpp:80
#define Q_UNUSED(x)
QVideoFrameFormat::PixelFormat fmt
obj metaObject() -> className()
QJSEngine engine
[0]
\inmodule QtCore
Heap::String * newString(char16_t c)
StackTrace stackTrace(int frameLimit=-1) const
ReturnedValue asReturnedValue() const
Definition qv4value_p.h:342