Merge "Merge remote-tracking branch 'origin/5.11' into dev" into refs/staging/dev

This commit is contained in:
Liang Qi 2018-04-26 15:53:08 +00:00 committed by The Qt Project
commit b3ebe8713b
50 changed files with 213 additions and 307 deletions

View File

@ -882,7 +882,6 @@ die "The -version argument is mandatory" if (!$module_version);
$build_basedir = $out_basedir if (!defined($build_basedir));
our @ignore_headers = ();
our @ignore_for_master_contents = ();
our @ignore_for_include_check = ();
our @ignore_for_qt_begin_namespace_check = ();
our @ignore_for_qt_module_check = ();
@ -1026,10 +1025,6 @@ foreach my $lib (@modules_to_sync) {
$qpa_header = 1;
} elsif ($allheadersprivate || $thisprivate || $public_header =~ /_p(ch)?\.h$/) {
$public_header = 0;
} else {
foreach (@ignore_for_master_contents) {
$public_header = 0 if($header eq $_);
}
}
my $clean_header;

View File

@ -552,11 +552,11 @@
"output": [ "prepareSpec", "prepareOptions", "preparePaths", "reloadSpec" ]
},
"machineTuple": {
"condition": "!config.linux || config.android || tests.machineTuple",
"condition": "config.linux && !config.android && tests.machineTuple",
"output": [ "machineTuple" ]
},
"commit": {
"condition": "features.machineTuple",
"condition": "features.machineTuple || true",
"output": [ "commitOptions" ]
},
"android-style-assets": {

View File

@ -37,6 +37,10 @@
\borderedimage dirview-example.png
\quotefromfile itemviews/dirview/main.cpp
\skipto QCommandLineParser parser
\printuntil parser.positionalArguments
The example supports a number of command line options.
These options include:
\list
@ -47,22 +51,17 @@
use custom directory options
\endlist
\quotefromfile itemviews/dirview/main.cpp
\skipto QCommandLineParser parser
\printuntil parser.positionalArguments
Declares a QFileSystemModel as data model for viewing
the local file system. QFileSystem works with a cache, that is,
it is updated continually with QFileSystemWatcher on that folder.
\skipto QFileSystemModel
\printuntil tree.setModel
Creates a model/view implementation called \c tree
for viewing the filesystem.
Declares \c model as data model for reading the local filesystem.
\c model.setRootPath("") sets the current folder as the folder from
which \c model will start reading.
QTreeView object \c tree visualizes the filesystem in a tree structure.
\skipto tree.setAnimated(false)
\printuntil tree.setWindowTitle
Sets some formatting options for \c tree.
Sets layout options for animation, indentation, sorting, and sizing of the
filesystem tree.
*/

View File

@ -88,7 +88,8 @@ ShadeWidget::ShadeWidget(ShadeType type, QWidget *parent)
setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
connect(m_hoverPoints, SIGNAL(pointsChanged(QPolygonF)), this, SIGNAL(colorsChanged()));
connect(m_hoverPoints, &HoverPoints::pointsChanged,
this, &ShadeWidget::colorsChanged);
}
QPolygonF ShadeWidget::points() const
@ -191,10 +192,14 @@ GradientEditor::GradientEditor(QWidget *parent)
vbox->addWidget(m_blue_shade);
vbox->addWidget(m_alpha_shade);
connect(m_red_shade, SIGNAL(colorsChanged()), this, SLOT(pointsUpdated()));
connect(m_green_shade, SIGNAL(colorsChanged()), this, SLOT(pointsUpdated()));
connect(m_blue_shade, SIGNAL(colorsChanged()), this, SLOT(pointsUpdated()));
connect(m_alpha_shade, SIGNAL(colorsChanged()), this, SLOT(pointsUpdated()));
connect(m_red_shade, &ShadeWidget::colorsChanged,
this, &GradientEditor::pointsUpdated);
connect(m_green_shade, &ShadeWidget::colorsChanged,
this, &GradientEditor::pointsUpdated);
connect(m_blue_shade, &ShadeWidget::colorsChanged,
this, &GradientEditor::pointsUpdated);
connect(m_alpha_shade, &ShadeWidget::colorsChanged,
this, &GradientEditor::pointsUpdated);
}
inline static bool x_less_than(const QPointF &p1, const QPointF &p2)
@ -354,33 +359,46 @@ GradientWidget::GradientWidget(QWidget *parent)
defaultsGroupLayout->addWidget(default3Button);
editorGroupLayout->addWidget(default4Button);
connect(m_editor, SIGNAL(gradientStopsChanged(QGradientStops)),
m_renderer, SLOT(setGradientStops(QGradientStops)));
connect(m_editor, &GradientEditor::gradientStopsChanged,
m_renderer, &GradientRenderer::setGradientStops);
connect(m_linearButton, &QRadioButton::clicked,
m_renderer, &GradientRenderer::setLinearGradient);
connect(m_radialButton, &QRadioButton::clicked,
m_renderer, &GradientRenderer::setRadialGradient);
connect(m_conicalButton,&QRadioButton::clicked,
m_renderer, &GradientRenderer::setConicalGradient);
connect(m_linearButton, SIGNAL(clicked()), m_renderer, SLOT(setLinearGradient()));
connect(m_radialButton, SIGNAL(clicked()), m_renderer, SLOT(setRadialGradient()));
connect(m_conicalButton, SIGNAL(clicked()), m_renderer, SLOT(setConicalGradient()));
connect(m_padSpreadButton, &QRadioButton::clicked,
m_renderer, &GradientRenderer::setPadSpread);
connect(m_reflectSpreadButton, &QRadioButton::clicked,
m_renderer, &GradientRenderer::setReflectSpread);
connect(m_repeatSpreadButton, &QRadioButton::clicked,
m_renderer, &GradientRenderer::setRepeatSpread);
connect(m_padSpreadButton, SIGNAL(clicked()), m_renderer, SLOT(setPadSpread()));
connect(m_reflectSpreadButton, SIGNAL(clicked()), m_renderer, SLOT(setReflectSpread()));
connect(m_repeatSpreadButton, SIGNAL(clicked()), m_renderer, SLOT(setRepeatSpread()));
connect(default1Button, &QPushButton::clicked,
this, &GradientWidget::setDefault1);
connect(default2Button, &QPushButton::clicked,
this, &GradientWidget::setDefault2);
connect(default3Button, &QPushButton::clicked,
this, &GradientWidget::setDefault3);
connect(default4Button, &QPushButton::clicked,
this, &GradientWidget::setDefault4);
connect(default1Button, SIGNAL(clicked()), this, SLOT(setDefault1()));
connect(default2Button, SIGNAL(clicked()), this, SLOT(setDefault2()));
connect(default3Button, SIGNAL(clicked()), this, SLOT(setDefault3()));
connect(default4Button, SIGNAL(clicked()), this, SLOT(setDefault4()));
connect(showSourceButton, SIGNAL(clicked()), m_renderer, SLOT(showSource()));
connect(showSourceButton, &QPushButton::clicked,
m_renderer, &GradientRenderer::showSource);
#ifdef QT_OPENGL_SUPPORT
connect(enableOpenGLButton, SIGNAL(clicked(bool)), m_renderer, SLOT(enableOpenGL(bool)));
connect(enableOpenGLButton, QOverload<bool>::of(&QPushButton::clicked),
m_renderer, &ArthurFrame::enableOpenGL);
#endif
connect(whatsThisButton, SIGNAL(clicked(bool)), m_renderer, SLOT(setDescriptionEnabled(bool)));
connect(whatsThisButton, SIGNAL(clicked(bool)),
m_renderer->hoverPoints(), SLOT(setDisabled(bool)));
connect(m_renderer, SIGNAL(descriptionEnabledChanged(bool)),
whatsThisButton, SLOT(setChecked(bool)));
connect(m_renderer, SIGNAL(descriptionEnabledChanged(bool)),
m_renderer->hoverPoints(), SLOT(setDisabled(bool)));
connect(whatsThisButton, QOverload<bool>::of(&QPushButton::clicked),
m_renderer, &ArthurFrame::setDescriptionEnabled);
connect(whatsThisButton, QOverload<bool>::of(&QPushButton::clicked),
m_renderer->hoverPoints(), &HoverPoints::setDisabled);
connect(m_renderer, QOverload<bool>::of(&ArthurFrame::descriptionEnabledChanged),
whatsThisButton, &QPushButton::setChecked);
connect(m_renderer, QOverload<bool>::of(&ArthurFrame::descriptionEnabledChanged),
m_renderer->hoverPoints(), &HoverPoints::setDisabled);
m_renderer->loadSourceFile(":res/gradients/gradients.cpp");
m_renderer->loadDescription(":res/gradients/gradients.html");

View File

@ -1953,11 +1953,12 @@ MakefileGenerator::writeExtraCompilerTargets(QTextStream &t)
}
QT_PCLOSE(proc);
if(!indeps.isEmpty()) {
QDir outDir(Option::output_dir);
// ### This is basically fubar. Add 'lines' flag to CONFIG?
QStringList dep_cmd_deps = indeps.replace('\n', ' ').simplified().split(' ');
for(int i = 0; i < dep_cmd_deps.count(); ++i) {
QString &file = dep_cmd_deps[i];
QString absFile = QDir(Option::output_dir).absoluteFilePath(file);
QString absFile = outDir.absoluteFilePath(file);
if (exists(absFile)) {
file = absFile;
} else {
@ -1965,8 +1966,9 @@ MakefileGenerator::writeExtraCompilerTargets(QTextStream &t)
QList<QMakeLocalFileName> depdirs = QMakeSourceFileInfo::dependencyPaths();
for (QList<QMakeLocalFileName>::Iterator dit = depdirs.begin();
dit != depdirs.end(); ++dit) {
if (exists((*dit).local() + '/' + file)) {
localFile = (*dit).local() + '/' + file;
QString lf = outDir.absoluteFilePath((*dit).local() + '/' + file);
if (exists(lf)) {
localFile = lf;
break;
}
}
@ -2045,11 +2047,12 @@ MakefileGenerator::writeExtraCompilerTargets(QTextStream &t)
}
QT_PCLOSE(proc);
if(!indeps.isEmpty()) {
QDir outDir(Option::output_dir);
// ### This is basically fubar. Add 'lines' flag to CONFIG?
QStringList dep_cmd_deps = indeps.replace('\n', ' ').simplified().split(' ');
for(int i = 0; i < dep_cmd_deps.count(); ++i) {
QString &file = dep_cmd_deps[i];
QString absFile = QDir(Option::output_dir).absoluteFilePath(file);
QString absFile = outDir.absoluteFilePath(file);
if (exists(absFile)) {
file = absFile;
} else {
@ -2057,8 +2060,9 @@ MakefileGenerator::writeExtraCompilerTargets(QTextStream &t)
QList<QMakeLocalFileName> depdirs = QMakeSourceFileInfo::dependencyPaths();
for (QList<QMakeLocalFileName>::Iterator dit = depdirs.begin();
dit != depdirs.end(); ++dit) {
if (exists((*dit).local() + '/' + file)) {
localFile = (*dit).local() + '/' + file;
QString lf = outDir.absoluteFilePath((*dit).local() + '/' + file);
if (exists(lf)) {
localFile = lf;
break;
}
}

View File

@ -387,11 +387,11 @@ CONFIG += no_keywords
//! [34]
QString FriendlyConversation::greeting(int type)
{
static const char *greeting_strings[] = {
QT_TR_NOOP("Hello"),
QT_TR_NOOP("Goodbye")
};
return tr(greeting_strings[type]);
static const char *greeting_strings[] = {
QT_TR_NOOP("Hello"),
QT_TR_NOOP("Goodbye")
};
return tr(greeting_strings[type]);
}
//! [34]
@ -410,7 +410,7 @@ QString FriendlyConversation::greeting(int type)
QString global_greeting(int type)
{
return qApp->translate("FriendlyConversation",
greeting_strings[type]);
greeting_strings[type]);
}
//! [35]
@ -434,8 +434,8 @@ QString FriendlyConversation::greeting(int type)
QString global_greeting(int type)
{
return qApp->translate("FriendlyConversation",
greeting_strings[type].source,
greeting_strings[type].comment);
greeting_strings[type].source,
greeting_strings[type].comment);
}
//! [36]

View File

@ -648,10 +648,10 @@ Q_STATIC_ASSERT((std::is_same<qsizetype, qptrdiff>::value));
compiler or platform specific code to their application.
The remaining macros are convenience macros for larger operations:
The QT_TRANSLATE_NOOP() and QT_TR_NOOP() macros provide the
possibility of marking text for dynamic translation,
i.e. translation without changing the stored source text. The
Q_ASSERT() and Q_ASSERT_X() enables warning messages of various
The QT_TR_NOOP(), QT_TRANSLATE_NOOP(), and QT_TRANSLATE_NOOP3()
macros provide the possibility of marking strings for delayed
translation.
The Q_ASSERT() and Q_ASSERT_X() enables warning messages of various
level of refinement. The Q_FOREACH() and foreach() macros
implement Qt's foreach loop.
@ -662,11 +662,11 @@ Q_STATIC_ASSERT((std::is_same<qsizetype, qptrdiff>::value));
memory, if the pointer is 0. The qPrintable() and qUtf8Printable()
macros represent an easy way of printing text.
Finally, the QT_POINTER_SIZE macro expands to the size of a
pointer in bytes, and the QT_VERSION and QT_VERSION_STR macros
expand to a numeric value or a string, respectively, specifying
Qt's version number, i.e the version the application is compiled
against.
The QT_POINTER_SIZE macro expands to the size of a pointer in bytes.
The macros QT_VERSION and QT_VERSION_STR expand to a numeric value
or a string, respectively, that specifies the version of Qt that the
application is compiled against.
\sa <QtAlgorithms>, QSysInfo
*/
@ -3676,19 +3676,18 @@ bool qunsetenv(const char *varName)
\macro QT_TR_NOOP(sourceText)
\relates <QtGlobal>
Marks the string literal \a sourceText for dynamic translation in
the current context (class), i.e the stored \a sourceText will not
be altered.
Marks the UTF-8 encoded string literal \a sourceText for delayed
translation in the current context (class).
The macro expands to \a sourceText.
The macro tells lupdate to collect the string, and expands to
\a sourceText itself.
Example:
\snippet code/src_corelib_global_qglobal.cpp 34
The macro QT_TR_NOOP_UTF8() is identical except that it tells lupdate
that the source string is encoded in UTF-8. Corresponding variants
exist in the QT_TRANSLATE_NOOP() family of macros, too.
The macro QT_TR_NOOP_UTF8() is identical and obsolete; this applies
to all other _UTF8 macros as well.
\sa QT_TRANSLATE_NOOP(), {Internationalization with Qt}
*/
@ -3697,12 +3696,12 @@ bool qunsetenv(const char *varName)
\macro QT_TRANSLATE_NOOP(context, sourceText)
\relates <QtGlobal>
Marks the string literal \a sourceText for dynamic translation in
the given \a context; i.e, the stored \a sourceText will not be
altered. The \a context is typically a class and also needs to
be specified as string literal.
Marks the UTF-8 encoded string literal \a sourceText for delayed
translation in the given \a context. The \a context is typically
a class name and also needs to be specified as a string literal.
The macro expands to \a sourceText.
The macro tells lupdate to collect the string, and expands to
\a sourceText itself.
Example:
@ -3712,18 +3711,19 @@ bool qunsetenv(const char *varName)
*/
/*!
\macro QT_TRANSLATE_NOOP3(context, sourceText, comment)
\macro QT_TRANSLATE_NOOP3(context, sourceText, disambiguation)
\relates <QtGlobal>
\since 4.4
Marks the string literal \a sourceText for dynamic translation in the
given \a context and with \a comment, i.e the stored \a sourceText will
not be altered. The \a context is typically a class and also needs to
be specified as string literal. The string literal \a comment
will be available for translators using e.g. Qt Linguist.
Marks the UTF-8 encoded string literal \a sourceText for delayed
translation in the given \a context with the given \a disambiguation.
The \a context is typically a class and also needs to be specified
as a string literal. The string literal \a disambiguation should be
a short semantic tag to tell apart otherwise identical strings.
The macro expands to anonymous struct of the two string
literals passed as \a sourceText and \a comment.
The macro tells lupdate to collect the string, and expands to an
anonymous struct of the two string literals passed as \a sourceText
and \a disambiguation.
Example:

View File

@ -1062,7 +1062,7 @@ template <typename Ptr> inline auto qGetPtrHelper(const Ptr &ptr) -> decltype(pt
#define QT_TRANSLATE_NOOP3(scope, x, comment) {x, comment}
#define QT_TRANSLATE_NOOP3_UTF8(scope, x, comment) {x, comment}
#ifndef QT_NO_TRANSLATION // ### This should enclose the NOOPs above
#ifndef QT_NO_TRANSLATION // ### Qt6: This should enclose the NOOPs above
// Defined in qcoreapplication.cpp
// The better name qTrId() is reserved for an upcoming function which would

View File

@ -147,9 +147,15 @@ static void setBoolLane(QBasicAtomicInt *atomic, bool enable, int shift)
Rules are evaluated in text order, from first to last. That is, if two rules
apply to a category/type, the rule that comes later is applied.
Rules can be set via \l setFilterRules(). Since Qt 5.3, logging rules can also
be set in the \c QT_LOGGING_RULES environment variable, and
are automatically loaded from the \c [Rules] section of a logging
Rules can be set via \l setFilterRules():
\code
QLoggingCategory::setFilterRules("*.debug=false\n"
"driver.usb.debug=true");
\endcode
Since Qt 5.3, logging rules are also
automatically loaded from the \c [Rules] section of a logging
configuration file. Such configuration files are looked up in the QtProject
configuration directory, or explicitly set in a \c QT_LOGGING_CONF
environment variable:
@ -160,19 +166,18 @@ static void setBoolLane(QBasicAtomicInt *atomic, bool enable, int shift)
driver.usb.debug=true
\endcode
Rules set by \l setFilterRules() take precedence over rules specified
in the QtProject configuration directory, and can, in turn, be
overwritten by rules from the configuration file specified by
\c QT_LOGGING_CONF, and rules set by \c QT_LOGGING_RULES.
Since Qt 5.6, \c QT_LOGGING_RULES may contain multiple rules separated
by semicolons:
Since Qt 5.3, logging rules can also be specified in a \c QT_LOGGING_RULES
environment variable. And since Qt 5.6, multiple rules can also be
separated by semicolons:
\code
QT_LOGGING_RULES="*.debug=false;driver.usb.debug=true"
\endcode
Rules set by \l setFilterRules() take precedence over rules specified
in the QtProject configuration directory, and can, in turn, be
overwritten by rules from the configuration file specified by
\c QT_LOGGING_CONF, and rules set by \c QT_LOGGING_RULES.
Order of evaluation:
\list

View File

@ -520,7 +520,12 @@ public:
const typename Simd::Float32x4 v_r0 = Simd::v_dup(data->gradient.radial.focal.radius);
const typename Simd::Float32x4 v_dr = Simd::v_dup(op->radial.dr);
#if defined(__ARM_NEON__)
// NEON doesn't have SIMD sqrt, but uses rsqrt instead that can't be taken of 0.
const typename Simd::Float32x4 v_min = Simd::v_dup(std::numeric_limits<float>::epsilon());
#else
const typename Simd::Float32x4 v_min = Simd::v_dup(0.0f);
#endif
const typename Simd::Float32x4 v_max = Simd::v_dup(float(GRADIENT_STOPTABLE_SIZE-1));
const typename Simd::Float32x4 v_half = Simd::v_dup(0.5f);

View File

@ -2474,7 +2474,7 @@ void QTextDocumentLayoutPrivate::layoutFlow(QTextFrame::Iterator it, QTextLayout
QTextTableData *td = static_cast<QTextTableData *>(data(lastIt.currentFrame()));
QTextLayout *layout = block.layout();
QFixed height = QFixed::fromReal(layout->lineAt(0).height());
QFixed height = layout->lineCount() > 0 ? QFixed::fromReal(layout->lineAt(0).height()) : QFixed();
if (layoutStruct->pageBottom == origPageBottom) {
layoutStruct->y -= height;
@ -2486,10 +2486,12 @@ void QTextDocumentLayoutPrivate::layoutFlow(QTextFrame::Iterator it, QTextLayout
layoutBlock(block, docPos, blockFormat, layoutStruct, layoutFrom, layoutTo, previousBlockFormatPtr);
}
QPointF linePos((td->position.x + td->size.width).toReal(),
(td->position.y + td->size.height - height).toReal());
if (layout->lineCount() > 0) {
QPointF linePos((td->position.x + td->size.width).toReal(),
(td->position.y + td->size.height - height).toReal());
layout->lineAt(0).setPosition(linePos - layout->position());
layout->lineAt(0).setPosition(linePos - layout->position());
}
}
if (blockFormat.pageBreakPolicy() & QTextFormat::PageBreak_AlwaysAfter)

View File

@ -73,8 +73,6 @@ static QFont qfontForCocoaFont(NSFont *cocoaFont, const QFont &resolveFont)
return newFont;
}
@class QT_MANGLE_NAMESPACE(QNSFontPanelDelegate);
@interface QT_MANGLE_NAMESPACE(QNSFontPanelDelegate) : NSObject<NSWindowDelegate, QNSPanelDelegate>
- (void)restoreOriginalContentView;
- (void)updateQtFont;
@ -109,7 +107,8 @@ QT_NAMESPACE_ALIAS_OBJC_CLASS(QNSFontPanelDelegate);
[mFontPanel setRestorable:NO];
[mFontPanel setDelegate:self];
[[NSFontManager sharedFontManager] setDelegate:self];
[NSFontManager sharedFontManager].target = self; // Action is changeFont:
[mFontPanel retain];
}
@ -120,7 +119,7 @@ QT_NAMESPACE_ALIAS_OBJC_CLASS(QNSFontPanelDelegate);
{
[mStolenContentView release];
[mFontPanel setDelegate:nil];
[[NSFontManager sharedFontManager] setDelegate:nil];
[NSFontManager sharedFontManager].target = nil;
[[NSNotificationCenter defaultCenter] removeObserver:self];
[super dealloc];

View File

@ -394,8 +394,10 @@ void QCocoaWindow::setVisible(bool visible)
removeMonitor();
monitor = [NSEvent addGlobalMonitorForEventsMatchingMask:NSLeftMouseDownMask|NSRightMouseDownMask|NSOtherMouseDownMask|NSMouseMovedMask handler:^(NSEvent *e) {
QPointF localPoint = QCocoaScreen::mapFromNative([NSEvent mouseLocation]);
const auto eventType = e.type == NSMouseMoved ? QEvent::MouseMove : QEvent::MouseButtonPress;
QWindowSystemInterface::handleMouseEvent(window(), window()->mapFromGlobal(localPoint.toPoint()), localPoint,
cocoaButton2QtButton([e buttonNumber]));
Qt::MouseButtons(uint(NSEvent.pressedMouseButtons & 0xFFFF)),
cocoaButton2QtButton(e.buttonNumber), eventType);
}];
}
}
@ -1331,7 +1333,7 @@ void QCocoaWindow::recreateWindowIfNeeded()
void QCocoaWindow::requestUpdate()
{
qCDebug(lcQpaDrawing) << "QCocoaWindow::requestUpdate" << window();
[qnsview_cast(m_view) requestUpdate];
QPlatformWindow::requestUpdate();
}
void QCocoaWindow::deliverUpdateRequest()

View File

@ -102,6 +102,7 @@ QWindowsKeyMapper::QWindowsKeyMapper()
QGuiApplication *app = static_cast<QGuiApplication *>(QGuiApplication::instance());
QObject::connect(app, &QGuiApplication::applicationStateChanged,
app, clearKeyRecorderOnApplicationInActive);
changeKeyboard();
}
QWindowsKeyMapper::~QWindowsKeyMapper()
@ -317,9 +318,9 @@ static const uint KeyTbl[] = { // Keyboard mapping table
Qt::Key_9, // 105 0x69 VK_NUMPAD9 | Numeric keypad 9 key
Qt::Key_Asterisk, // 106 0x6A VK_MULTIPLY | Multiply key
Qt::Key_Plus, // 107 0x6B VK_ADD | Add key
Qt::Key_Comma, // 108 0x6C VK_SEPARATOR | Separator key
Qt::Key_unknown, // 108 0x6C VK_SEPARATOR | Separator key (locale-dependent)
Qt::Key_Minus, // 109 0x6D VK_SUBTRACT | Subtract key
Qt::Key_Period, // 110 0x6E VK_DECIMAL | Decimal key
Qt::Key_unknown, // 110 0x6E VK_DECIMAL | Decimal key (locale-dependent)
Qt::Key_Slash, // 111 0x6F VK_DIVIDE | Divide key
Qt::Key_F1, // 112 0x70 VK_F1 | F1 key
Qt::Key_F2, // 113 0x71 VK_F2 | F2 key
@ -810,7 +811,7 @@ bool QWindowsKeyMapper::translateKeyEvent(QWindow *widget, HWND hwnd,
// Reset layout map when system keyboard layout is changed
if (msg.message == WM_INPUTLANGCHANGE) {
deleteLayouts();
changeKeyboard();
return true;
}

View File

@ -48,6 +48,7 @@
#include <QMdiSubWindow>
#endif
#include <QAbstractScrollArea>
#include <QPainter>
QT_BEGIN_NAMESPACE

View File

@ -3850,7 +3850,7 @@ void QStyleSheetStyle::drawControl(ControlElement ce, const QStyleOption *opt, Q
if(hasStyleRule(w, PseudoElement_HeaderViewSection)) {
QRenderRule subRule = renderRule(w, opt, PseudoElement_HeaderViewSection);
if (!subRule.hasNativeBorder() || !subRule.baseStyleCanDraw()
|| subRule.hasBackground() || subRule.hasPalette()) {
|| subRule.hasBackground() || subRule.hasPalette() || subRule.hasFont) {
ParentStyle::drawControl(ce, opt, p, w);
return;
}
@ -3887,12 +3887,14 @@ void QStyleSheetStyle::drawControl(ControlElement ce, const QStyleOption *opt, Q
QStyleOptionHeader hdr(*header);
QRenderRule subRule = renderRule(w, opt, PseudoElement_HeaderViewSection);
subRule.configurePalette(&hdr.palette, QPalette::ButtonText, QPalette::Button);
QFont oldFont = p->font();
if (subRule.hasFont)
if (subRule.hasFont) {
QFont oldFont = p->font();
p->setFont(subRule.font.resolve(p->font()));
baseStyle()->drawControl(ce, &hdr, p, w);
if (subRule.hasFont)
ParentStyle::drawControl(ce, &hdr, p, w);
p->setFont(oldFont);
} else {
baseStyle()->drawControl(ce, &hdr, p, w);
}
return;
}
break;

View File

@ -185,12 +185,10 @@ private Q_SLOTS:
};
template <bool> inline void booleanHelper() { }
struct TypeInStruct { TEST_TYPE type; };
void tst_QAtomicIntegerXX::static_checks()
{
Q_STATIC_ASSERT(sizeof(QAtomicInteger<T>) == sizeof(T));
Q_STATIC_ASSERT(Q_ALIGNOF(QAtomicInteger<T>) == Q_ALIGNOF(TypeInStruct));
// statements with no effect
(void) QAtomicInteger<T>::isReferenceCountingNative();

View File

@ -589,6 +589,9 @@ void tst_QWindow::childWindowPositioning_data()
void tst_QWindow::childWindowPositioning()
{
if (isPlatformWayland())
QSKIP("Wayland: This is flaky (protocol errors for xdg-shell v6). See QTBUG-67648.");
const QPoint topLeftOrigin(0, 0);
ColoredWindow topLevelWindowFirst(Qt::green);

View File

@ -2963,10 +2963,6 @@ void fpe_steepSlopes()
void fpe_radialGradients()
{
#if defined(Q_PROCESSOR_ARM)
QEXPECT_FAIL("", "Test fails for ARM (QTBUG-59961)", Continue);
#endif
FpExceptionChecker checker(FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID | FE_DIVBYZERO);
QImage img(21, 21, QImage::Format_ARGB32_Premultiplied);

View File

@ -365,9 +365,8 @@ void tst_QGraphicsEffect::draw()
// Make sure we update the source when disabling/enabling the effect.
effect->setEnabled(false);
QTest::qWait(50);
QTRY_COMPARE(item->numRepaints, 1);
QCOMPARE(effect->numRepaints, 0);
QCOMPARE(item->numRepaints, 1);
effect->reset();
item->reset();

View File

@ -288,7 +288,6 @@ void tst_QApplication::alert()
widget2.show();
QVERIFY(QTest::qWaitForWindowExposed(&widget));
QVERIFY(QTest::qWaitForWindowExposed(&widget2));
QTest::qWait(100);
app.alert(&widget, -1);
app.alert(&widget, 250);
widget2.activateWindow();
@ -1711,6 +1710,7 @@ void tst_QApplication::focusOut()
le2->setStyleSheet("background: #fee");
le2->move(100, 100);
w.show();
QVERIFY(QTest::qWaitForWindowExposed(&w));
QTest::qWait(2000);
le2->setFocus();

View File

@ -227,15 +227,13 @@ void tst_QBoxLayout::setStyleShouldChangeSpacing()
window.show();
QVERIFY(QTest::qWaitForWindowExposed(&window));
int spacing = pb2->geometry().left() - pb1->geometry().right() - 1;
QCOMPARE(spacing, 6);
auto spacing = [&]() { return pb2->geometry().left() - pb1->geometry().right() - 1; };
QCOMPARE(spacing(), 6);
QScopedPointer<CustomLayoutStyle> style2(new CustomLayoutStyle());
style2->hspacing = 10;
window.setStyle(style2.data());
QTest::qWait(100);
spacing = pb2->geometry().left() - pb1->geometry().right() - 1;
QCOMPARE(spacing, 10);
QTRY_COMPARE(spacing(), 10);
}
void tst_QBoxLayout::taskQTBUG_7103_minMaxWidthNotRespected()

View File

@ -164,7 +164,7 @@ private slots:
void tst_QFormLayout::cleanup()
{
QVERIFY(QApplication::topLevelWidgets().isEmpty());
QTRY_VERIFY(QApplication::topLevelWidgets().isEmpty());
}
void tst_QFormLayout::rowCount()
@ -1188,7 +1188,6 @@ void tst_QFormLayout::layoutAlone()
w.setWindowTitle(QTest::currentTestFunction());
w.show();
layout.activate();
QTest::qWait(500);
}
void tst_QFormLayout::taskQTBUG_27420_takeAtShouldUnparentLayout()

View File

@ -1441,7 +1441,6 @@ void tst_QGridLayout::layoutSpacing()
QLayout *layout = widget->layout();
QVERIFY(layout);
//QTest::qWait(2000);
for (int pi = 0; pi < expectedpositions.count(); ++pi) {
QLayoutItem *item = layout->itemAt(pi);
//qDebug() << item->widget()->pos();

View File

@ -604,7 +604,7 @@ void tst_QShortcut::disabledItems()
{
clearAllShortcuts();
mainW->activateWindow();
QTest::qWait(100);
QVERIFY(QTest::qWaitForWindowActive(mainW));
/* Testing Disabled Shortcuts
Qt::Key_M on slot1

View File

@ -103,7 +103,7 @@ void tst_QStackedLayout::init()
// make sure the tests work with focus follows mouse
QCursor::setPos(testWidget->geometry().center());
testWidget->activateWindow();
QTest::qWait(250);
QVERIFY(QTest::qWaitForWindowActive(testWidget));
}
void tst_QStackedLayout::cleanup()
@ -251,24 +251,13 @@ void tst_QStackedLayout::removeWidget()
testLayout->addWidget(w2);
vbox->addLayout(testLayout);
top->setFocus();
QTest::qWait(100);
top->activateWindow();
QTest::qWait(100);
int i =0;
for (;;) {
if (QApplication::focusWidget() == top)
break;
else if (i >= 5)
QSKIP("Can't get focus");
QTest::qWait(100);
++i;
}
QCOMPARE(QApplication::focusWidget(), static_cast<QWidget *>(top));
QTRY_COMPARE(QApplication::focusWidget(), top);
// focus should stay at the 'top' widget
testLayout->removeWidget(w1);
QCOMPARE(QApplication::focusWidget(), static_cast<QWidget *>(top));
QCOMPARE(QApplication::focusWidget(), top);
}
class LineEdit : public QLineEdit

View File

@ -146,13 +146,7 @@ void tst_QWindowContainer::testExposeObscure()
container->hide();
QElapsedTimer timer;
timer.start();
while (window->numberOfObscures == 0 && timer.elapsed() < 5000) {
QTest::qWait(10);
}
QVERIFY(window->numberOfObscures > 0);
QTRY_VERIFY(window->numberOfObscures > 0);
}
@ -345,11 +339,9 @@ void tst_QWindowContainer::testDockWidget()
QVERIFY(QTest::qWaitForWindowExposed(&mainWindow));
QCOMPARE(window->parent(), mainWindow.window()->windowHandle());
QTest::qWait(1000);
dock->setFloating(true);
QTRY_VERIFY(window->parent() != mainWindow.window()->windowHandle());
QTest::qWait(1000);
dock->setFloating(false);
QTRY_COMPARE(window->parent(), mainWindow.window()->windowHandle());
}

View File

@ -1136,7 +1136,7 @@ void tst_QStyleSheetStyle::minmaxSizes()
centerOnScreen(&tabWidget);
tabWidget.show();
QTest::qWait(50);
QVERIFY(QTest::qWaitForWindowActive(&tabWidget));
//i allow 4px additional border from the native style (hence the -2, <=2)
QVERIFY(qAbs(page2->maximumSize().width() - 500 - 2) <= 2);
QVERIFY(qAbs(page2->minimumSize().width() - 250 - 2) <= 2);
@ -1165,7 +1165,7 @@ void tst_QStyleSheetStyle::task206238_twice()
w.setStyleSheet("background: red;");
centerOnScreen(&w);
w.show();
QTest::qWait(20);
QVERIFY(QTest::qWaitForWindowActive(&w));
QCOMPARE(BACKGROUND(w) , red);
QCOMPARE(BACKGROUND(*tw), red);
w.setStyleSheet("background: red;");
@ -1366,8 +1366,7 @@ void tst_QStyleSheetStyle::proxyStyle()
layout->addWidget(pb5);
w->show();
QTest::qWait(100);
QVERIFY(QTest::qWaitForWindowActive(w));
// Test for QTBUG-7198 - style sheet overrides custom element size
QStyleOptionViewItem opt;
@ -1557,9 +1556,9 @@ void tst_QStyleSheetStyle::embeddedFonts()
box.addItems(QStringList() << "First" << "Second" << "Third");
box.setStyleSheet("QComboBox { font-size: 32px; }");
box.show();
QVERIFY(QTest::qWaitForWindowActive(&box));
embedded = box.findChild<QLineEdit *>();
QVERIFY(embedded);
QTest::qWait(20);
QCOMPARE(box.font().pixelSize(), 32);
QCOMPARE(embedded->font().pixelSize(), 32);
}
@ -1652,7 +1651,7 @@ void tst_QStyleSheetStyle::task188195_baseBackground()
tree.setStyleSheet( "QTreeView:disabled { background-color:#ab1251; }" );
tree.move(QGuiApplication::primaryScreen()->availableGeometry().topLeft() + QPoint(20, 100));
tree.show();
QTest::qWait(20);
QVERIFY(QTest::qWaitForWindowActive(&tree));
QImage image(tree.width(), tree.height(), QImage::Format_ARGB32);
tree.render(&image);
@ -1673,7 +1672,7 @@ void tst_QStyleSheetStyle::task188195_baseBackground()
table.setStyleSheet( "QTableView {background-color: #ff0000}" );
table.move(QGuiApplication::primaryScreen()->availableGeometry().topLeft() + QPoint(300, 100));
table.show();
QTest::qWait(20);
QVERIFY(QTest::qWaitForWindowActive(&table));
image = QImage(table.width(), table.height(), QImage::Format_ARGB32);
table.render(&image);
QVERIFY(testForColors(image, Qt::red, true));

View File

@ -473,14 +473,9 @@ void tst_QAbstractButton::setShortcut()
QKeySequence seq( Qt::Key_A );
testWidget->setShortcut( seq );
QApplication::setActiveWindow(testWidget);
testWidget->activateWindow();
// must be active to get shortcuts
for (int i = 0; !testWidget->isActiveWindow() && i < 100; ++i) {
testWidget->activateWindow();
QApplication::instance()->processEvents();
QTest::qWait(100);
}
QVERIFY(testWidget->isActiveWindow());
QVERIFY(QTest::qWaitForWindowActive(testWidget));
QTest::keyClick( testWidget, 'A' );
QTest::qWait(300); // Animate click takes time
@ -508,9 +503,7 @@ void tst_QAbstractButton::animateClick()
QVERIFY( testWidget->isDown() );
qApp->processEvents();
QVERIFY( testWidget->isDown() );
QTest::qWait(200);
qApp->processEvents();
QVERIFY( !testWidget->isDown() );
QTRY_VERIFY( !testWidget->isDown() );
}
void tst_QAbstractButton::shortcutEvents()
@ -614,7 +607,7 @@ void tst_QAbstractButton::keyNavigation()
widget.show();
qApp->setActiveWindow(&widget);
widget.activateWindow();
QTest::qWait(30);
QVERIFY(QTest::qWaitForWindowActive(&widget));
buttons[1][1]->setFocus();
QTest::qWait(400);

View File

@ -346,6 +346,7 @@ void tst_QAbstractScrollArea::patternBackground()
widget.resize(600, 600);
scrollArea.setWidget(&widget);
topLevel.show();
QVERIFY(QTest::qWaitForWindowActive(&topLevel));
QLinearGradient linearGrad(QPointF(250, 250), QPointF(300, 300));
linearGrad.setColorAt(0, Qt::yellow);
@ -354,7 +355,6 @@ void tst_QAbstractScrollArea::patternBackground()
scrollArea.viewport()->setPalette(QPalette(Qt::black, bg, bg, bg, bg, bg, bg, bg, bg));
widget.setPalette(Qt::transparent);
QTest::qWait(50);
QImage image(200, 200, QImage::Format_ARGB32);
scrollArea.render(&image);
@ -366,7 +366,6 @@ void tst_QAbstractScrollArea::patternBackground()
QScrollBar *vbar = scrollArea.verticalScrollBar();
vbar->setValue(vbar->maximum());
QTest::qWait(50);
scrollArea.render(&image);
QCOMPARE(image.pixel(QPoint(20,20)) , QColor(Qt::red).rgb());

View File

@ -174,12 +174,10 @@ void tst_QCalendarWidget::buttonClickCheck()
QTest::mouseClick(button, Qt::LeftButton, Qt::NoModifier, button->rect().center(), 2);
QVERIFY(!button->isVisible());
QSpinBox *spinbox = object.findChild<QSpinBox *>("qt_calendar_yearedit");
QTest::qWait(500);
QTest::keyClick(spinbox, '2');
QTest::keyClick(spinbox, '0');
QTest::keyClick(spinbox, '0');
QTest::keyClick(spinbox, '6');
QTest::qWait(500);
QWidget *widget = object.findChild<QWidget *>("qt_calendar_calendarview");
QTest::mouseMove(widget);
QTest::mouseClick(widget, Qt::LeftButton);
@ -305,7 +303,6 @@ void tst_QCalendarWidget::showPrevNext()
QCOMPARE(calWidget.monthShown(), expectedDate.month());
// QTBUG-4058
QTest::qWait(20);
QToolButton *button = calWidget.findChild<QToolButton *>("qt_calendar_prevmonth");
QTest::mouseClick(button, Qt::LeftButton);
expectedDate = expectedDate.addMonths(-1);

View File

@ -83,6 +83,7 @@ void tst_QCheckBox::initTestCase()
testWidget->setObjectName("testObject");
testWidget->resize( 200, 200 );
testWidget->show();
QVERIFY(QTest::qWaitForWindowActive(testWidget));
}
void tst_QCheckBox::cleanupTestCase()
@ -240,13 +241,11 @@ void tst_QCheckBox::pressed()
QVERIFY( !testWidget->isChecked() );
QTest::keyPress( testWidget, Qt::Key_Space );
QTest::qWait(100);
QVERIFY( press_count == 1 );
QVERIFY( release_count == 0 );
QVERIFY( !testWidget->isChecked() );
QTest::keyRelease( testWidget, Qt::Key_Space );
QTest::qWait(100);
QVERIFY( press_count == 1 );
QVERIFY( release_count == 1 );
QVERIFY( testWidget->isChecked() );

View File

@ -1995,19 +1995,16 @@ void tst_QComboBox::flaggedItems()
QApplication::setActiveWindow(&comboBox);
comboBox.activateWindow();
comboBox.setFocus();
QVERIFY(QTest::qWaitForWindowActive(&comboBox));
QTRY_VERIFY(comboBox.isVisible());
QTRY_VERIFY(comboBox.hasFocus());
if (editable)
comboBox.lineEdit()->selectAll();
QSignalSpy indexChangedInt(&comboBox, SIGNAL(currentIndexChanged(int)));
for (int i = 0; i < keyMovementList.count(); ++i) {
Qt::Key key = keyMovementList[i];
QTest::keyClick(&comboBox, key);
if (indexChangedInt.count() != i + 1) {
QTest::qWait(400);
}
}
QCOMPARE(comboBox.currentIndex() , expectedIndex);
@ -2447,7 +2444,7 @@ void tst_QComboBox::task220195_keyBoardSelection2()
combo.addItem( QLatin1String("foo3"));
combo.show();
QApplication::setActiveWindow(&combo);
QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(&combo));
QVERIFY(QTest::qWaitForWindowActive(&combo));
combo.setCurrentIndex(-1);
QVERIFY(combo.currentText().isNull());

View File

@ -110,6 +110,7 @@ void tst_QCommandLinkButton::initTestCase()
testWidget->setObjectName("testWidget");
testWidget->resize( 200, 200 );
testWidget->show();
QVERIFY(QTest::qWaitForWindowActive(testWidget));
connect( testWidget, SIGNAL(clicked()), this, SLOT(onClicked()) );
connect( testWidget, SIGNAL(pressed()), this, SLOT(onPressed()) );
@ -166,12 +167,6 @@ void tst_QCommandLinkButton::onReleased()
void tst_QCommandLinkButton::setAutoRepeat()
{
// Give the last tests time to finish - i.e., wait for the window close
// and deactivate to avoid a race condition here. We can't add this to the
// end of the defaultAndAutoDefault test, since any failure in that test
// will return out of that function.
QTest::qWait( 1000 );
// If this changes, this test must be completely revised.
QVERIFY( !testWidget->isCheckable() );
@ -194,8 +189,6 @@ void tst_QCommandLinkButton::setAutoRepeat()
testWidget->setAutoRepeat( false );
QTest::keyPress( testWidget, Qt::Key_Space );
QTest::qWait( 300 );
QVERIFY( testWidget->isDown() );
QVERIFY( toggle_count == 0 );
QVERIFY( press_count == 1 );
@ -206,18 +199,16 @@ void tst_QCommandLinkButton::setAutoRepeat()
resetCounters();
// check that the button is down if we press space while in autorepeat
// we can't actually confirm how many times it is fired, more than 1 is enough.
testWidget->setDown( false );
testWidget->setAutoRepeat( true );
QTest::keyPress( testWidget, Qt::Key_Space );
QTest::qWait(900);
QTRY_VERIFY(press_count > 10);
QVERIFY( testWidget->isDown() );
QVERIFY( toggle_count == 0 );
QTest::keyRelease( testWidget, Qt::Key_Space );
QCOMPARE(press_count, release_count);
QCOMPARE(release_count, click_count);
QVERIFY(press_count > 1);
// #### shouldn't I check here to see if multiple signals have been fired???
@ -227,8 +218,6 @@ void tst_QCommandLinkButton::setAutoRepeat()
testWidget->setAutoRepeat( false );
QTest::keyPress( testWidget, Qt::Key_Enter );
QTest::qWait( 300 );
QVERIFY( !testWidget->isDown() );
QVERIFY( toggle_count == 0 );
QVERIFY( press_count == 0 );
@ -241,7 +230,6 @@ void tst_QCommandLinkButton::setAutoRepeat()
testWidget->setDown( false );
testWidget->setAutoRepeat( true );
QTest::keyClick( testWidget, Qt::Key_Enter );
QTest::qWait( 300 );
QVERIFY( !testWidget->isDown() );
QVERIFY( toggle_count == 0 );
QVERIFY( press_count == 0 );
@ -252,23 +240,19 @@ void tst_QCommandLinkButton::setAutoRepeat()
void tst_QCommandLinkButton::pressed()
{
QTest::keyPress( testWidget, ' ' );
// QTest::qWait( 300 );
QCOMPARE( press_count, (uint)1 );
QCOMPARE( release_count, (uint)0 );
QTest::keyRelease( testWidget, ' ' );
// QTest::qWait( 300 );
QCOMPARE( press_count, (uint)1 );
QCOMPARE( release_count, (uint)1 );
QTest::keyPress( testWidget,Qt::Key_Enter );
// QTest::qWait( 300 );
QCOMPARE( press_count, (uint)1 );
QCOMPARE( release_count, (uint)1 );
testWidget->setAutoDefault(true);
QTest::keyPress( testWidget,Qt::Key_Enter );
// QTest::qWait( 300 );
QCOMPARE( press_count, (uint)2 );
QCOMPARE( release_count, (uint)2 );
testWidget->setAutoDefault(false);
@ -349,19 +333,7 @@ void tst_QCommandLinkButton::setAccel()
// The shortcut will not be activated unless the button is in a active
// window and has focus
testWidget->setFocus();
// QWidget::isActiveWindow() can report window active before application
// has handled the asynchronous activation event on platforms that have
// implemented QPlatformWindow::isActive(), so process events to sync up.
QApplication::instance()->processEvents();
for (int i = 0; !testWidget->isActiveWindow() && i < 1000; ++i) {
testWidget->activateWindow();
QApplication::instance()->processEvents();
QTest::qWait(100);
}
QVERIFY(testWidget->isActiveWindow());
QVERIFY(QTest::qWaitForWindowActive(testWidget));
QTest::keyClick( testWidget, 'A', Qt::AltModifier );
QTest::qWait( 500 );

View File

@ -838,10 +838,9 @@ void tst_QDialogButtonBox::task191642_default()
bb->addButton(QDialogButtonBox::Help);
dlg.show();
QTest::qWait(10);
QVERIFY(QTest::qWaitForWindowActive(&dlg));
QVERIFY(def->isDefault());
QTest::keyPress( &dlg, Qt::Key_Enter );
QTest::qWait(100);
QCOMPARE(clicked.count(), 1);
}

View File

@ -579,8 +579,7 @@ void tst_QDockWidget::visibilityChanged()
QCOMPARE(spy.count(), 0);
mw.addDockWidget(Qt::RightDockWidgetArea, &dw2);
QTest::qWait(200);
QCOMPARE(spy.count(), 1);
QTRY_COMPARE(spy.count(), 1);
QCOMPARE(spy.at(0).at(0).toBool(), true);
}
@ -672,8 +671,7 @@ void tst_QDockWidget::dockLocationChanged()
dw.setFloating(true);
QTest::qWait(100);
dw.setFloating(false);
QTest::qWait(100);
QCOMPARE(spy.count(), 1);
QTRY_COMPARE(spy.count(), 1);
QCOMPARE(qvariant_cast<Qt::DockWidgetArea>(spy.at(0).at(0)),
Qt::TopDockWidgetArea);
spy.clear();
@ -936,8 +934,7 @@ void tst_QDockWidget::task248604_infiniteResize()
d.setContentsMargins(2, 2, 2, 2);
d.setMinimumSize(320, 240);
d.showNormal();
QTest::qWait(400);
QCOMPARE(d.size(), QSize(320, 240));
QTRY_COMPARE(d.size(), QSize(320, 240));
}
@ -950,7 +947,7 @@ void tst_QDockWidget::task258459_visibilityChanged()
QSignalSpy spy1(&dock1, SIGNAL(visibilityChanged(bool)));
QSignalSpy spy2(&dock2, SIGNAL(visibilityChanged(bool)));
win.show();
QTest::qWait(200);
QVERIFY(QTest::qWaitForWindowActive(&win));
QCOMPARE(spy1.count(), 1);
QCOMPARE(spy1.first().first().toBool(), false); //dock1 is invisible
QCOMPARE(spy2.count(), 1);

View File

@ -167,6 +167,7 @@ void tst_QDoubleSpinBox::initTestCase()
testFocusWidget = new QWidget(0);
testFocusWidget->resize(200, 100);
testFocusWidget->show();
QVERIFY(QTest::qWaitForWindowActive(testFocusWidget));
}
void tst_QDoubleSpinBox::cleanupTestCase()
@ -773,8 +774,7 @@ void tst_QDoubleSpinBox::editingFinished()
testFocusWidget->show();
QApplication::setActiveWindow(testFocusWidget);
QTest::qWait(10);
QTRY_VERIFY(testFocusWidget->isActiveWindow());
QVERIFY(QTest::qWaitForWindowActive(testFocusWidget));
box->setFocus();
QTRY_VERIFY(box->hasFocus());
@ -1000,7 +1000,7 @@ void tst_QDoubleSpinBox::task224497_fltMax()
dspin->setMinimum(3);
dspin->setMaximum(FLT_MAX);
dspin->show();
QTest::qWait(1000);
QVERIFY(QTest::qWaitForWindowActive(dspin));
dspin->lineEdit()->selectAll();
QTest::keyClick(dspin->lineEdit(), Qt::Key_Delete);
QTest::keyClick(dspin->lineEdit(), Qt::Key_1);

View File

@ -398,7 +398,6 @@ void tst_QLabel::task226479_movieResize()
label.paintedRegion = QRegion();
movie->setFileName(QFINDTESTDATA("green.png"));
movie->start();
QTest::qWait(50);
QTRY_COMPARE(label.paintedRegion , QRegion(label.rect()) );
}

View File

@ -3600,18 +3600,15 @@ void tst_QLineEdit::task174640_editingFinished()
QSignalSpy editingFinishedSpy(le1, SIGNAL(editingFinished()));
le1->setFocus();
QTest::qWait(20);
QTRY_VERIFY(le1->hasFocus());
QCOMPARE(editingFinishedSpy.count(), 0);
le2->setFocus();
QTest::qWait(20);
QTRY_VERIFY(le2->hasFocus());
QCOMPARE(editingFinishedSpy.count(), 1);
editingFinishedSpy.clear();
le1->setFocus();
QTest::qWait(20);
QTRY_VERIFY(le1->hasFocus());
QMenu *testMenu1 = new QMenu(le1);
@ -3707,7 +3704,6 @@ void tst_QLineEdit::task229938_dontEmitChangedWhenTextIsNotChanged()
QVERIFY(QTest::qWaitForWindowExposed(&lineEdit)); // to be safe and avoid failing setFocus with window managers
lineEdit.setFocus();
QSignalSpy changedSpy(&lineEdit, SIGNAL(textChanged(QString)));
QTest::qWait(200);
QTest::keyPress(&lineEdit, 'a');
QTest::keyPress(&lineEdit, 'b');
QTest::keyPress(&lineEdit, 'c');

View File

@ -1745,17 +1745,15 @@ void tst_QMainWindow::setCursor()
QCOMPARE(cur.shape(), mw.cursor().shape());
mw.resize(200,200);
mw.show();
QTest::qWait(50);
QVERIFY(QTest::qWaitForWindowActive(&mw));
QCOMPARE(cur.shape(), mw.cursor().shape());
QHoverEvent enterE(QEvent::HoverEnter, QPoint(10,10), QPoint());
mw.event(&enterE);
QTest::qWait(50);
QCOMPARE(cur.shape(), mw.cursor().shape());
QHoverEvent leaveE(QEvent::HoverLeave, QPoint(), QPoint());
mw.event(&leaveE);
QTest::qWait(50);
QCOMPARE(cur.shape(), mw.cursor().shape());
}
#endif
@ -1844,7 +1842,7 @@ void tst_QMainWindow::dockWidgetSize()
mainWindow.addDockWidget(Qt::TopDockWidgetArea, &dock);
mainWindow.show();
QTest::qWait(100);
QVERIFY(QTest::qWaitForWindowActive(&mainWindow));
if (mainWindow.size() == mainWindow.sizeHint()) {
QCOMPARE(widget.size(), widget.sizeHint());
QCOMPARE(dock.widget()->size(), dock.widget()->sizeHint());

View File

@ -963,8 +963,6 @@ void tst_QMdiSubWindow::setSystemMenu()
mainWindow.menuBar()->setNativeMenuBar(false);
mainWindow.show();
QVERIFY(QTest::qWaitForWindowExposed(&mainWindow));
QTest::qWait(60);
QTRY_VERIFY(subWindow->isVisible());
QPoint globalPopupPos;
@ -972,7 +970,6 @@ void tst_QMdiSubWindow::setSystemMenu()
// Show system menu
QVERIFY(!qApp->activePopupWidget());
subWindow->showSystemMenu();
QTest::qWait(25);
QTRY_COMPARE(qApp->activePopupWidget(), qobject_cast<QWidget *>(systemMenu));
QTRY_COMPARE(systemMenu->mapToGlobal(QPoint(0, 0)),
(globalPopupPos = subWindow->mapToGlobal(subWindow->contentsRect().topLeft())) );
@ -997,7 +994,6 @@ void tst_QMdiSubWindow::setSystemMenu()
// Show the new system menu
QVERIFY(!qApp->activePopupWidget());
subWindow->showSystemMenu();
QTest::qWait(25);
QTRY_COMPARE(qApp->activePopupWidget(), qobject_cast<QWidget *>(systemMenu));
QTRY_COMPARE(systemMenu->mapToGlobal(QPoint(0, 0)), globalPopupPos);
@ -1011,7 +1007,6 @@ void tst_QMdiSubWindow::setSystemMenu()
QWidget *menuLabel = subWindow->maximizedSystemMenuIconWidget();
QVERIFY(menuLabel);
subWindow->showSystemMenu();
QTest::qWait(25);
QTRY_COMPARE(qApp->activePopupWidget(), qobject_cast<QWidget *>(systemMenu));
QCOMPARE(systemMenu->mapToGlobal(QPoint(0, 0)),
(globalPopupPos = menuLabel->mapToGlobal(QPoint(0, menuLabel->y() + menuLabel->height()))));
@ -1027,7 +1022,6 @@ void tst_QMdiSubWindow::setSystemMenu()
QTest::qWait(150);
subWindow->showSystemMenu();
QTest::qWait(250);
QTRY_COMPARE(qApp->activePopupWidget(), qobject_cast<QWidget *>(systemMenu));
// + QPoint(1, 0) because topRight() == QPoint(left() + width() -1, top())
globalPopupPos = subWindow->mapToGlobal(subWindow->contentsRect().topRight()) + QPoint(1, 0);
@ -1044,7 +1038,6 @@ void tst_QMdiSubWindow::setSystemMenu()
menuLabel = subWindow->maximizedSystemMenuIconWidget();
QVERIFY(menuLabel);
subWindow->showSystemMenu();
QTest::qWait(250);
QTRY_COMPARE(qApp->activePopupWidget(), qobject_cast<QWidget *>(systemMenu));
globalPopupPos = menuLabel->mapToGlobal(QPoint(menuLabel->width(), menuLabel->y() + menuLabel->height()));
globalPopupPos -= QPoint(systemMenu->sizeHint().width(), 0);
@ -1648,8 +1641,6 @@ void tst_QMdiSubWindow::resizeTimer()
QMdiSubWindow *subWindow = mdiArea.addSubWindow(new QWidget);
mdiArea.show();
QVERIFY(QTest::qWaitForWindowExposed(&mdiArea));
QTest::qWait(300);
EventSpy timerEventSpy(subWindow, QEvent::Timer);
QCOMPARE(timerEventSpy.count(), 0);
@ -1809,10 +1800,9 @@ void tst_QMdiSubWindow::closeOnDoubleClick()
QVERIFY(QTest::qWaitForWindowExposed(&mdiArea));
subWindow->showSystemMenu();
QTest::qWait(200);
QPointer<QMenu> systemMenu = subWindow->systemMenu();
QVERIFY(systemMenu);
QPointer<QMenu> systemMenu;
QTRY_VERIFY( (systemMenu = subWindow->systemMenu()) );
QVERIFY(systemMenu->isVisible());
const QRect actionGeometry = systemMenu->actionGeometry(systemMenu->actions().at(actionIndex));

View File

@ -988,18 +988,14 @@ void tst_QMenu::task258920_mouseBorder()
const QPoint center = QApplication::desktop()->availableGeometry().center();
menu.popup(center);
QVERIFY(QTest::qWaitForWindowExposed(&menu));
QTest::qWait(100);
QRect actionRect = menu.actionGeometry(action);
const QPoint actionCenter = actionRect.center();
QTest::mouseMove(&menu, actionCenter - QPoint(-10, 0));
QTest::qWait(30);
QTest::mouseMove(&menu, actionCenter);
QTest::qWait(30);
QTest::mouseMove(&menu, actionCenter + QPoint(10, 0));
QTRY_COMPARE(action, menu.activeAction());
menu.painted = false;
QTest::mouseMove(&menu, QPoint(actionRect.center().x(), actionRect.bottom() + 1));
QTest::qWait(30);
QTRY_COMPARE(static_cast<QAction*>(0), menu.activeAction());
QTRY_VERIFY(menu.painted);
}
@ -1106,7 +1102,6 @@ void tst_QMenu::QTBUG7907_submenus_autoselect()
menu.show();
QVERIFY(QTest::qWaitForWindowExposed(&menu));
QTest::mouseClick(&menu, Qt::LeftButton, Qt::NoModifier, QPoint(5,5) );
QTest::qWait(500);
QVERIFY(!subset.isVisible());
}
@ -1401,7 +1396,6 @@ void tst_QMenu::QTBUG_56917_wideMenuSize()
menu.addAction(longString);
QSize menuSizeHint = menu.sizeHint();
menu.popup(QPoint());
QTest::qWait(100);
QVERIFY(QTest::qWaitForWindowExposed(&menu));
QVERIFY(menu.isVisible());
QVERIFY(menu.height() <= menuSizeHint.height());
@ -1419,7 +1413,6 @@ void tst_QMenu::QTBUG_56917_wideMenuScreenNumber()
QMenu menu;
menu.addAction(longString);
menu.popup(QApplication::desktop()->screen(i)->geometry().center());
QTest::qWait(100);
QVERIFY(QTest::qWaitForWindowExposed(&menu));
QVERIFY(menu.isVisible());
QCOMPARE(QApplication::desktop()->screenNumber(&menu), i);

View File

@ -163,12 +163,9 @@ void tst_QProgressBar::format()
bar.move(300, 300);
bar.show();
QVERIFY(QTest::qWaitForWindowExposed(&bar));
QVERIFY(QTest::qWaitForWindowExposed(&bar));
QTest::qWait(20);
bar.repainted = false;
bar.setFormat("%v of %m (%p%)");
QTest::qWait(20);
QTRY_VERIFY(bar.repainted);
bar.repainted = false;
bar.setFormat("%v of %m (%p%)");

View File

@ -183,9 +183,7 @@ void tst_QPushButton::autoRepeat()
testWidget->setAutoRepeat( false );
QTest::keyPress( testWidget, Qt::Key_Space );
QTest::qWait( 300 );
QVERIFY( testWidget->isDown() );
QTRY_VERIFY( testWidget->isDown() );
QVERIFY( toggle_count == 0 );
QVERIFY( press_count == 1 );
QVERIFY( release_count == 0 );
@ -200,13 +198,12 @@ void tst_QPushButton::autoRepeat()
testWidget->setDown( false );
testWidget->setAutoRepeat( true );
QTest::keyPress( testWidget, Qt::Key_Space );
QTest::qWait(900);
QTRY_VERIFY(press_count > 3);
QVERIFY( testWidget->isDown() );
QVERIFY( toggle_count == 0 );
QTest::keyRelease( testWidget, Qt::Key_Space );
QCOMPARE(press_count, release_count);
QCOMPARE(release_count, click_count);
QVERIFY(press_count > 1);
// #### shouldn't I check here to see if multiple signals have been fired???
@ -241,23 +238,19 @@ void tst_QPushButton::autoRepeat()
void tst_QPushButton::pressed()
{
QTest::keyPress( testWidget, ' ' );
// QTest::qWait( 300 );
QCOMPARE( press_count, (uint)1 );
QCOMPARE( release_count, (uint)0 );
QTest::keyRelease( testWidget, ' ' );
// QTest::qWait( 300 );
QCOMPARE( press_count, (uint)1 );
QCOMPARE( release_count, (uint)1 );
QTest::keyPress( testWidget,Qt::Key_Enter );
// QTest::qWait( 300 );
QCOMPARE( press_count, (uint)1 );
QCOMPARE( release_count, (uint)1 );
testWidget->setAutoDefault(true);
QTest::keyPress( testWidget,Qt::Key_Enter );
// QTest::qWait( 300 );
QCOMPARE( press_count, (uint)2 );
QCOMPARE( release_count, (uint)2 );
testWidget->setAutoDefault(false);
@ -340,14 +333,8 @@ void tst_QPushButton::setAccel()
// window and has focus
QApplication::setActiveWindow(testWidget);
testWidget->setFocus();
for (int i = 0; !testWidget->isActiveWindow() && i < 1000; ++i) {
testWidget->activateWindow();
QApplication::instance()->processEvents();
QTest::qWait(100);
}
QVERIFY(testWidget->isActiveWindow());
QVERIFY(QTest::qWaitForWindowActive(testWidget));
QTest::keyClick( testWidget, 'A', Qt::AltModifier );
QTest::qWait( 50 );
QTRY_VERIFY( click_count == 1 );
QVERIFY( press_count == 1 );
QVERIFY( release_count == 1 );
@ -576,10 +563,8 @@ void tst_QPushButton::sizeHint()
dialog->showNormal();
tabWidget->setCurrentWidget(tab2);
tabWidget->setCurrentWidget(tab1);
QTest::qWait(100);
QApplication::processEvents();
QCOMPARE(button1_2->size(), button2_2->size());
QTRY_COMPARE(button1_2->size(), button2_2->size());
}
}

View File

@ -70,15 +70,13 @@ void tst_QRadioButton::task190739_focus()
widget.show();
widget.activateWindow();
QApplication::setActiveWindow(&widget);
QTest::qWait(100);
QVERIFY(QTest::qWaitForWindowActive(&widget));
QVERIFY(edit.hasFocus());
QVERIFY(!radio1.isChecked());
QTest::keyClick(&edit, Qt::Key_O, Qt::ControlModifier, 20);
QTest::qWait(200);
QVERIFY(radio1.isChecked());
QTRY_VERIFY(radio1.isChecked());
QVERIFY(edit.hasFocus());
QVERIFY(!radio1.hasFocus());
}

View File

@ -854,12 +854,11 @@ void tst_QSpinBox::editingFinished()
testFocusWidget.hide();
QCOMPARE(editingFinishedSpy1.count(), 4);
QCOMPARE(editingFinishedSpy2.count(), 4);
QTest::qWait(100);
//task203285
editingFinishedSpy1.clear();
testFocusWidget.show();
QTest::qWait(100);
QVERIFY(QTest::qWaitForWindowActive(&testFocusWidget));
box->setKeyboardTracking(false);
qApp->setActiveWindow(&testFocusWidget);
testFocusWidget.activateWindow();

View File

@ -287,7 +287,7 @@ void tst_QSplitter::saveAndRestoreStateOfNotYetShownSplitter()
QByteArray ba = spl->saveState();
spl->restoreState(ba);
spl->show();
QTest::qWait(500);
QVERIFY(QTest::qWaitForWindowActive(spl));
QCOMPARE(l1->geometry().isValid(), true);
QCOMPARE(l2->geometry().isValid(), true);
@ -607,8 +607,7 @@ void tst_QSplitter::testShowHide()
lay->addWidget(split);
widget.setLayout(lay);
topLevel.show();
QTest::qWait(100);
QVERIFY(QTest::qWaitForWindowActive(&topLevel));
widget.hide();
split->widget(0)->setHidden(hideWidget1);
@ -976,14 +975,13 @@ void tst_QSplitter::task169702_sizes()
outerSplitter->setGeometry(100, 100, 500, 500);
topLevel.show();
QVERIFY(QTest::qWaitForWindowActive(&topLevel));
QTest::qWait(100);
testW->m_iFactor++;
testW->updateGeometry();
QTest::qWait(500);
//Make sure the minimimSizeHint is respected
QCOMPARE(testW->size().height(), testW->minimumSizeHint().height());
QTRY_COMPARE(testW->size().height(), testW->minimumSizeHint().height());
}
void tst_QSplitter::taskQTBUG_4101_ensureOneNonCollapsedWidget_data()
@ -1012,8 +1010,7 @@ void tst_QSplitter::taskQTBUG_4101_ensureOneNonCollapsedWidget()
l->hide();
else
delete l;
QTest::qWait(100);
QVERIFY(s.sizes().at(0) > 0);
QTRY_VERIFY(s.sizes().at(0) > 0);
}
void tst_QSplitter::setLayout()

View File

@ -549,8 +549,7 @@ void tst_QTabWidget::paintEventCount()
QCOMPARE(tw->currentIndex(), 0);
tw->show();
QTest::qWait(1000);
QVERIFY(QTest::qWaitForWindowActive(tw));
// Mac, Windows and Windows CE get multiple repaints on the first show, so use those as a starting point.
static const int MaxInitialPaintCount =

View File

@ -1038,11 +1038,9 @@ void tst_QToolBar::accel()
mw.show();
QApplication::setActiveWindow(&mw);
QTest::qWait(100);
QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(&mw));
QVERIFY(QTest::qWaitForWindowActive(&mw));
QTest::keyClick(&mw, Qt::Key_T, Qt::AltModifier);
QTest::qWait(300);
QTRY_COMPARE(spy.count(), 1);
#ifdef Q_OS_MAC
@ -1085,19 +1083,19 @@ void tst_QToolBar::task197996_visibility()
pAction->setVisible(true);
mw.show();
QVERIFY(QTest::qWaitForWindowActive(&mw));
QVERIFY(toolBar->widgetForAction(pAction)->isVisible());
toolBar->setVisible(false);
pAction->setVisible(false);
QVERIFY(!toolBar->widgetForAction(pAction)->isVisible());
toolBar->setVisible(true);
pAction->setVisible(true);
QTest::qWait(100);
QVERIFY(toolBar->widgetForAction(pAction)->isVisible());
QTRY_VERIFY(toolBar->widgetForAction(pAction)->isVisible());
}
QTEST_MAIN(tst_QToolBar)

View File

@ -141,8 +141,7 @@ void tst_QToolButton::triggered()
timer->start();
QTimer::singleShot(10000, &mainWidget, SLOT(close())); // Emergency bail-out
toolButton->showMenu();
QTest::qWait(20);
QCOMPARE(spy.count(),2);
QTRY_COMPARE(spy.count(),2);
QCOMPARE(qvariant_cast<QAction *>(spy.at(1).at(0)), one);
}