Merge branch 'stable' into dev
Conflicts: tests/auto/widgets/graphicsview/qgraphicsscene/tst_qgraphicsscene.cpp Change-Id: I6b8d505fc22f052c307ca27f58f7d16f98965f47
This commit is contained in:
commit
cdf13ce286
4
configure
vendored
4
configure
vendored
@ -2844,7 +2844,7 @@ if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
|
||||
if [ "$BUILD_ON_MAC" = "yes" ]; then
|
||||
QT_INSTALL_SETTINGS=/Library/Preferences/Qt
|
||||
else
|
||||
QT_INSTALL_SETTINGS=/etc/xdg
|
||||
QT_INSTALL_SETTINGS=$QT_INSTALL_PREFIX/etc/xdg
|
||||
fi
|
||||
fi
|
||||
QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
|
||||
@ -3044,7 +3044,7 @@ Installation options:
|
||||
-translationdir <dir> . Translations of Qt programs will be installed to <dir>
|
||||
(default DATADIR/translations)
|
||||
-sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
|
||||
(default PREFIX/etc/settings)
|
||||
(default PREFIX/etc/xdg)
|
||||
-examplesdir <dir> .... Examples will be installed to <dir>
|
||||
(default PREFIX/examples)
|
||||
-testsdir <dir> ....... Tests will be installed to <dir>
|
||||
|
@ -65,7 +65,6 @@ MandelbrotWidget::MandelbrotWidget(QWidget *parent)
|
||||
pixmapScale = DefaultScale;
|
||||
curScale = DefaultScale;
|
||||
|
||||
qRegisterMetaType<QImage>("QImage");
|
||||
connect(&thread, SIGNAL(renderedImage(QImage,double)), this, SLOT(updatePixmap(QImage,double)));
|
||||
|
||||
setWindowTitle(tr("Mandelbrot"));
|
||||
|
@ -143,6 +143,8 @@ QDateTime dateTime = QDateTime::fromString("130", "Mm"); // invalid
|
||||
//! [14]
|
||||
QDateTime dateTime = QDateTime::fromString("1.30.1", "M.d.s");
|
||||
// dateTime is January 30 in 1900 at 00:00:01.
|
||||
dateTime = QDateTime::fromString("12", "yy");
|
||||
// dateTime is January 1 in 1912 at 00:00:00.
|
||||
//! [14]
|
||||
|
||||
//! [15]
|
||||
@ -191,4 +193,16 @@ UTC.setTimeSpec(Qt::UTC);
|
||||
qDebug() << "UTC time is:" << UTC;
|
||||
|
||||
qDebug() << "There are" << local.secsTo(UTC) << "seconds difference between the datetimes.";
|
||||
//! [19]
|
||||
//! [19]
|
||||
|
||||
//! [20]
|
||||
QString string = "Monday, 23 April 12 22:51:41";
|
||||
QString format = "dddd, d MMMM yy hh:mm:ss";
|
||||
QDateTime invalid = QDateTime::fromString(string, format);
|
||||
//! [20]
|
||||
|
||||
//! [21]
|
||||
QString string = "Tuesday, 23 April 12 22:51:41";
|
||||
QString format = "dddd, d MMMM yy hh:mm:ss";
|
||||
QDateTime valid = QDateTime::fromString(string, format);
|
||||
//! [21]
|
||||
|
@ -693,7 +693,7 @@
|
||||
#endif /* Q_CC_MSVC */
|
||||
|
||||
#ifdef __cplusplus
|
||||
# if defined(Q_OS_BLACKBERRY) || defined(Q_OS_QNX)
|
||||
# if defined(Q_OS_QNX)
|
||||
# include <utility>
|
||||
# if defined(_YVALS) || defined(_LIBCPP_VER)
|
||||
// QNX: libcpp (Dinkumware-based) doesn't have the <initializer_list>
|
||||
@ -702,9 +702,12 @@
|
||||
# ifdef Q_COMPILER_INITIALIZER_LISTS
|
||||
# undef Q_COMPILER_INITIALIZER_LISTS
|
||||
# endif
|
||||
# ifdef Q_COMPILER_RVALUE_REFS
|
||||
# undef Q_COMPILER_RVALUE_REFS
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
#endif // Q_OS_BLACKBERRY || Q_OS_QNX
|
||||
#endif // Q_OS_QNX
|
||||
|
||||
/*
|
||||
* C++11 keywords and expressions
|
||||
|
@ -271,6 +271,11 @@ void QEventDispatcherBlackberry::unregisterSocketNotifier(QSocketNotifier *notif
|
||||
}
|
||||
}
|
||||
|
||||
static inline int timevalToMillisecs(const timeval &tv)
|
||||
{
|
||||
return (tv.tv_sec * 1000) + (tv.tv_usec / 1000);
|
||||
}
|
||||
|
||||
int QEventDispatcherBlackberry::select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
|
||||
timeval *timeout)
|
||||
{
|
||||
@ -279,9 +284,6 @@ int QEventDispatcherBlackberry::select(int nfds, fd_set *readfds, fd_set *writef
|
||||
|
||||
BpsChannelScopeSwitcher channelSwitcher(d->bps_channel);
|
||||
|
||||
// Make a note of the start time
|
||||
timeval startTime = qt_gettime();
|
||||
|
||||
// prepare file sets for bps callback
|
||||
d->ioData->count = 0;
|
||||
d->ioData->readfds = readfds;
|
||||
@ -298,15 +300,15 @@ int QEventDispatcherBlackberry::select(int nfds, fd_set *readfds, fd_set *writef
|
||||
if (exceptfds)
|
||||
FD_ZERO(exceptfds);
|
||||
|
||||
bps_event_t *event = 0;
|
||||
unsigned int eventCount = 0;
|
||||
|
||||
// Convert timeout to milliseconds
|
||||
int timeoutTotal = -1;
|
||||
if (timeout)
|
||||
timeoutTotal = (timeout->tv_sec * 1000) + (timeout->tv_usec / 1000);
|
||||
|
||||
timeoutTotal = timevalToMillisecs(*timeout);
|
||||
int timeoutLeft = timeoutTotal;
|
||||
|
||||
bps_event_t *event = 0;
|
||||
unsigned int eventCount = 0;
|
||||
timeval startTime = qt_gettime();
|
||||
|
||||
// This loop exists such that we can drain the bps event queue of all native events
|
||||
// more efficiently than if we were to return control to Qt after each event. This
|
||||
@ -331,11 +333,20 @@ int QEventDispatcherBlackberry::select(int nfds, fd_set *readfds, fd_set *writef
|
||||
// Clock source is monotonic, so we can recalculate how much timeout is left
|
||||
if (timeoutTotal != -1) {
|
||||
timeval t2 = qt_gettime();
|
||||
timeoutLeft = timeoutTotal - ((t2.tv_sec * 1000 + t2.tv_usec / 1000)
|
||||
- (startTime.tv_sec * 1000 + startTime.tv_usec / 1000));
|
||||
timeoutLeft = timeoutTotal
|
||||
- (timevalToMillisecs(t2) - timevalToMillisecs(startTime));
|
||||
if (timeoutLeft < 0)
|
||||
timeoutLeft = 0;
|
||||
}
|
||||
|
||||
timeval tnext;
|
||||
if (d->timerList.timerWait(tnext)) {
|
||||
int timeoutNext = timevalToMillisecs(tnext);
|
||||
if (timeoutNext < timeoutLeft || timeoutTotal == -1) {
|
||||
timeoutTotal = timeoutLeft = timeoutNext;
|
||||
startTime = qt_gettime();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Wait for event or file to be ready
|
||||
|
@ -472,7 +472,7 @@ int QMetaObject::constructorCount() const
|
||||
|
||||
/*!
|
||||
Returns the number of methods in this class, including the number of
|
||||
properties provided by each base class. These include signals and slots
|
||||
methods provided by each base class. These include signals and slots
|
||||
as well as normal member functions.
|
||||
|
||||
Use code like the following to obtain a QStringList containing the methods
|
||||
|
@ -240,6 +240,7 @@ struct DefinedTypesFilter {
|
||||
\omitvalue PointerToQObject
|
||||
\omitvalue WeakPointerToQObject
|
||||
\omitvalue TrackingPointerToQObject
|
||||
\omitvalue WasDeclaredAsMetaType
|
||||
*/
|
||||
|
||||
/*!
|
||||
|
@ -3533,6 +3533,18 @@ QDateTime QDateTime::fromString(const QString& s, Qt::DateFormat f)
|
||||
This could have meant 1 January 00:30.00 but the M will grab
|
||||
two digits.
|
||||
|
||||
Incorrectly specified fields of the \a string will cause an invalid
|
||||
QDateTime to be returned. For example, consider the following code,
|
||||
where the two digit year 12 is read as 1912 (see the table below for all
|
||||
field defaults); the resulting datetime is invalid because 23 April 1912
|
||||
was a Tuesday, not a Monday:
|
||||
|
||||
\snippet code/src_corelib_tools_qdatetime.cpp 20
|
||||
|
||||
The correct code is:
|
||||
|
||||
\snippet code/src_corelib_tools_qdatetime.cpp 21
|
||||
|
||||
For any field that is not represented in the format, the following
|
||||
defaults are used:
|
||||
|
||||
|
@ -113,8 +113,6 @@ struct QSystemLocalePrivate
|
||||
void update();
|
||||
|
||||
private:
|
||||
QByteArray langEnvVar;
|
||||
|
||||
enum SubstitutionType {
|
||||
SUnknown,
|
||||
SContext,
|
||||
@ -142,7 +140,6 @@ Q_GLOBAL_STATIC(QSystemLocalePrivate, systemLocalePrivate)
|
||||
QSystemLocalePrivate::QSystemLocalePrivate()
|
||||
: substitutionType(SUnknown)
|
||||
{
|
||||
langEnvVar = qgetenv("LANG");
|
||||
lcid = GetUserDefaultLCID();
|
||||
}
|
||||
|
||||
|
@ -813,6 +813,8 @@ template <class X, class T>
|
||||
Q_INLINE_TEMPLATE QSharedPointer<X> qSharedPointerDynamicCast(const QSharedPointer<T> &src)
|
||||
{
|
||||
register X *ptr = dynamic_cast<X *>(src.data()); // if you get an error in this line, the cast is invalid
|
||||
if (!ptr)
|
||||
return QSharedPointer<X>();
|
||||
return QtSharedPointer::copyAndSetPointer(ptr, src);
|
||||
}
|
||||
template <class X, class T>
|
||||
|
@ -56,8 +56,6 @@
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
#ifndef QT_NO_ACCESSIBILITY
|
||||
|
||||
/*!
|
||||
\class QAccessible
|
||||
\brief The QAccessible class provides enums and static functions
|
||||
@ -442,19 +440,23 @@ QAccessible::RootObjectHandler QAccessible::rootObjectHandler = 0;
|
||||
static bool accessibility_active = false;
|
||||
static bool cleanupAdded = false;
|
||||
|
||||
#ifndef QT_NO_ACCESSIBILITY
|
||||
static QPlatformAccessibility *platformAccessibility()
|
||||
{
|
||||
QPlatformIntegration *pfIntegration = QGuiApplicationPrivate::platformIntegration();
|
||||
return pfIntegration ? pfIntegration->accessibility() : 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*!
|
||||
\internal
|
||||
*/
|
||||
void QAccessible::cleanup()
|
||||
{
|
||||
#ifndef QT_NO_ACCESSIBILITY
|
||||
if (QPlatformAccessibility *pfAccessibility = platformAccessibility())
|
||||
pfAccessibility->cleanup();
|
||||
#endif
|
||||
}
|
||||
|
||||
static void qAccessibleCleanup()
|
||||
@ -615,8 +617,10 @@ QAccessibleInterface *QAccessible::queryAccessibleInterface(QObject *object)
|
||||
mo = mo->superClass();
|
||||
}
|
||||
|
||||
#ifndef QT_NO_ACCESSIBILITY
|
||||
if (object == qApp)
|
||||
return new QAccessibleApplication;
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -656,8 +660,10 @@ void QAccessible::setRootObject(QObject *object)
|
||||
return;
|
||||
}
|
||||
|
||||
#ifndef QT_NO_ACCESSIBILITY
|
||||
if (QPlatformAccessibility *pfAccessibility = platformAccessibility())
|
||||
pfAccessibility->setRootObject(object);
|
||||
#endif
|
||||
}
|
||||
|
||||
/*!
|
||||
@ -689,8 +695,10 @@ void QAccessible::updateAccessibility(QAccessibleEvent *event)
|
||||
if (!isActive())
|
||||
return;
|
||||
|
||||
#ifndef QT_NO_ACCESSIBILITY
|
||||
if (QPlatformAccessibility *pfAccessibility = platformAccessibility())
|
||||
pfAccessibility->notifyAccessibilityUpdate(event);
|
||||
#endif
|
||||
}
|
||||
|
||||
#if QT_DEPRECATED_SINCE(5, 0)
|
||||
@ -1544,7 +1552,5 @@ QDebug operator<<(QDebug d, const QAccessibleEvent &ev)
|
||||
|
||||
#endif
|
||||
|
||||
#endif // QT_NO_ACCESSIBILITY
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
|
@ -57,7 +57,6 @@ QT_BEGIN_HEADER
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
#ifndef QT_NO_ACCESSIBILITY
|
||||
|
||||
class QAccessibleInterface;
|
||||
class QAccessibleEvent;
|
||||
@ -677,8 +676,6 @@ inline void QAccessible::updateAccessibility(QObject *object, int child, Event r
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // QT_NO_ACCESSIBILITY
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
QT_END_HEADER
|
||||
|
@ -1392,7 +1392,7 @@ void QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::Mo
|
||||
// Ignore mouse events that don't change the current state.
|
||||
return;
|
||||
}
|
||||
buttons = e->buttons;
|
||||
mouse_buttons = buttons = e->buttons;
|
||||
if (button & e->buttons) {
|
||||
ulong doubleClickInterval = static_cast<ulong>(qApp->styleHints()->mouseDoubleClickInterval());
|
||||
doubleClick = e->timestamp - mousePressTime < doubleClickInterval && button == mousePressButton;
|
||||
@ -1688,7 +1688,10 @@ void QGuiApplicationPrivate::processTabletEvent(QWindowSystemInterfacePrivate::T
|
||||
type = e->down ? QEvent::TabletPress : QEvent::TabletRelease;
|
||||
tabletState = e->down;
|
||||
}
|
||||
|
||||
QWindow *window = e->window.data();
|
||||
modifier_buttons = e->modifiers;
|
||||
|
||||
bool localValid = true;
|
||||
// If window is null, pick one based on the global position and make sure all
|
||||
// subsequent events up to the release are delivered to that same window.
|
||||
@ -1719,7 +1722,7 @@ void QGuiApplicationPrivate::processTabletEvent(QWindowSystemInterfacePrivate::T
|
||||
QTabletEvent ev(type, local, e->global,
|
||||
e->device, e->pointerType, e->pressure, e->xTilt, e->yTilt,
|
||||
e->tangentialPressure, e->rotation, e->z,
|
||||
e->mods, e->uid);
|
||||
e->modifiers, e->uid);
|
||||
ev.setTimestamp(e->timestamp);
|
||||
QGuiApplication::sendSpontaneousEvent(window, &ev);
|
||||
#else
|
||||
|
@ -1105,16 +1105,16 @@ void QWindow::setGeometry(const QRect &rect)
|
||||
d->platformWindow->setGeometry(rect);
|
||||
} else {
|
||||
d->geometry = rect;
|
||||
}
|
||||
|
||||
if (rect.x() != oldRect.x())
|
||||
emit xChanged(rect.x());
|
||||
if (rect.y() != oldRect.y())
|
||||
emit yChanged(rect.y());
|
||||
if (rect.width() != oldRect.width())
|
||||
emit widthChanged(rect.width());
|
||||
if (rect.height() != oldRect.height())
|
||||
emit heightChanged(rect.height());
|
||||
if (rect.x() != oldRect.x())
|
||||
emit xChanged(rect.x());
|
||||
if (rect.y() != oldRect.y())
|
||||
emit yChanged(rect.y());
|
||||
if (rect.width() != oldRect.width())
|
||||
emit widthChanged(rect.width());
|
||||
if (rect.height() != oldRect.height())
|
||||
emit heightChanged(rect.height());
|
||||
}
|
||||
}
|
||||
|
||||
/*!
|
||||
|
@ -302,10 +302,10 @@ public:
|
||||
TabletEvent(QWindow *w, ulong time, bool down, const QPointF &local, const QPointF &global,
|
||||
int device, int pointerType, qreal pressure, int xTilt, int yTilt, qreal tpressure,
|
||||
qreal rotation, int z, qint64 uid, Qt::KeyboardModifiers mods)
|
||||
: InputEvent(w, time, Tablet, Qt::NoModifier),
|
||||
: InputEvent(w, time, Tablet, mods),
|
||||
down(down), local(local), global(global), device(device), pointerType(pointerType),
|
||||
pressure(pressure), xTilt(xTilt), yTilt(yTilt), tangentialPressure(tpressure),
|
||||
rotation(rotation), z(z), uid(uid), mods(mods) { }
|
||||
rotation(rotation), z(z), uid(uid) { }
|
||||
bool down;
|
||||
QPointF local;
|
||||
QPointF global;
|
||||
@ -318,7 +318,6 @@ public:
|
||||
qreal rotation;
|
||||
int z;
|
||||
qint64 uid;
|
||||
Qt::KeyboardModifiers mods;
|
||||
};
|
||||
|
||||
class TabletEnterProximityEvent : public InputEvent {
|
||||
|
@ -220,23 +220,6 @@ static inline bool qPointIsLeftOfLine(const QPodPoint &p, const QPodPoint &v1, c
|
||||
return QT_PREPEND_NAMESPACE(qPointDistanceFromLine)(p, v1, v2) < 0;
|
||||
}
|
||||
|
||||
// Return:
|
||||
// -1 if u < v
|
||||
// 0 if u == v
|
||||
// 1 if u > v
|
||||
static int comparePoints(const QPodPoint &u, const QPodPoint &v)
|
||||
{
|
||||
if (u.y < v.y)
|
||||
return -1;
|
||||
if (u.y > v.y)
|
||||
return 1;
|
||||
if (u.x < v.x)
|
||||
return -1;
|
||||
if (u.x > v.x)
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
//============================================================================//
|
||||
// QIntersectionPoint //
|
||||
//============================================================================//
|
||||
@ -632,16 +615,6 @@ public:
|
||||
bool pointingUp, originallyPointingUp;
|
||||
};
|
||||
|
||||
friend class CompareEdges;
|
||||
class CompareEdges
|
||||
{
|
||||
public:
|
||||
inline CompareEdges(ComplexToSimple *parent) : m_parent(parent) { }
|
||||
bool operator () (int i, int j) const;
|
||||
private:
|
||||
ComplexToSimple *m_parent;
|
||||
};
|
||||
|
||||
struct Intersection
|
||||
{
|
||||
bool operator < (const Intersection &other) const {return other.intersectionPoint < intersectionPoint;}
|
||||
@ -1653,18 +1626,6 @@ void QTriangulator<T>::ComplexToSimple::removeUnusedPoints() {
|
||||
}
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
bool QTriangulator<T>::ComplexToSimple::CompareEdges::operator () (int i, int j) const
|
||||
{
|
||||
int cmp = comparePoints(m_parent->m_parent->m_vertices.at(m_parent->m_edges.at(i).from),
|
||||
m_parent->m_parent->m_vertices.at(m_parent->m_edges.at(j).from));
|
||||
if (cmp == 0) {
|
||||
cmp = comparePoints(m_parent->m_parent->m_vertices.at(m_parent->m_edges.at(i).to),
|
||||
m_parent->m_parent->m_vertices.at(m_parent->m_edges.at(j).to));
|
||||
}
|
||||
return cmp > 0;
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
inline bool QTriangulator<T>::ComplexToSimple::Event::operator < (const Event &other) const
|
||||
{
|
||||
|
@ -1853,7 +1853,7 @@ void QTextEngine::justify(const QScriptLine &line)
|
||||
itemize();
|
||||
|
||||
if (!forceJustification) {
|
||||
int end = line.from + (int)line.length;
|
||||
int end = line.from + (int)line.length + line.trailingSpaces;
|
||||
if (end == layoutData->string.length())
|
||||
return; // no justification at end of paragraph
|
||||
if (end && layoutData->items[findItem(end-1)].analysis.flags == QScriptAnalysis::LineOrParagraphSeparator)
|
||||
@ -1908,6 +1908,8 @@ void QTextEngine::justify(const QScriptLine &line)
|
||||
int gs = log_clusters[start];
|
||||
int ge = (end == length(firstItem+i) ? si.num_glyphs : log_clusters[end]);
|
||||
|
||||
Q_ASSERT(ge <= si.num_glyphs);
|
||||
|
||||
const QGlyphLayout g = shapedGlyphs(&si);
|
||||
|
||||
for (int i = gs; i < ge; ++i) {
|
||||
|
@ -1205,6 +1205,9 @@ static const char *certificate_blacklist[] = {
|
||||
"4c:0e:63:6a", "Digisign Server ID - (Enrich)", // (Malaysian) Digicert Sdn. Bhd. cross-signed by Entrust
|
||||
"72:03:21:05:c5:0c:08:57:3d:8e:a5:30:4e:fe:e8:b0", "UTN-USERFirst-Hardware", // comodogate test certificate
|
||||
"41", "MD5 Collisions Inc. (http://www.phreedom.org/md5)", // http://www.phreedom.org/research/rogue-ca/
|
||||
|
||||
"08:27", "*.EGO.GOV.TR", // Turktrust mis-issued intermediate certificate
|
||||
"08:64", "e-islem.kktcmerkezbankasi.org", // Turktrust mis-issued intermediate certificate
|
||||
0
|
||||
};
|
||||
|
||||
|
@ -52,8 +52,6 @@
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
#ifndef QT_NO_ACCESSIBILITY
|
||||
|
||||
/*!
|
||||
\class QSpiApplicationAdaptor
|
||||
\internal
|
||||
@ -219,6 +217,4 @@ void QSpiApplicationAdaptor::notifyKeyboardListenerError(const QDBusError& error
|
||||
}
|
||||
}
|
||||
|
||||
#endif // QT_NO_ACCESSIBILITY
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
@ -49,8 +49,6 @@
|
||||
QT_BEGIN_HEADER
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
#ifndef QT_NO_ACCESSIBILITY
|
||||
|
||||
/*
|
||||
* Used for the root object.
|
||||
*
|
||||
@ -82,8 +80,6 @@ private:
|
||||
QDBusConnection dbusConnection;
|
||||
};
|
||||
|
||||
#endif // QT_NO_ACCESSIBILITY
|
||||
|
||||
QT_END_NAMESPACE
|
||||
QT_END_HEADER
|
||||
|
||||
|
@ -65,8 +65,6 @@
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
#ifndef QT_NO_ACCESSIBILITY
|
||||
|
||||
static bool isDebugging = false;
|
||||
#define qAtspiDebug if (!::isDebugging); else qDebug
|
||||
|
||||
@ -2359,6 +2357,4 @@ bool AtSpiAdaptor::tableInterface(const QAIPointer &interface, const QString &fu
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif // QT_NO_ACCESSIBILITY
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
@ -56,8 +56,6 @@
|
||||
QT_BEGIN_HEADER
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
#ifndef QT_NO_ACCESSIBILITY
|
||||
|
||||
class QAccessibleInterface;
|
||||
class QSpiAccessibleInterface;
|
||||
class QSpiApplicationAdaptor;
|
||||
@ -218,8 +216,6 @@ private:
|
||||
uint sendWindow_unshade : 1;
|
||||
};
|
||||
|
||||
#endif // QT_NO_ACCESSIBILITY
|
||||
|
||||
QT_END_NAMESPACE
|
||||
QT_END_HEADER
|
||||
|
||||
|
@ -56,8 +56,6 @@
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
#ifndef QT_NO_ACCESSIBILITY
|
||||
|
||||
/*!
|
||||
\class QSpiAccessibleBridge
|
||||
\internal
|
||||
@ -184,6 +182,4 @@ void QSpiAccessibleBridge::initializeConstantMappings()
|
||||
qSpiRoleMapping.insert(map[i].role, RoleNames(map[i].spiRole, QLatin1String(map[i].name), tr(map[i].name)));
|
||||
}
|
||||
|
||||
#endif // QT_NO_ACCESSIBILITY
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
@ -51,8 +51,6 @@ class DeviceEventControllerAdaptor;
|
||||
QT_BEGIN_HEADER
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
#ifndef QT_NO_ACCESSIBILITY
|
||||
|
||||
class DBusConnection;
|
||||
class QSpiDBusCache;
|
||||
class AtSpiAdaptor;
|
||||
@ -81,8 +79,6 @@ private:
|
||||
bool initialized;
|
||||
};
|
||||
|
||||
#endif // QT_NO_ACCESSIBILITY
|
||||
|
||||
QT_END_NAMESPACE
|
||||
QT_END_HEADER
|
||||
|
||||
|
@ -49,8 +49,6 @@
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
#ifndef QT_NO_ACCESSIBILITY
|
||||
|
||||
/*!
|
||||
\class QSpiDBusCache
|
||||
\internal
|
||||
@ -91,6 +89,4 @@ QSpiAccessibleCacheArray QSpiDBusCache::GetItems()
|
||||
return cacheArray;
|
||||
}
|
||||
|
||||
#endif // QT_NO_ACCESSIBILITY
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
@ -49,8 +49,6 @@
|
||||
QT_BEGIN_HEADER
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
#ifndef QT_NO_ACCESSIBILITY
|
||||
|
||||
class QSpiDBusCache : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
@ -68,8 +66,6 @@ public Q_SLOTS:
|
||||
QSpiAccessibleCacheArray GetItems();
|
||||
};
|
||||
|
||||
#endif // QT_NO_ACCESSIBILITY
|
||||
|
||||
QT_END_NAMESPACE
|
||||
QT_END_HEADER
|
||||
|
||||
|
@ -55,8 +55,6 @@
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
#ifndef QT_NO_ACCESSIBILITY
|
||||
|
||||
QHash <QAccessible::Role, RoleNames> qSpiRoleMapping;
|
||||
|
||||
quint64 spiStatesFromQState(QAccessible::State state)
|
||||
@ -156,6 +154,4 @@ AtspiRelationType qAccessibleRelationToAtSpiRelation(QAccessible::Relation relat
|
||||
return ATSPI_RELATION_NULL;
|
||||
}
|
||||
|
||||
#endif // QT_NO_ACCESSIBILITY
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
@ -53,7 +53,6 @@
|
||||
#include <QtGui/QAccessible>
|
||||
#include <atspi/atspi-constants.h>
|
||||
|
||||
#ifndef QT_NO_ACCESSIBILITY
|
||||
|
||||
// interface names from at-spi2-core/atspi/atspi-misc-private.h
|
||||
#define ATSPI_DBUS_NAME_REGISTRY "org.a11y.atspi.Registry"
|
||||
@ -136,6 +135,4 @@ AtspiRelationType qAccessibleRelationToAtSpiRelation(QAccessible::Relation relat
|
||||
QT_END_NAMESPACE
|
||||
QT_END_HEADER
|
||||
|
||||
#endif // QT_NO_ACCESSIBILITY
|
||||
|
||||
#endif /* Q_SPI_CONSTANT_MAPPINGS_H */
|
||||
|
@ -48,8 +48,6 @@
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
#ifndef QT_NO_ACCESSIBILITY
|
||||
|
||||
/*!
|
||||
\class DBusConnection
|
||||
\internal
|
||||
@ -106,6 +104,4 @@ QDBusConnection DBusConnection::connection() const
|
||||
return dbusConnection;
|
||||
}
|
||||
|
||||
#endif // QT_NO_ACCESSIBILITY
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
@ -49,8 +49,6 @@
|
||||
QT_BEGIN_HEADER
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
#ifndef QT_NO_ACCESSIBILITY
|
||||
|
||||
class DBusConnection
|
||||
{
|
||||
public:
|
||||
@ -64,8 +62,6 @@ private:
|
||||
QDBusConnection dbusConnection;
|
||||
};
|
||||
|
||||
#endif // QT_NO_ACCESSIBILITY
|
||||
|
||||
QT_END_NAMESPACE
|
||||
QT_END_HEADER
|
||||
|
||||
|
@ -50,8 +50,6 @@
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
#ifndef QT_NO_ACCESSIBILITY
|
||||
|
||||
QSpiObjectReference::QSpiObjectReference()
|
||||
: path(QDBusObjectPath(ATSPI_DBUS_PATH_NULL))
|
||||
{}
|
||||
@ -236,6 +234,4 @@ void qSpiInitializeStructTypes()
|
||||
qDBusRegisterMetaType<QSpiRelationArray>();
|
||||
}
|
||||
|
||||
#endif // QT_NO_ACCESSIBILITY
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
@ -80,11 +80,11 @@ public:
|
||||
// ----------------------------------------------------
|
||||
// Additional methods
|
||||
void setVirtualSiblings(QList<QPlatformScreen *> siblings) { m_siblings = siblings; }
|
||||
NSScreen *osScreen() const { return m_screen; }
|
||||
NSScreen *osScreen() const;
|
||||
void updateGeometry();
|
||||
|
||||
public:
|
||||
NSScreen *m_screen;
|
||||
int m_screenIndex;
|
||||
QRect m_geometry;
|
||||
QRect m_availableGeometry;
|
||||
QDpi m_logicalDpi;
|
||||
|
@ -70,9 +70,8 @@ static void initResources()
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
QCocoaScreen::QCocoaScreen(int screenIndex) :
|
||||
QPlatformScreen(), m_refreshRate(60.0)
|
||||
QPlatformScreen(), m_screenIndex(screenIndex), m_refreshRate(60.0)
|
||||
{
|
||||
m_screen = [[NSScreen screens] objectAtIndex:screenIndex];
|
||||
updateGeometry();
|
||||
m_cursor = new QCocoaCursor;
|
||||
}
|
||||
@ -82,19 +81,25 @@ QCocoaScreen::~QCocoaScreen()
|
||||
delete m_cursor;
|
||||
}
|
||||
|
||||
NSScreen *QCocoaScreen::osScreen() const
|
||||
{
|
||||
return [[NSScreen screens] objectAtIndex:m_screenIndex];
|
||||
}
|
||||
|
||||
void QCocoaScreen::updateGeometry()
|
||||
{
|
||||
NSRect frameRect = [m_screen frame];
|
||||
NSScreen *nsScreen = osScreen();
|
||||
NSRect frameRect = [nsScreen frame];
|
||||
m_geometry = QRect(frameRect.origin.x, frameRect.origin.y, frameRect.size.width, frameRect.size.height);
|
||||
NSRect visibleRect = [m_screen visibleFrame];
|
||||
NSRect visibleRect = [nsScreen visibleFrame];
|
||||
m_availableGeometry = QRect(visibleRect.origin.x,
|
||||
frameRect.size.height - (visibleRect.origin.y + visibleRect.size.height), // invert y
|
||||
visibleRect.size.width, visibleRect.size.height);
|
||||
|
||||
m_format = QImage::Format_RGB32;
|
||||
m_depth = NSBitsPerPixelFromDepth([m_screen depth]);
|
||||
m_depth = NSBitsPerPixelFromDepth([nsScreen depth]);
|
||||
|
||||
NSDictionary *devDesc = [m_screen deviceDescription];
|
||||
NSDictionary *devDesc = [nsScreen deviceDescription];
|
||||
CGDirectDisplayID dpy = [[devDesc objectForKey:@"NSScreenNumber"] unsignedIntValue];
|
||||
CGSize size = CGDisplayScreenSize(dpy);
|
||||
m_physicalSize = QSizeF(size.width, size.height);
|
||||
@ -119,7 +124,7 @@ qreal QCocoaScreen::devicePixelRatio() const
|
||||
{
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
|
||||
if (QSysInfo::MacintoshVersion >= QSysInfo::MV_10_7) {
|
||||
return qreal([m_screen backingScaleFactor]);
|
||||
return qreal([osScreen() backingScaleFactor]);
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
|
@ -60,8 +60,7 @@ QQnxRasterBackingStore::QQnxRasterBackingStore(QWindow *window)
|
||||
{
|
||||
qRasterBackingStoreDebug() << Q_FUNC_INFO << "w =" << window;
|
||||
|
||||
// save platform window associated with widget
|
||||
m_platformWindow = static_cast<QQnxWindow*>(window->handle());
|
||||
m_window = window;
|
||||
}
|
||||
|
||||
QQnxRasterBackingStore::~QQnxRasterBackingStore()
|
||||
@ -71,8 +70,9 @@ QQnxRasterBackingStore::~QQnxRasterBackingStore()
|
||||
|
||||
QPaintDevice *QQnxRasterBackingStore::paintDevice()
|
||||
{
|
||||
if (m_platformWindow->hasBuffers())
|
||||
return m_platformWindow->renderBuffer().image();
|
||||
QQnxWindow *platformWindow = this->platformWindow();
|
||||
if (platformWindow->hasBuffers())
|
||||
return platformWindow->renderBuffer().image();
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -85,7 +85,8 @@ void QQnxRasterBackingStore::flush(QWindow *window, const QRegion ®ion, const
|
||||
if (window)
|
||||
targetWindow = static_cast<QQnxWindow *>(window->handle());
|
||||
|
||||
if (!targetWindow || targetWindow == m_platformWindow) {
|
||||
QQnxWindow *platformWindow = this->platformWindow();
|
||||
if (!targetWindow || targetWindow == platformWindow) {
|
||||
|
||||
// visit all pending scroll operations
|
||||
for (int i = m_scrollOpList.size() - 1; i >= 0; i--) {
|
||||
@ -93,14 +94,14 @@ void QQnxRasterBackingStore::flush(QWindow *window, const QRegion ®ion, const
|
||||
// do the scroll operation
|
||||
ScrollOp &op = m_scrollOpList[i];
|
||||
QRegion srcArea = op.totalArea.intersected( op.totalArea.translated(-op.dx, -op.dy) );
|
||||
m_platformWindow->scroll(srcArea, op.dx, op.dy);
|
||||
platformWindow->scroll(srcArea, op.dx, op.dy);
|
||||
}
|
||||
|
||||
// clear all pending scroll operations
|
||||
m_scrollOpList.clear();
|
||||
|
||||
// update the display with newly rendered content
|
||||
m_platformWindow->post(region);
|
||||
platformWindow->post(region);
|
||||
} else if (targetWindow) {
|
||||
|
||||
// The contents of the backing store should be flushed to a different window than the
|
||||
@ -119,7 +120,7 @@ void QQnxRasterBackingStore::flush(QWindow *window, const QRegion ®ion, const
|
||||
Q_ASSERT(!m_hasUnflushedPaintOperations);
|
||||
|
||||
targetWindow->adjustBufferSize();
|
||||
targetWindow->blitFrom(m_platformWindow, offset, region);
|
||||
targetWindow->blitFrom(platformWindow, offset, region);
|
||||
targetWindow->post(region);
|
||||
|
||||
} else {
|
||||
@ -177,7 +178,7 @@ void QQnxRasterBackingStore::beginPaint(const QRegion ®ion)
|
||||
qRasterBackingStoreDebug() << Q_FUNC_INFO << "w =" << window();
|
||||
m_hasUnflushedPaintOperations = true;
|
||||
|
||||
m_platformWindow->adjustBufferSize();
|
||||
platformWindow()->adjustBufferSize();
|
||||
}
|
||||
|
||||
void QQnxRasterBackingStore::endPaint(const QRegion ®ion)
|
||||
@ -186,4 +187,10 @@ void QQnxRasterBackingStore::endPaint(const QRegion ®ion)
|
||||
qRasterBackingStoreDebug() << Q_FUNC_INFO << "w =" << window();
|
||||
}
|
||||
|
||||
QQnxWindow *QQnxRasterBackingStore::platformWindow() const
|
||||
{
|
||||
Q_ASSERT(m_window->handle());
|
||||
return static_cast<QQnxWindow*>(m_window->handle());
|
||||
}
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
@ -72,7 +72,9 @@ private:
|
||||
int dy;
|
||||
};
|
||||
|
||||
QQnxWindow *m_platformWindow;
|
||||
QQnxWindow *platformWindow() const;
|
||||
|
||||
QWindow *m_window;
|
||||
QList<ScrollOp> m_scrollOpList;
|
||||
bool m_hasUnflushedPaintOperations;
|
||||
};
|
||||
|
@ -767,9 +767,11 @@ HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::get_accChild(VARIANT varChildI
|
||||
// actually ask for the same object. As a consequence, we need to clone ourselves:
|
||||
if (QAccessibleInterface *par = accessible->parent()) {
|
||||
const int indexOf = par->indexOfChild(accessible);
|
||||
QAccessibleInterface *clone = par->child(indexOf);
|
||||
if (indexOf == -1)
|
||||
qWarning() << "inconsistent hierarchy, parent:" << par << "child:" << accessible;
|
||||
else
|
||||
acc = par->child(indexOf);
|
||||
delete par;
|
||||
acc = clone;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -100,10 +100,15 @@ void QWindowsBackingStore::flush(QWindow *window, const QRegion ®ion,
|
||||
POINT ptDst = {r.x(), r.y()};
|
||||
POINT ptSrc = {0, 0};
|
||||
BLENDFUNCTION blend = {AC_SRC_OVER, 0, (BYTE)(255.0 * rw->opacity()), AC_SRC_ALPHA};
|
||||
RECT dirty = {dirtyRect.x(), dirtyRect.y(),
|
||||
dirtyRect.x() + dirtyRect.width(), dirtyRect.y() + dirtyRect.height()};
|
||||
UPDATELAYEREDWINDOWINFO info = {sizeof(info), NULL, &ptDst, &size, m_image->hdc(), &ptSrc, 0, &blend, ULW_ALPHA, &dirty};
|
||||
QWindowsContext::user32dll.updateLayeredWindowIndirect(rw->handle(), &info);
|
||||
|
||||
if (QWindowsContext::user32dll.updateLayeredWindowIndirect) {
|
||||
RECT dirty = {dirtyRect.x(), dirtyRect.y(),
|
||||
dirtyRect.x() + dirtyRect.width(), dirtyRect.y() + dirtyRect.height()};
|
||||
UPDATELAYEREDWINDOWINFO info = {sizeof(info), NULL, &ptDst, &size, m_image->hdc(), &ptSrc, 0, &blend, ULW_ALPHA, &dirty};
|
||||
QWindowsContext::user32dll.updateLayeredWindowIndirect(rw->handle(), &info);
|
||||
} else {
|
||||
QWindowsContext::user32dll.updateLayeredWindow(rw->handle(), NULL, &ptDst, &size, m_image->hdc(), &ptSrc, 0, &blend, ULW_ALPHA);
|
||||
}
|
||||
} else {
|
||||
#endif
|
||||
const HDC dc = rw->getDC();
|
||||
|
@ -419,9 +419,9 @@ inline bool isQMLApplication()
|
||||
{
|
||||
// check if the QtQuick library is loaded
|
||||
#ifdef _DEBUG
|
||||
HMODULE handle = GetModuleHandle(L"QtQuick" QT_LIBINFIX L"d5.dll");
|
||||
HMODULE handle = GetModuleHandle(L"Qt5Quick" QT_LIBINFIX L"d.dll");
|
||||
#else
|
||||
HMODULE handle = GetModuleHandle(L"QtQuick" QT_LIBINFIX L"5.dll");
|
||||
HMODULE handle = GetModuleHandle(L"Qt5Quick" QT_LIBINFIX L".dll");
|
||||
#endif
|
||||
return (handle != NULL);
|
||||
}
|
||||
|
@ -545,7 +545,7 @@ QPoint QXcbCursor::pos() const
|
||||
|
||||
void QXcbCursor::setPos(const QPoint &pos)
|
||||
{
|
||||
xcb_window_t root;
|
||||
xcb_window_t root = 0;
|
||||
queryPointer(connection(), &root, 0);
|
||||
xcb_warp_pointer(xcb_connection(), XCB_NONE, root, 0, 0, 0, 0, pos.x(), pos.y());
|
||||
xcb_flush(xcb_connection());
|
||||
|
@ -250,6 +250,7 @@ void * QXcbNativeInterface::eglContextForContext(QOpenGLContext *context)
|
||||
QEGLPlatformContext *eglPlatformContext = static_cast<QEGLPlatformContext *>(context->handle());
|
||||
return eglPlatformContext->eglContext();
|
||||
#else
|
||||
Q_UNUSED(context);
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
@ -65,14 +65,14 @@ QVERIFY(arguments.at(2).type() == QVariant::double);
|
||||
|
||||
|
||||
//! [2]
|
||||
qRegisterMetaType<QModelIndex>("QModelIndex");
|
||||
QSignalSpy spy(&model, SIGNAL(whatever(QModelIndex)));
|
||||
qRegisterMetaType<SomeStruct>();
|
||||
QSignalSpy spy(&model, SIGNAL(whatever(SomeStruct)));
|
||||
//! [2]
|
||||
|
||||
|
||||
//! [3]
|
||||
// get the first argument from the first received signal:
|
||||
QModelIndex result = qvariant_cast<QModelIndex>(spy.at(0).at(0));
|
||||
SomeStruct result = qvariant_cast<SomeStruct>(spy.at(0).at(0));
|
||||
//! [3]
|
||||
|
||||
|
||||
|
@ -54,7 +54,7 @@
|
||||
|
||||
\snippet code/doc_src_qsignalspy.cpp 2
|
||||
|
||||
To retrieve the \c QModelIndex, you can use qvariant_cast:
|
||||
To retrieve the instance, you can use qvariant_cast:
|
||||
|
||||
\snippet code/doc_src_qsignalspy.cpp 3
|
||||
*/
|
||||
|
@ -2709,16 +2709,48 @@ bool QApplication::notify(QObject *receiver, QEvent *e)
|
||||
if (receiver->isWindowType())
|
||||
QGuiApplicationPrivate::sendQWindowEventToQPlatformWindow(static_cast<QWindow *>(receiver), e);
|
||||
|
||||
// capture the current mouse/keyboard state
|
||||
if(e->spontaneous()) {
|
||||
if (e->type() == QEvent::MouseButtonPress
|
||||
|| e->type() == QEvent::MouseButtonRelease) {
|
||||
// Capture the current mouse and keyboard states. Doing so here is
|
||||
// required in order to support QTestLib synthesized events. Real mouse
|
||||
// and keyboard state updates from the platform plugin are managed by
|
||||
// QGuiApplicationPrivate::process(Mouse|Wheel|Key|Touch|Tablet)Event();
|
||||
switch (e->type()) {
|
||||
case QEvent::MouseButtonPress:
|
||||
{
|
||||
QMouseEvent *me = static_cast<QMouseEvent*>(e);
|
||||
if(me->type() == QEvent::MouseButtonPress)
|
||||
QApplicationPrivate::mouse_buttons |= me->button();
|
||||
else
|
||||
QApplicationPrivate::mouse_buttons &= ~me->button();
|
||||
QApplicationPrivate::modifier_buttons = me->modifiers();
|
||||
QApplicationPrivate::mouse_buttons |= me->button();
|
||||
break;
|
||||
}
|
||||
case QEvent::MouseButtonRelease:
|
||||
{
|
||||
QMouseEvent *me = static_cast<QMouseEvent*>(e);
|
||||
QApplicationPrivate::modifier_buttons = me->modifiers();
|
||||
QApplicationPrivate::mouse_buttons &= ~me->button();
|
||||
break;
|
||||
}
|
||||
case QEvent::KeyPress:
|
||||
case QEvent::KeyRelease:
|
||||
case QEvent::MouseMove:
|
||||
#ifndef QT_NO_WHEELEVENT
|
||||
case QEvent::Wheel:
|
||||
#endif
|
||||
case QEvent::TouchBegin:
|
||||
case QEvent::TouchUpdate:
|
||||
case QEvent::TouchEnd:
|
||||
#ifndef QT_NO_TABLETEVENT
|
||||
case QEvent::TabletMove:
|
||||
case QEvent::TabletPress:
|
||||
case QEvent::TabletRelease:
|
||||
#endif
|
||||
{
|
||||
QInputEvent *ie = static_cast<QInputEvent*>(e);
|
||||
QApplicationPrivate::modifier_buttons = ie->modifiers();
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef QT_NO_GESTURES
|
||||
|
@ -75,6 +75,7 @@
|
||||
#include <QtWidgets/QToolBar>
|
||||
#include <QtWidgets/QToolButton>
|
||||
|
||||
#ifndef Q_OS_MAC
|
||||
// X11 Includes:
|
||||
|
||||
// the following is necessary to work around breakage in many versions
|
||||
@ -90,6 +91,7 @@
|
||||
#undef XRegisterIMInstantiateCallback
|
||||
#undef XUnregisterIMInstantiateCallback
|
||||
#undef XSetIMValues
|
||||
#endif
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
@ -210,7 +212,9 @@ Ptr_gconf_client_get_bool QGtkStylePrivate::gconf_client_get_bool = 0;
|
||||
Ptr_gnome_icon_lookup_sync QGtkStylePrivate::gnome_icon_lookup_sync = 0;
|
||||
Ptr_gnome_vfs_init QGtkStylePrivate::gnome_vfs_init = 0;
|
||||
|
||||
#ifndef Q_OS_MAC
|
||||
typedef int (*x11ErrorHandler)(Display*, XErrorEvent*);
|
||||
#endif
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
@ -540,10 +544,14 @@ void QGtkStylePrivate::initGtkWidgets() const
|
||||
}
|
||||
|
||||
if (QGtkStylePrivate::gtk_init) {
|
||||
#ifndef Q_OS_MAC
|
||||
// Gtk will set the Qt error handler so we have to reset it afterwards
|
||||
x11ErrorHandler qt_x_errhandler = XSetErrorHandler(0);
|
||||
#endif
|
||||
QGtkStylePrivate::gtk_init (NULL, NULL);
|
||||
#ifndef Q_OS_MAC
|
||||
XSetErrorHandler(qt_x_errhandler);
|
||||
#endif
|
||||
|
||||
// make a window
|
||||
GtkWidget* gtkWindow = QGtkStylePrivate::gtk_window_new(GTK_WINDOW_POPUP);
|
||||
@ -967,13 +975,14 @@ void QGtkStylePrivate::setupGtkFileChooser(GtkWidget* gtkFileChooser, QWidget *p
|
||||
QWidget *modalFor = parent ? parent->window() : qApp->activeWindow();
|
||||
if (modalFor) {
|
||||
QGtkStylePrivate::gtk_widget_realize(gtkFileChooser); // Creates X window
|
||||
#ifndef Q_OS_MAC
|
||||
XSetTransientForHint(QGtkStylePrivate::gdk_x11_drawable_get_xdisplay(gtkFileChooser->window),
|
||||
QGtkStylePrivate::gdk_x11_drawable_get_xid(gtkFileChooser->window),
|
||||
modalFor->winId());
|
||||
#ifdef Q_WS_X11
|
||||
QGtkStylePrivate::gdk_x11_window_set_user_time (gtkFileChooser->window, QX11Info::appUserTime());
|
||||
#endif
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
QFileInfo fileinfo(dir);
|
||||
|
@ -1182,9 +1182,11 @@ void QTabBar::setCurrentIndex(int index)
|
||||
d->layoutTab(index);
|
||||
#ifndef QT_NO_ACCESSIBILITY
|
||||
if (QAccessible::isActive()) {
|
||||
QAccessibleEvent focusEvent(this, QAccessible::Focus);
|
||||
focusEvent.setChild(index);
|
||||
QAccessible::updateAccessibility(&focusEvent);
|
||||
if (hasFocus()) {
|
||||
QAccessibleEvent focusEvent(this, QAccessible::Focus);
|
||||
focusEvent.setChild(index);
|
||||
QAccessible::updateAccessibility(&focusEvent);
|
||||
}
|
||||
QAccessibleEvent selectionEvent(this, QAccessible::Selection);
|
||||
selectionEvent.setChild(index);
|
||||
QAccessible::updateAccessibility(&selectionEvent);
|
||||
|
3403
tests/auto/bic/data/QtCore.5.0.0.linux-gcc-amd64.txt
Normal file
3403
tests/auto/bic/data/QtCore.5.0.0.linux-gcc-amd64.txt
Normal file
File diff suppressed because it is too large
Load Diff
3737
tests/auto/bic/data/QtDBus.5.0.0.linux-gcc-amd64.txt
Normal file
3737
tests/auto/bic/data/QtDBus.5.0.0.linux-gcc-amd64.txt
Normal file
File diff suppressed because it is too large
Load Diff
6315
tests/auto/bic/data/QtGui.5.0.0.linux-gcc-amd64.txt
Normal file
6315
tests/auto/bic/data/QtGui.5.0.0.linux-gcc-amd64.txt
Normal file
File diff suppressed because it is too large
Load Diff
4215
tests/auto/bic/data/QtNetwork.5.0.0.linux-gcc-amd64.txt
Normal file
4215
tests/auto/bic/data/QtNetwork.5.0.0.linux-gcc-amd64.txt
Normal file
File diff suppressed because it is too large
Load Diff
17153
tests/auto/bic/data/QtOpenGL.5.0.0.linux-gcc-amd64.txt
Normal file
17153
tests/auto/bic/data/QtOpenGL.5.0.0.linux-gcc-amd64.txt
Normal file
File diff suppressed because it is too large
Load Diff
3825
tests/auto/bic/data/QtSql.5.0.0.linux-gcc-amd64.txt
Normal file
3825
tests/auto/bic/data/QtSql.5.0.0.linux-gcc-amd64.txt
Normal file
File diff suppressed because it is too large
Load Diff
3469
tests/auto/bic/data/QtTest.5.0.0.linux-gcc-amd64.txt
Normal file
3469
tests/auto/bic/data/QtTest.5.0.0.linux-gcc-amd64.txt
Normal file
File diff suppressed because it is too large
Load Diff
16903
tests/auto/bic/data/QtWidgets.5.0.0.linux-gcc-amd64.txt
Normal file
16903
tests/auto/bic/data/QtWidgets.5.0.0.linux-gcc-amd64.txt
Normal file
File diff suppressed because it is too large
Load Diff
@ -49,13 +49,6 @@
|
||||
|
||||
#include "functions.h"
|
||||
|
||||
Q_DECLARE_METATYPE(QVector<int>);
|
||||
Q_DECLARE_METATYPE(QVector<double>);
|
||||
Q_DECLARE_METATYPE(QVector<QString>);
|
||||
Q_DECLARE_METATYPE(QList<int>);
|
||||
Q_DECLARE_METATYPE(QList<double>);
|
||||
Q_DECLARE_METATYPE(QList<QString>);
|
||||
|
||||
class tst_QtConcurrentMap: public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
@ -774,7 +774,6 @@ void tst_QPropertyAnimation::interpolated()
|
||||
}
|
||||
}
|
||||
|
||||
Q_DECLARE_METATYPE(QVariant)
|
||||
|
||||
void tst_QPropertyAnimation::setStartEndValues_data()
|
||||
{
|
||||
@ -1125,7 +1124,6 @@ void tst_QPropertyAnimation::restart()
|
||||
|
||||
void tst_QPropertyAnimation::valueChanged()
|
||||
{
|
||||
qRegisterMetaType<QVariant>("QVariant");
|
||||
|
||||
//we check that we receive the valueChanged signal
|
||||
MyErrorObject o;
|
||||
|
@ -50,9 +50,6 @@
|
||||
|
||||
#include "../../../qtest-config.h"
|
||||
|
||||
Q_DECLARE_METATYPE(QBitArray)
|
||||
Q_DECLARE_METATYPE(qint64)
|
||||
|
||||
class tst_QDataStream : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
@ -56,7 +56,6 @@
|
||||
# include <windows.h>
|
||||
# endif
|
||||
|
||||
Q_DECLARE_METATYPE(QList<QProcess::ExitStatus>);
|
||||
Q_DECLARE_METATYPE(QProcess::ExitStatus);
|
||||
Q_DECLARE_METATYPE(QProcess::ProcessState);
|
||||
#endif
|
||||
|
@ -61,8 +61,6 @@ private slots:
|
||||
void setLocale();
|
||||
};
|
||||
|
||||
Q_DECLARE_METATYPE(QLocale)
|
||||
Q_DECLARE_METATYPE(qlonglong)
|
||||
|
||||
void tst_QResourceEngine::initTestCase()
|
||||
{
|
||||
|
@ -758,7 +758,6 @@ void tst_QSettings::testErrorHandling()
|
||||
#endif // !Q_OS_WIN
|
||||
}
|
||||
|
||||
Q_DECLARE_METATYPE(QVariant)
|
||||
Q_DECLARE_METATYPE(QSettings::Status)
|
||||
|
||||
#ifdef QT_BUILD_INTERNAL
|
||||
@ -804,7 +803,6 @@ void tst_QSettings::testIniParsing_data()
|
||||
#ifdef QT_BUILD_INTERNAL
|
||||
void tst_QSettings::testIniParsing()
|
||||
{
|
||||
qRegisterMetaType<QVariant>("QVariant");
|
||||
qRegisterMetaType<QSettings::Status>("QSettings::Status");
|
||||
|
||||
QDir dir(settingsPath());
|
||||
|
@ -57,9 +57,6 @@
|
||||
|
||||
#include "../../../network-settings.h"
|
||||
|
||||
Q_DECLARE_METATYPE(qlonglong)
|
||||
Q_DECLARE_METATYPE(qulonglong)
|
||||
Q_DECLARE_METATYPE(QList<int>)
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
template<> struct QMetaTypeId<QIODevice::OpenModeFlag>
|
||||
|
@ -123,8 +123,6 @@ void tst_QAbstractProxyModel::qabstractproxymodel()
|
||||
model.submit();
|
||||
}
|
||||
|
||||
Q_DECLARE_METATYPE(QVariant)
|
||||
Q_DECLARE_METATYPE(QModelIndex)
|
||||
void tst_QAbstractProxyModel::data_data()
|
||||
{
|
||||
QTest::addColumn<QModelIndex>("proxyIndex");
|
||||
|
@ -114,10 +114,6 @@ typedef QList<int> IntList;
|
||||
typedef QPair<int, int> IntPair;
|
||||
typedef QList<IntPair> PairList;
|
||||
|
||||
Q_DECLARE_METATYPE(PairList)
|
||||
Q_DECLARE_METATYPE(QModelIndex)
|
||||
Q_DECLARE_METATYPE(QModelIndexList)
|
||||
Q_DECLARE_METATYPE(IntList)
|
||||
Q_DECLARE_METATYPE(QItemSelection)
|
||||
|
||||
class QStreamHelper: public QAbstractItemModel
|
||||
@ -1683,9 +1679,6 @@ void tst_QItemSelectionModel::removeColumns()
|
||||
typedef QList<IntList> IntListList;
|
||||
typedef QPair<IntPair, IntPair> IntPairPair;
|
||||
typedef QList<IntPairPair> IntPairPairList;
|
||||
Q_DECLARE_METATYPE(IntListList)
|
||||
Q_DECLARE_METATYPE(IntPairPair)
|
||||
Q_DECLARE_METATYPE(IntPairPairList)
|
||||
|
||||
void tst_QItemSelectionModel::modelLayoutChanged_data()
|
||||
{
|
||||
|
@ -54,11 +54,6 @@ typedef QList<int> IntList;
|
||||
typedef QPair<int, int> IntPair;
|
||||
typedef QList<IntPair> IntPairList;
|
||||
|
||||
Q_DECLARE_METATYPE(IntList)
|
||||
Q_DECLARE_METATYPE(IntPair)
|
||||
Q_DECLARE_METATYPE(IntPairList)
|
||||
Q_DECLARE_METATYPE(QModelIndex)
|
||||
|
||||
class tst_QSortFilterProxyModel : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
@ -179,7 +174,6 @@ tst_QSortFilterProxyModel::tst_QSortFilterProxyModel()
|
||||
|
||||
void tst_QSortFilterProxyModel::initTestCase()
|
||||
{
|
||||
qRegisterMetaType<QModelIndex>("QModelIndex");
|
||||
qRegisterMetaType<IntList>("IntList");
|
||||
qRegisterMetaType<IntPair>("IntPair");
|
||||
qRegisterMetaType<IntPairList>("IntPairList");
|
||||
|
@ -572,8 +572,6 @@ void tst_QEventLoop::processEventsExcludeTimers()
|
||||
timerReceiver.gotTimerEvent = -1;
|
||||
}
|
||||
|
||||
Q_DECLARE_METATYPE(QThread*)
|
||||
|
||||
namespace DeliverInDefinedOrder {
|
||||
enum { NbThread = 3, NbObject = 500, NbEventQueue = 5, NbEvent = 50 };
|
||||
|
||||
|
@ -396,7 +396,6 @@ void tst_QAlgorithms::sortedList()
|
||||
QCOMPARE(list.at(5), 8);
|
||||
}
|
||||
|
||||
Q_DECLARE_METATYPE(QList<int>)
|
||||
|
||||
void tst_QAlgorithms::test_qLowerBound_data()
|
||||
{
|
||||
@ -615,7 +614,6 @@ void tst_QAlgorithms::stableSortTest()
|
||||
}
|
||||
}
|
||||
|
||||
Q_DECLARE_METATYPE(QVector<int>)
|
||||
|
||||
void tst_QAlgorithms::stableSortCorrectnessTest_data()
|
||||
{
|
||||
|
@ -99,8 +99,6 @@ private slots:
|
||||
void resize();
|
||||
};
|
||||
|
||||
Q_DECLARE_METATYPE(QBitArray)
|
||||
|
||||
void tst_QBitArray::size_data()
|
||||
{
|
||||
//create the testtable instance and define the elements
|
||||
|
@ -245,7 +245,6 @@ QByteArray verifyZeroTermination(const QByteArray &ba)
|
||||
|
||||
tst_QByteArray::tst_QByteArray()
|
||||
{
|
||||
qRegisterMetaType<qulonglong>("qulonglong");
|
||||
}
|
||||
|
||||
void tst_QByteArray::qCompress_data()
|
||||
@ -1235,7 +1234,6 @@ void tst_QByteArray::toInt()
|
||||
QCOMPARE( number, expectednumber );
|
||||
}
|
||||
|
||||
Q_DECLARE_METATYPE(qulonglong)
|
||||
void tst_QByteArray::toULong_data()
|
||||
{
|
||||
QTest::addColumn<QByteArray>("str");
|
||||
|
@ -109,7 +109,6 @@ private:
|
||||
QDate invalidDate() const { return QDate(); }
|
||||
};
|
||||
|
||||
Q_DECLARE_METATYPE(QDate)
|
||||
Q_DECLARE_METATYPE(Qt::DateFormat)
|
||||
|
||||
void tst_QDate::isNull_data()
|
||||
|
@ -147,9 +147,6 @@ private:
|
||||
QTime invalidTime() const { return QTime(-1, -1, -1); }
|
||||
};
|
||||
|
||||
Q_DECLARE_METATYPE(QDateTime)
|
||||
Q_DECLARE_METATYPE(QDate)
|
||||
Q_DECLARE_METATYPE(QTime)
|
||||
Q_DECLARE_METATYPE(Qt::TimeSpec)
|
||||
Q_DECLARE_METATYPE(Qt::DateFormat)
|
||||
|
||||
|
@ -158,8 +158,6 @@ void tst_QEasingCurve::propertyDefaults()
|
||||
|
||||
typedef QList<int> IntList;
|
||||
typedef QList<qreal> RealList;
|
||||
Q_DECLARE_METATYPE(IntList)
|
||||
Q_DECLARE_METATYPE(RealList)
|
||||
|
||||
void tst_QEasingCurve::valueForProgress_data()
|
||||
{
|
||||
|
@ -1546,9 +1546,6 @@ void tst_QList::constSharedNullComplex() const
|
||||
QCOMPARE(liveCount, Complex::getLiveCount());
|
||||
}
|
||||
|
||||
Q_DECLARE_METATYPE(QList<int>);
|
||||
Q_DECLARE_METATYPE(QList<Complex>);
|
||||
|
||||
template <class T>
|
||||
void generateSetSharableData()
|
||||
{
|
||||
|
@ -74,8 +74,6 @@ extern "C" DWORD GetThreadLocale(void) {
|
||||
# include <stdlib.h>
|
||||
#endif
|
||||
|
||||
Q_DECLARE_METATYPE(qlonglong)
|
||||
Q_DECLARE_METATYPE(QDate)
|
||||
Q_DECLARE_METATYPE(QLocale::FormatType)
|
||||
|
||||
class tst_QLocale : public QObject
|
||||
@ -135,6 +133,8 @@ private slots:
|
||||
void monthName();
|
||||
void standaloneMonthName();
|
||||
|
||||
void defaultNumeringSystem();
|
||||
|
||||
void ampm();
|
||||
void currency();
|
||||
void quoteString();
|
||||
@ -957,7 +957,6 @@ void tst_QLocale::formatDate()
|
||||
QCOMPARE(l.toString(date, format), result);
|
||||
}
|
||||
|
||||
Q_DECLARE_METATYPE(QTime)
|
||||
|
||||
void tst_QLocale::formatTime_data()
|
||||
{
|
||||
@ -1530,6 +1529,10 @@ void tst_QLocale::dayName()
|
||||
|
||||
QLocale l(locale_name);
|
||||
QCOMPARE(l.dayName(day, format), dayName);
|
||||
|
||||
QLocale ir("ga_IE");
|
||||
QCOMPARE(ir.dayName(1, QLocale::ShortFormat), QLatin1String("Luan"));
|
||||
QCOMPARE(ir.dayName(7, QLocale::ShortFormat), QLatin1String("Domh"));
|
||||
}
|
||||
|
||||
void tst_QLocale::standaloneDayName_data()
|
||||
@ -1589,6 +1592,42 @@ a(QLatin1String("0.0000000000000000000000000000000000000000000000000000000000000
|
||||
QVERIFY(!ok);
|
||||
}
|
||||
|
||||
void tst_QLocale::defaultNumeringSystem()
|
||||
{
|
||||
QLocale sk("sk_SK");
|
||||
QCOMPARE(sk.toString(123), QLatin1String("123"));
|
||||
|
||||
QLocale ta("ta_IN");
|
||||
QCOMPARE(ta.toString(123), QLatin1String("123"));
|
||||
|
||||
QLocale te("te_IN");
|
||||
QCOMPARE(te.toString(123), QLatin1String("123"));
|
||||
|
||||
QLocale hi("hi_IN");
|
||||
QCOMPARE(hi.toString(123), QLatin1String("123"));
|
||||
|
||||
QLocale gu("gu_IN");
|
||||
QCOMPARE(gu.toString(123), QLatin1String("123"));
|
||||
|
||||
QLocale kn("kn_IN");
|
||||
QCOMPARE(kn.toString(123), QLatin1String("123"));
|
||||
|
||||
QLocale pa("pa_IN");
|
||||
QCOMPARE(pa.toString(123), QLatin1String("123"));
|
||||
|
||||
QLocale ne("ne_IN");
|
||||
QCOMPARE(ne.toString(123), QLatin1String("123"));
|
||||
|
||||
QLocale mr("mr_IN");
|
||||
QCOMPARE(mr.toString(123), QLatin1String("123"));
|
||||
|
||||
QLocale ml("ml_IN");
|
||||
QCOMPARE(ml.toString(123), QLatin1String("123"));
|
||||
|
||||
QLocale kok("kok_IN");
|
||||
QCOMPARE(kok.toString(123), QLatin1String("123"));
|
||||
}
|
||||
|
||||
void tst_QLocale::ampm()
|
||||
{
|
||||
QLocale c(QLocale::C);
|
||||
@ -1610,6 +1649,10 @@ void tst_QLocale::ampm()
|
||||
QLocale ua("uk_UA");
|
||||
QCOMPARE(ua.amText(), QString::fromUtf8("\320\264\320\277"));
|
||||
QCOMPARE(ua.pmText(), QString::fromUtf8("\320\277\320\277"));
|
||||
|
||||
QLocale tr("tr_TR");
|
||||
QCOMPARE(tr.amText(), QString::fromUtf8("\303\226\303\226"));
|
||||
QCOMPARE(tr.pmText(), QString::fromUtf8("\303\226\123"));
|
||||
}
|
||||
|
||||
void tst_QLocale::dateFormat()
|
||||
@ -1676,6 +1719,10 @@ void tst_QLocale::monthName()
|
||||
// check that our CLDR scripts handle surrogate pairs correctly
|
||||
QLocale dsrt("en-Dsrt-US");
|
||||
QCOMPARE(dsrt.monthName(1, QLocale::LongFormat), QString::fromUtf8("\xf0\x90\x90\x96\xf0\x90\x90\xb0\xf0\x90\x91\x8c\xf0\x90\x90\xb7\xf0\x90\x90\xad\xf0\x90\x90\xaf\xf0\x90\x91\x89\xf0\x90\x90\xa8"));
|
||||
|
||||
QLocale ir("ga_IE");
|
||||
QCOMPARE(ir.monthName(1, QLocale::ShortFormat), QLatin1String("Ean"));
|
||||
QCOMPARE(ir.monthName(12, QLocale::ShortFormat), QLatin1String("Noll"));
|
||||
}
|
||||
|
||||
void tst_QLocale::standaloneMonthName()
|
||||
|
@ -44,10 +44,6 @@
|
||||
#include <limits.h>
|
||||
#include <qdebug.h>
|
||||
|
||||
Q_DECLARE_METATYPE(QRectF)
|
||||
Q_DECLARE_METATYPE(QPointF)
|
||||
Q_DECLARE_METATYPE(QRect)
|
||||
Q_DECLARE_METATYPE(QPoint)
|
||||
|
||||
class tst_QRect : public QObject
|
||||
{
|
||||
|
@ -71,7 +71,6 @@ struct Match
|
||||
};
|
||||
|
||||
Q_DECLARE_METATYPE(Match)
|
||||
Q_DECLARE_METATYPE(QList<Match>)
|
||||
|
||||
bool operator==(const QRegularExpressionMatch &rem, const Match &m)
|
||||
{
|
||||
|
116
tests/auto/corelib/tools/qsharedpointer/nontracked.cpp
Normal file
116
tests/auto/corelib/tools/qsharedpointer/nontracked.cpp
Normal file
@ -0,0 +1,116 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Intel Corporation.
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the test suite of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
/*
|
||||
* This file exists because tst_qsharedpointer.cpp is compiled with
|
||||
* QT_SHAREDPOINTER_TRACK_POINTERS. That changes some behavior.
|
||||
*
|
||||
* Note that most of these tests may yield false-positives in debug mode, but
|
||||
* they should not yield false negatives. That is, they may report PASS when
|
||||
* they are failing, but they should not produce FAILs.
|
||||
*
|
||||
* The reason for that is because of C++'s One Definition Rule: the macro
|
||||
* changes some functions and, in debug mode, they will not be inlined. At link
|
||||
* time, the two functions would be merged.
|
||||
*/
|
||||
|
||||
#include <qsharedpointer.h>
|
||||
#include <QtTest>
|
||||
|
||||
#include "nontracked.h"
|
||||
|
||||
// We can't name our classes Data and DerivedData: those are in tst_qsharedpointer.cpp
|
||||
namespace NonTracked {
|
||||
|
||||
class Data
|
||||
{
|
||||
public:
|
||||
static int destructorCounter;
|
||||
static int generationCounter;
|
||||
int generation;
|
||||
|
||||
Data() : generation(++generationCounter)
|
||||
{ }
|
||||
|
||||
virtual ~Data()
|
||||
{
|
||||
if (generation <= 0)
|
||||
qFatal("tst_qsharedpointer: Double deletion!");
|
||||
generation = 0;
|
||||
++destructorCounter;
|
||||
}
|
||||
};
|
||||
int Data::generationCounter = 0;
|
||||
int Data::destructorCounter = 0;
|
||||
|
||||
class DerivedData: public Data
|
||||
{
|
||||
public:
|
||||
static int derivedDestructorCounter;
|
||||
int moreData;
|
||||
DerivedData() : moreData(0) { }
|
||||
~DerivedData() { ++derivedDestructorCounter; }
|
||||
};
|
||||
int DerivedData::derivedDestructorCounter = 0;
|
||||
|
||||
|
||||
#ifndef QTEST_NO_RTTI
|
||||
void dynamicCastFailureNoLeak()
|
||||
{
|
||||
Data::destructorCounter = DerivedData::derivedDestructorCounter = 0;
|
||||
|
||||
// see QTBUG-28924
|
||||
QSharedPointer<Data> a(new Data);
|
||||
QSharedPointer<DerivedData> b = a.dynamicCast<DerivedData>();
|
||||
QVERIFY(!a.isNull());
|
||||
QVERIFY(b.isNull());
|
||||
|
||||
a.clear();
|
||||
b.clear();
|
||||
QVERIFY(a.isNull());
|
||||
|
||||
// verify that the destructors were called
|
||||
QCOMPARE(Data::destructorCounter, 1);
|
||||
QCOMPARE(DerivedData::derivedDestructorCounter, 0);
|
||||
}
|
||||
|
||||
#endif
|
||||
} // namespace NonTracked
|
49
tests/auto/corelib/tools/qsharedpointer/nontracked.h
Normal file
49
tests/auto/corelib/tools/qsharedpointer/nontracked.h
Normal file
@ -0,0 +1,49 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Intel Corporation.
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the test suite of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef NONTRACKED_H
|
||||
#define NONTRACKED_H
|
||||
|
||||
namespace NonTracked {
|
||||
void dynamicCastFailureNoLeak();
|
||||
}
|
||||
|
||||
#endif // NONTRACKED_H
|
@ -5,9 +5,11 @@ QT = core testlib
|
||||
|
||||
SOURCES = tst_qsharedpointer.cpp \
|
||||
forwarddeclared.cpp \
|
||||
nontracked.cpp \
|
||||
wrapper.cpp
|
||||
|
||||
HEADERS = forwarddeclared.h \
|
||||
nontracked.h \
|
||||
wrapper.h
|
||||
|
||||
TESTDATA += forwarddeclared.cpp forwarddeclared.h
|
||||
|
@ -50,6 +50,7 @@
|
||||
|
||||
#include "externaltests.h"
|
||||
#include "forwarddeclared.h"
|
||||
#include "nontracked.h"
|
||||
#include "wrapper.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
@ -88,6 +89,7 @@ private slots:
|
||||
void dynamicCastDifferentPointers();
|
||||
void dynamicCastVirtualBase();
|
||||
void dynamicCastFailure();
|
||||
void dynamicCastFailureNoLeak();
|
||||
#endif
|
||||
void constCorrectness();
|
||||
void customDeleter();
|
||||
@ -1110,6 +1112,11 @@ void tst_QSharedPointer::dynamicCastFailure()
|
||||
QCOMPARE(int(refCountData(baseptr)->weakref.load()), 1);
|
||||
QCOMPARE(int(refCountData(baseptr)->strongref.load()), 1);
|
||||
}
|
||||
|
||||
void tst_QSharedPointer::dynamicCastFailureNoLeak()
|
||||
{
|
||||
NonTracked::dynamicCastFailureNoLeak();
|
||||
}
|
||||
#endif
|
||||
|
||||
void tst_QSharedPointer::constCorrectness()
|
||||
|
@ -42,7 +42,6 @@
|
||||
#include <QtTest/QtTest>
|
||||
#include <qsize.h>
|
||||
|
||||
Q_DECLARE_METATYPE(QSize)
|
||||
|
||||
class tst_QSize : public QObject
|
||||
{
|
||||
|
@ -42,7 +42,6 @@
|
||||
#include <QtTest/QtTest>
|
||||
#include <qsize.h>
|
||||
|
||||
Q_DECLARE_METATYPE(QSizeF)
|
||||
|
||||
class tst_QSizeF : public QObject
|
||||
{
|
||||
|
@ -67,7 +67,6 @@
|
||||
#include <locale.h>
|
||||
#include <qhash.h>
|
||||
|
||||
Q_DECLARE_METATYPE(qlonglong)
|
||||
|
||||
#define CREATE_REF(string) \
|
||||
const QString padded = QString::fromLatin1(" %1 ").arg(string); \
|
||||
@ -316,9 +315,6 @@ QString verifyZeroTermination(const QString &str)
|
||||
|
||||
typedef QList<int> IntList;
|
||||
|
||||
Q_DECLARE_METATYPE(QList<QVariant>)
|
||||
Q_DECLARE_METATYPE(IntList)
|
||||
|
||||
// This next bit is needed for the NAN and INF in string -> number conversion tests
|
||||
#include <float.h>
|
||||
#include <limits.h>
|
||||
|
@ -46,7 +46,6 @@
|
||||
#include <qlocale.h>
|
||||
#include <locale.h>
|
||||
|
||||
Q_DECLARE_METATYPE(qlonglong)
|
||||
|
||||
class tst_QStringRef : public QObject
|
||||
{
|
||||
@ -84,9 +83,6 @@ static QStringRef emptyRef()
|
||||
|
||||
typedef QList<int> IntList;
|
||||
|
||||
Q_DECLARE_METATYPE(QList<QVariant>)
|
||||
Q_DECLARE_METATYPE(IntList)
|
||||
|
||||
// This next bit is needed for the NAN and INF in string -> number conversion tests
|
||||
#include <float.h>
|
||||
#include <limits.h>
|
||||
|
@ -78,7 +78,6 @@ private slots:
|
||||
void thaiLineBreak();
|
||||
};
|
||||
|
||||
Q_DECLARE_METATYPE(QList<int>)
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
namespace QTest {
|
||||
|
@ -80,7 +80,6 @@ private:
|
||||
QTime invalidTime() { return QTime(-1, -1, -1); }
|
||||
};
|
||||
|
||||
Q_DECLARE_METATYPE(QTime)
|
||||
Q_DECLARE_METATYPE(Qt::DateFormat)
|
||||
|
||||
void tst_QTime::addSecs_data()
|
||||
|
@ -130,7 +130,6 @@ void tst_QTimeLine::currentTime()
|
||||
{
|
||||
QTimeLine timeLine(2000);
|
||||
timeLine.setUpdateInterval((timeLine.duration()/2) / 33);
|
||||
qRegisterMetaType<qreal>("qreal");
|
||||
QSignalSpy spy(&timeLine, SIGNAL(valueChanged(qreal)));
|
||||
QVERIFY(spy.isValid());
|
||||
timeLine.setFrameRange(10, 20);
|
||||
@ -225,7 +224,6 @@ void tst_QTimeLine::value()
|
||||
QVERIFY(timeLine.currentValue() == 0.0);
|
||||
|
||||
// Default speed
|
||||
qRegisterMetaType<qreal>("qreal");
|
||||
QSignalSpy spy(&timeLine, SIGNAL(valueChanged(qreal)));
|
||||
QVERIFY(spy.isValid());
|
||||
timeLine.start();
|
||||
|
@ -296,7 +296,6 @@ private:
|
||||
template<typename T> void detach() const;
|
||||
};
|
||||
|
||||
Q_DECLARE_METATYPE(QVector<int>);
|
||||
|
||||
template<typename T> struct SimpleValue
|
||||
{
|
||||
|
@ -45,7 +45,6 @@
|
||||
#include <QtCore/QObject>
|
||||
#include <QtDBus/QtDBus>
|
||||
|
||||
Q_DECLARE_METATYPE(QVariantList)
|
||||
|
||||
class MyObject: public QObject
|
||||
{
|
||||
|
@ -45,9 +45,6 @@
|
||||
#include <QtTest/QtTest>
|
||||
#include <QtDBus>
|
||||
|
||||
Q_DECLARE_METATYPE(QVariant)
|
||||
Q_DECLARE_METATYPE(QList<int>)
|
||||
Q_DECLARE_METATYPE(QVector<int>)
|
||||
|
||||
class tst_QDBusLocalCalls: public QObject
|
||||
{
|
||||
|
@ -56,42 +56,13 @@ static bool compareFileDescriptors(int fd1, int fd2)
|
||||
}
|
||||
#endif
|
||||
|
||||
Q_DECLARE_METATYPE(QVariant)
|
||||
Q_DECLARE_METATYPE(QList<bool>)
|
||||
Q_DECLARE_METATYPE(QList<short>)
|
||||
Q_DECLARE_METATYPE(QList<ushort>)
|
||||
Q_DECLARE_METATYPE(QList<int>)
|
||||
Q_DECLARE_METATYPE(QList<uint>)
|
||||
Q_DECLARE_METATYPE(QList<qlonglong>)
|
||||
Q_DECLARE_METATYPE(QList<qulonglong>)
|
||||
Q_DECLARE_METATYPE(QList<double>)
|
||||
Q_DECLARE_METATYPE(QList<QDBusVariant>)
|
||||
Q_DECLARE_METATYPE(QList<QDateTime>)
|
||||
|
||||
Q_DECLARE_METATYPE(QList<QByteArray>)
|
||||
Q_DECLARE_METATYPE(QList<QVariantList>)
|
||||
Q_DECLARE_METATYPE(QList<QStringList>)
|
||||
Q_DECLARE_METATYPE(QList<QList<bool> >)
|
||||
Q_DECLARE_METATYPE(QList<QList<short> >)
|
||||
Q_DECLARE_METATYPE(QList<QList<ushort> >)
|
||||
Q_DECLARE_METATYPE(QList<QList<int> >)
|
||||
Q_DECLARE_METATYPE(QList<QList<uint> >)
|
||||
Q_DECLARE_METATYPE(QList<QList<qlonglong> >)
|
||||
Q_DECLARE_METATYPE(QList<QList<qulonglong> >)
|
||||
Q_DECLARE_METATYPE(QList<QList<double> >)
|
||||
Q_DECLARE_METATYPE(QList<QList<QDBusObjectPath> >)
|
||||
Q_DECLARE_METATYPE(QList<QList<QDBusSignature> >)
|
||||
|
||||
typedef QMap<int, QString> IntStringMap;
|
||||
typedef QMap<QString, QString> StringStringMap;
|
||||
typedef QMap<QDBusObjectPath, QString> ObjectPathStringMap;
|
||||
typedef QMap<qlonglong, QDateTime> LLDateTimeMap;
|
||||
typedef QMap<QDBusSignature, QString> SignatureStringMap;
|
||||
Q_DECLARE_METATYPE(IntStringMap)
|
||||
Q_DECLARE_METATYPE(StringStringMap)
|
||||
Q_DECLARE_METATYPE(ObjectPathStringMap)
|
||||
Q_DECLARE_METATYPE(LLDateTimeMap)
|
||||
Q_DECLARE_METATYPE(SignatureStringMap)
|
||||
|
||||
static bool compare(const QDBusUnixFileDescriptor &t1, const QDBusUnixFileDescriptor &t2)
|
||||
{
|
||||
@ -144,7 +115,6 @@ struct MyVariantMapStruct
|
||||
{ return s == other.s && map == other.map; }
|
||||
};
|
||||
Q_DECLARE_METATYPE(MyVariantMapStruct)
|
||||
Q_DECLARE_METATYPE(QList<MyVariantMapStruct>)
|
||||
|
||||
QDBusArgument &operator<<(QDBusArgument &arg, const MyVariantMapStruct &ms)
|
||||
{
|
||||
@ -170,7 +140,6 @@ struct MyFileDescriptorStruct
|
||||
{ return compare(fd, other.fd); }
|
||||
};
|
||||
Q_DECLARE_METATYPE(MyFileDescriptorStruct)
|
||||
Q_DECLARE_METATYPE(QList<MyFileDescriptorStruct>)
|
||||
|
||||
QDBusArgument &operator<<(QDBusArgument &arg, const MyFileDescriptorStruct &ms)
|
||||
{
|
||||
|
@ -83,9 +83,6 @@ Q_DECLARE_METATYPE(Struct1)
|
||||
Q_DECLARE_METATYPE(Struct4)
|
||||
Q_DECLARE_METATYPE(StringPair)
|
||||
|
||||
Q_DECLARE_METATYPE(QList<Struct1>)
|
||||
Q_DECLARE_METATYPE(QList<Struct4>)
|
||||
|
||||
Q_DECLARE_METATYPE(const QMetaObject*)
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
@ -93,11 +93,6 @@ Q_DECLARE_METATYPE(Struct3)
|
||||
Q_DECLARE_METATYPE(Struct4)
|
||||
Q_DECLARE_METATYPE(StringPair)
|
||||
|
||||
Q_DECLARE_METATYPE(QList<Struct1>)
|
||||
Q_DECLARE_METATYPE(QList<Struct2>)
|
||||
Q_DECLARE_METATYPE(QList<Struct3>)
|
||||
Q_DECLARE_METATYPE(QList<Struct4>)
|
||||
|
||||
Q_DECLARE_METATYPE(Invalid0)
|
||||
Q_DECLARE_METATYPE(Invalid1)
|
||||
Q_DECLARE_METATYPE(Invalid2)
|
||||
@ -107,14 +102,9 @@ Q_DECLARE_METATYPE(Invalid5)
|
||||
Q_DECLARE_METATYPE(Invalid6)
|
||||
Q_DECLARE_METATYPE(Invalid7)
|
||||
|
||||
Q_DECLARE_METATYPE(QList<Invalid0>)
|
||||
|
||||
typedef QMap<int, QString> IntStringMap;
|
||||
typedef QMap<QString, QString> StringStringMap;
|
||||
typedef QMap<QString, Struct1> StringStruct1Map;
|
||||
Q_DECLARE_METATYPE(IntStringMap)
|
||||
Q_DECLARE_METATYPE(StringStringMap)
|
||||
Q_DECLARE_METATYPE(StringStruct1Map)
|
||||
|
||||
Q_DECLARE_METATYPE(QVariant::Type)
|
||||
|
||||
|
@ -45,7 +45,6 @@
|
||||
#include <qicon.h>
|
||||
#include <qiconengine.h>
|
||||
|
||||
Q_DECLARE_METATYPE(QSize)
|
||||
|
||||
class tst_QIcon : public QObject
|
||||
{
|
||||
|
@ -57,13 +57,6 @@
|
||||
|
||||
typedef QMap<QString, QString> QStringMap;
|
||||
typedef QList<int> QIntList;
|
||||
Q_DECLARE_METATYPE(QImage)
|
||||
Q_DECLARE_METATYPE(QRect)
|
||||
Q_DECLARE_METATYPE(QSize)
|
||||
Q_DECLARE_METATYPE(QColor)
|
||||
Q_DECLARE_METATYPE(QStringMap)
|
||||
Q_DECLARE_METATYPE(QIntList)
|
||||
Q_DECLARE_METATYPE(QIODevice *)
|
||||
Q_DECLARE_METATYPE(QImage::Format)
|
||||
|
||||
class tst_QImageReader : public QObject
|
||||
|
@ -58,11 +58,7 @@
|
||||
|
||||
typedef QMap<QString, QString> QStringMap;
|
||||
typedef QList<int> QIntList;
|
||||
Q_DECLARE_METATYPE(QImage)
|
||||
Q_DECLARE_METATYPE(QStringMap)
|
||||
Q_DECLARE_METATYPE(QIntList)
|
||||
Q_DECLARE_METATYPE(QImageWriter::ImageWriterError)
|
||||
Q_DECLARE_METATYPE(QIODevice *)
|
||||
Q_DECLARE_METATYPE(QImage::Format)
|
||||
|
||||
class tst_QImageWriter : public QObject
|
||||
|
@ -200,10 +200,6 @@ static bool lenientCompare(const QPixmap &actual, const QPixmap &expected)
|
||||
return true;
|
||||
}
|
||||
|
||||
Q_DECLARE_METATYPE(QImage)
|
||||
Q_DECLARE_METATYPE(QPixmap)
|
||||
Q_DECLARE_METATYPE(QMatrix)
|
||||
Q_DECLARE_METATYPE(QBitmap)
|
||||
|
||||
tst_QPixmap::tst_QPixmap()
|
||||
{
|
||||
|
@ -153,10 +153,8 @@ private:
|
||||
|
||||
static const int defaultSize = 3;
|
||||
|
||||
Q_DECLARE_METATYPE(QModelIndex)
|
||||
Q_DECLARE_METATYPE(QStandardItem*)
|
||||
Q_DECLARE_METATYPE(Qt::Orientation)
|
||||
Q_DECLARE_METATYPE(QVariantList)
|
||||
|
||||
tst_QStandardItemModel::tst_QStandardItemModel() : m_model(0), rcParent(8), rcFirst(8,0), rcLast(8,0)
|
||||
{
|
||||
@ -178,7 +176,6 @@ tst_QStandardItemModel::~tst_QStandardItemModel()
|
||||
*/
|
||||
void tst_QStandardItemModel::init()
|
||||
{
|
||||
qRegisterMetaType<QModelIndex>("QModelIndex");
|
||||
qRegisterMetaType<QStandardItem*>("QStandardItem*");
|
||||
qRegisterMetaType<Qt::Orientation>("Qt::Orientation");
|
||||
|
||||
|
@ -79,7 +79,6 @@ private slots:
|
||||
void debug();
|
||||
};
|
||||
|
||||
Q_DECLARE_METATYPE(QBrush)
|
||||
|
||||
tst_QBrush::tst_QBrush()
|
||||
{
|
||||
|
@ -224,7 +224,6 @@ void tst_QColor::getSetCheck()
|
||||
QCOMPARE(obj1.rgb(), qRgb(0, 0, 0));
|
||||
}
|
||||
|
||||
Q_DECLARE_METATYPE(QColor)
|
||||
|
||||
|
||||
tst_QColor::tst_QColor()
|
||||
|
@ -81,10 +81,6 @@
|
||||
#include <qfontdatabase.h>
|
||||
|
||||
Q_DECLARE_METATYPE(QGradientStops)
|
||||
Q_DECLARE_METATYPE(QLine)
|
||||
Q_DECLARE_METATYPE(QRect)
|
||||
Q_DECLARE_METATYPE(QSize)
|
||||
Q_DECLARE_METATYPE(QPoint)
|
||||
Q_DECLARE_METATYPE(QPainterPath)
|
||||
|
||||
class tst_QPainter : public QObject
|
||||
@ -365,13 +361,6 @@ void tst_QPainter::getSetCheck()
|
||||
QCOMPARE(true, obj1.viewTransformEnabled());
|
||||
}
|
||||
|
||||
Q_DECLARE_METATYPE(QPixmap)
|
||||
Q_DECLARE_METATYPE(QPolygon)
|
||||
Q_DECLARE_METATYPE(QBrush)
|
||||
Q_DECLARE_METATYPE(QPen)
|
||||
Q_DECLARE_METATYPE(QFont)
|
||||
Q_DECLARE_METATYPE(QColor)
|
||||
Q_DECLARE_METATYPE(QRegion)
|
||||
|
||||
tst_QPainter::tst_QPainter()
|
||||
{
|
||||
|
@ -161,8 +161,6 @@ void tst_QPainterPath::swap()
|
||||
}
|
||||
|
||||
Q_DECLARE_METATYPE(QPainterPath)
|
||||
Q_DECLARE_METATYPE(QPointF)
|
||||
Q_DECLARE_METATYPE(QRectF)
|
||||
|
||||
void tst_QPainterPath::currentPosition()
|
||||
{
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user