Merge remote-tracking branch 'origin/release' into stable
Change-Id: I2e2bf789b0fe8442ed623bc0c8aef591235cdabe
This commit is contained in:
commit
8e04691543
144
dist/changes-5.2.0
vendored
144
dist/changes-5.2.0
vendored
@ -48,6 +48,10 @@ information about a particular change.
|
||||
* QUrl now normalizes the path given in setPath, removing ./ and ../ and
|
||||
duplicate slashes.
|
||||
|
||||
- QWheelEvent has gained a "phase" attribute and may now be sent with
|
||||
zero delta() in order to indicate beginning and end of transient
|
||||
scrolling.
|
||||
|
||||
****************************************************************************
|
||||
* Library *
|
||||
****************************************************************************
|
||||
@ -290,6 +294,9 @@ QtGui
|
||||
- [QTBUG-27349] Reintroduced command line argument for positioning
|
||||
windows (-geometry on X11, -qwindowgeometry on other platforms)
|
||||
|
||||
- [QTBUG-28832] Fixed regression from Qt 4 when using
|
||||
QTextOption::ShowLineAndParagraphSeparators.
|
||||
|
||||
QtNetwork
|
||||
---------
|
||||
|
||||
@ -353,12 +360,24 @@ Changes in Qt 5.2.0
|
||||
QtWidgets
|
||||
---------
|
||||
|
||||
- Added class QKeySequenceEdit.
|
||||
- Added QMaxCocoaViewContainer and QMacNativeWidget classes.
|
||||
- [QTBUG-1016] Added API to control tool tip timing via:
|
||||
* new QToolTip::showTip() overload
|
||||
* QWidget::toolTipDuration() property.
|
||||
* QStyle::SH_ToolTip_WakeUpDelay and SH_ToolTip_FallAsleepDelay
|
||||
style hints.
|
||||
- [QTBUG-30255] Fixed a bug where spans across empty cells in a grid
|
||||
layout got broken.
|
||||
- [QTBUG-31569] WA_QuitOnClose now works even if there are other
|
||||
windows that don't have it set.
|
||||
- [QTBUG-32788] Properly handles Qt::WidgetWithChildrenShortcut
|
||||
shortcuts in MDI subwindows now.
|
||||
- [QTBUG-33078] QWidget::setWindowOpacity() now works when called
|
||||
before QWidget::show().
|
||||
- [QTBUG-33104] Fixed a bug where layout items with a Preferred size
|
||||
policy would be treated as fixed size, if mixed with Expanding
|
||||
items having maximumSize set.
|
||||
- [QTBUG-33247] Changed accessible trees and tables to always expose
|
||||
hidden headers, instead of only exposing the visible headers.
|
||||
- [QTBUG-34007] Fixed a crash in tablet support.
|
||||
@ -384,18 +403,26 @@ QtWidgets
|
||||
overriding viewportSizeHint() needs to be recompiled against 5.2 for
|
||||
this feature to work correctly.
|
||||
|
||||
- QButtonGroup:
|
||||
* [QTBUG-14857] Added buttonToggled() signals.
|
||||
|
||||
- QColorDialog:
|
||||
* Added a web color QLineEdit.
|
||||
* [QTBUG-14332] Added a screen color picker button.
|
||||
* [QTBUG-31998] Does no longer create widgets when using the
|
||||
platform dialog.
|
||||
* [QTBUG-32054] Fixed a bug with keyboard navigation.
|
||||
|
||||
- QComboBox:
|
||||
* [QTBUG-31146] Fixed selection of items with identical text in
|
||||
popup completion.
|
||||
* Added currentData() convenience function which allows to retrieve
|
||||
the user data set for the current item.
|
||||
|
||||
- QCompleter:
|
||||
* [QTBUG-3414] Added filterMode property.
|
||||
* The activated() signal now passes invalid indexes instead of
|
||||
random bogus ones when falling back to the completion prefix.
|
||||
|
||||
- QDesktopWidget:
|
||||
* [QTBUG-32567] Fixed emission of workAreaResized() signal.
|
||||
@ -434,10 +461,16 @@ QtWidgets
|
||||
* [QTBUG-33039] Does no longer create widgets when using the
|
||||
platform dialog.
|
||||
|
||||
- QFontComboBox:
|
||||
* [QTBUG-1573] Made QFontComboBox locale-sensitive.
|
||||
|
||||
- QFontDialog:
|
||||
* Now has finer-grained control over the types of fonts listed,
|
||||
similar to what QFontComboBox already had.
|
||||
|
||||
- QGestureManager
|
||||
* Now supports Mac OS X native gestures.
|
||||
|
||||
- QGraphicsView etc
|
||||
* Fixed a crash in QGraphicsProxyWidget.
|
||||
* [QTBUG-8061] Allow handling of mouseDoubleClickEvent in
|
||||
@ -446,16 +479,30 @@ QtWidgets
|
||||
Qt::{Contains,Intersets}ItemBoundingRect with items that contain
|
||||
the point in the bounding rectangle, but not their (custom)
|
||||
shape.
|
||||
* [QTBUG-29945] Fixed drop-shadow and blur effects when using a
|
||||
QGLWidget viewport.
|
||||
|
||||
- QGroupBox:
|
||||
* [QTBUG-33610] The check indicator of a checkable group box is no
|
||||
longer clipped when using a small title font.
|
||||
|
||||
- QHeaderView:
|
||||
* Reduced memory usage by 33%.
|
||||
* [QTBUG-4346] A maximumSize for sections has been introduced. The
|
||||
maximum section size is by default the largest possible section
|
||||
size which in Qt 5.2 has been limited to 1048575 pixels.
|
||||
* [QTBUG-32203] Fixed a painting bug involving hidden and reordered
|
||||
sections.
|
||||
|
||||
- QInputDialog:
|
||||
* Added getMultiLineText static method.
|
||||
|
||||
- QLayout:
|
||||
* Added replaceWidget() function.
|
||||
|
||||
- QLineEdit:
|
||||
* [QTBUG-32061] The cursor is now positioned correctly in an empty
|
||||
line edit with placeholder text.
|
||||
* Keep placeholderText visible when focused, until text is added.
|
||||
* Context-menu actions now have icons.
|
||||
* Made it possible to add side widgets.
|
||||
@ -467,28 +514,59 @@ QtWidgets
|
||||
no longer loses the icon. Also fixed a bug where under certain
|
||||
conditions code overriding QAbstractItemView::viewOptions() would
|
||||
not be called.
|
||||
* [QTBUG-21433] Fixed content size calculation when either
|
||||
horizontal or vertical scroll bar policy is always off.
|
||||
|
||||
- QMacStyle:
|
||||
* [QTBUG-31668] Fixed a case where multiple auto-default button
|
||||
animations were running in parallel on OS X
|
||||
|
||||
- QMainWindow:
|
||||
* Added takeCentalWidget() function.
|
||||
|
||||
- QMenu:
|
||||
* Added QMenu::toNSMenu() conversion function (Mac only)
|
||||
* Added QMenu::setAsDockMenu() and qt_mac_set_doc_menu(QMenu *menu)
|
||||
functions (Mac only).
|
||||
* [QTBUG-31664] Moving the mouse over a menu separator now closes
|
||||
any open sub menus.
|
||||
|
||||
- QMenuBar:
|
||||
* [QTBUG-32807] Menus now close again on second click.
|
||||
* Added QMenuBar::toNSMenu() conversion function (Mac only)
|
||||
|
||||
- QMessageBox:
|
||||
* May use native message boxes on some platforms now.
|
||||
* setDetailedText() now works after show().
|
||||
* [QTBUG-2450] Added setCheckBox() function.
|
||||
* [QTBUG-6731] It is now possible to select some or all text from a
|
||||
QMessageBox and copy it to the clipboard.
|
||||
|
||||
- QScrollBar:
|
||||
* Transient scrollbars are now properly shown when starting
|
||||
two-finger scrolling on OS X.
|
||||
|
||||
- QSizePolicy:
|
||||
* Added a retainSizeWhenHidden attribute.
|
||||
|
||||
- QSpinBox:
|
||||
* Values can now be displayed in different bases
|
||||
(cf. displayIntegerBase property)
|
||||
* [QTBUG-31602] Size calculation will now be fixed when stylesheets
|
||||
are used.
|
||||
* [QTBUG-31602][QTBUG-34305] Fixed size calculation when
|
||||
stylesheets are used.
|
||||
|
||||
- QSplashScreen:
|
||||
* Added message(), a getter for the currently displayed message.
|
||||
|
||||
- QSplitter:
|
||||
* Now gets the default value of opaqueResize property from (new)
|
||||
QStyle::SH_Splitter_OpaqueResize styleHint.
|
||||
|
||||
- QStyle:
|
||||
* Added SH_ToolTip_WakeUpDelay and SH_ToolTip_FallAsleepDelay.
|
||||
* Fixed SH_ItemView_ActivateItemOnSingleClick not being retrieved
|
||||
correctly from the platform theme.
|
||||
|
||||
- QSystemTrayIcon:
|
||||
* [QTBUG-31762] Fixed position of system tray icon on Linux/X11
|
||||
(except Unity).
|
||||
@ -505,14 +583,26 @@ QtWidgets
|
||||
* Added placeholderText akin to QLineEdit.
|
||||
* Context-menu actions now have icons.
|
||||
|
||||
- QToolTip:
|
||||
* Added new showText() overload taking a duration.
|
||||
|
||||
- QTreeView:
|
||||
* QTreeView now has setTreePosition to allow the treestructure to
|
||||
show data from other columns than logicalindex zero.
|
||||
* Added setTreePosition() function.
|
||||
|
||||
- QWidget:
|
||||
* Added window{Title,Icon,IconText}Changed() signals.
|
||||
* Added toolTipDuration property.
|
||||
|
||||
- QWindowContainer:
|
||||
* [QTBUG-32177] Sets active window correctly now.
|
||||
* [QTBUG-34138] Will not create native child widgets any more.
|
||||
|
||||
- QWindowsVistaStyle:
|
||||
* [QTBUG-26503] Does no longer draw inapplicable scroll bar
|
||||
grippers on Windows 8.
|
||||
|
||||
- QWizard:
|
||||
* [QTBUG-26722] The default background pixmap works again on OS X.
|
||||
* [QTBUG-29924] Gave all buttons an objectName().
|
||||
|
||||
****************************************************************************
|
||||
@ -533,10 +623,45 @@ Android
|
||||
show the status bar (QWindow::showMaximized()). Use
|
||||
QWindow::showFullScreen() to hide it.
|
||||
- Implemented support for accessibility on Android.
|
||||
- Implemented support for native action bar backend for menu bars in
|
||||
Qt Quick Controls and Qt Widgets.
|
||||
- Implemented support for native popup menus and comboboxes in Qt Quick
|
||||
Controls.
|
||||
- Implemented support for native message boxes in Qt Widgets.
|
||||
- Several improvements to handling dialogs and multiple top-level
|
||||
windows in Qt Widgets.
|
||||
- Implemented automatic inclusion of necessary permissions in manifest
|
||||
when linking against Qt Multimedia.
|
||||
- Fixed crash on startup when running on Android 4.4.
|
||||
- Add requirement for Android SDK version 13 or higher for building
|
||||
Qt application. Note that this is for building only. The application
|
||||
can still be targeted for devices with SDK versions 9 and up.
|
||||
- Default to target SDK version 14 to disable overflow button in
|
||||
system navigation.
|
||||
- New module: Qt Android Extras. Contains convenience APIs for using
|
||||
JNI, and will in the future include support for Android-specific
|
||||
features which do not fit in a cross-platform API.
|
||||
- Implemented support for thread-affinity in qrand() functions.
|
||||
- Fixed several problems with predictive text in soft keyboard.
|
||||
- Made several improvements to stability.
|
||||
- Implemented support for camera and low-latency audio in Qt Multimedia.
|
||||
- Fixed driver-specific bugs in text rendering in Qt Quick 2.
|
||||
- Added preference in default manifest for installing applications to
|
||||
external storage if possible.
|
||||
- Fixed delivery of key press event for the Back key.
|
||||
- Fixed race condition when showing a window in full screen which would
|
||||
cause it to not be maximized.
|
||||
- Fixed input method hints.
|
||||
- Made font point sizes compatible with the interpretation of point
|
||||
sizes on iOS to ease sharing code between the two platforms.
|
||||
- Added support for QAmbientTemperatureSensor, QPressureSensor
|
||||
and QProximitySensor to Qt Sensors.
|
||||
- Removed dependency on Qt Widgets in default build of Qt Quick Controls.
|
||||
|
||||
OS X
|
||||
----
|
||||
|
||||
- Added QMaxCocoaViewContainer and QMacNativeWidget classes.
|
||||
- Qt for OS X is now identified by the macro Q_OS_OSX. This complements the
|
||||
existing Q_OS_DARWIN macro (which identifies the open source kernel and
|
||||
could identify non-Apple products) and Q_OS_MAC, which is defined for
|
||||
@ -547,6 +672,17 @@ OS X
|
||||
supported until official announcement by the Qt Project.
|
||||
- Added a number of functions to QtCore to convert to and from
|
||||
CFString/NSString and QString, CFURL/NSURL and QUrl.
|
||||
- QGestureManager now supports Mac OS X native gestures.
|
||||
- Added QMenu::setAsDockMenu(), QMenu(Bar)::toNSMenu(),
|
||||
qt_mac_set_doc_menu() functions.
|
||||
- [QTBUG-26722] The QWizard default background pixmap works again.
|
||||
|
||||
BlackBerry
|
||||
----------
|
||||
|
||||
- Cover windows (aka active frames) are now supported. Cover windows must
|
||||
have the Qt::CoverWindow flag set. They are shown when the application
|
||||
is minimized.
|
||||
|
||||
Windows
|
||||
-------
|
||||
|
BIN
mkspecs/macx-ios-clang/Default-568h@2x.png
Normal file
BIN
mkspecs/macx-ios-clang/Default-568h@2x.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 18 KiB |
@ -173,6 +173,16 @@ macx-xcode {
|
||||
ios_device_family.name = TARGETED_DEVICE_FAMILY
|
||||
ios_device_family.value = $$QMAKE_IOS_TARGETED_DEVICE_FAMILY
|
||||
QMAKE_MAC_XCODE_SETTINGS += ios_device_family
|
||||
|
||||
# Set up default 4-inch iPhone/iPod launch image so that our apps
|
||||
# support the full screen resolution of those devices.
|
||||
launch_image = Default-568h@2x.png
|
||||
copy_image.input = $$QMAKESPEC/$$launch_image
|
||||
copy_image.output = $$OUT_PWD/$${TARGET}.xcodeproj/$$launch_image
|
||||
copy_image.CONFIG = verbatim
|
||||
QMAKE_SUBSTITUTES += copy_image
|
||||
launch_images.files = $$copy_image.output
|
||||
QMAKE_BUNDLE_DATA += launch_images
|
||||
}
|
||||
|
||||
macx-xcode {
|
||||
|
@ -1876,7 +1876,7 @@ void QObjectPrivate::setParent_helper(QObject *o)
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!isDeletingChildren && declarativeData && QAbstractDeclarativeData::parentChanged)
|
||||
if (!wasDeleted && !isDeletingChildren && declarativeData && QAbstractDeclarativeData::parentChanged)
|
||||
QAbstractDeclarativeData::parentChanged(declarativeData, q, o);
|
||||
}
|
||||
|
||||
|
@ -49,9 +49,9 @@
|
||||
iterators they accept. For example, qFill() accepts two
|
||||
\l {forward iterators}. The iterator types required are specified
|
||||
for each algorithm. If an iterator of the wrong type is passed (for
|
||||
example, if QList::ConstIterator is passed as an \l {output
|
||||
iterator}), you will always get a compiler error, although not
|
||||
necessarily a very informative one.
|
||||
example, if QList::ConstIterator is passed as an
|
||||
\l {Output Iterators}{output iterator}), you will always get a
|
||||
compiler error, although not necessarily a very informative one.
|
||||
|
||||
Some algorithms have special requirements on the value type
|
||||
stored in the containers. For example,
|
||||
@ -99,7 +99,7 @@
|
||||
|
||||
\section2 Output Iterators
|
||||
|
||||
An \e{output iterator} is an iterator that can be used for
|
||||
An output iterator is an iterator that can be used for
|
||||
writing data sequentially to a container or to some output
|
||||
stream. It must provide the following operators: unary \c{*} for
|
||||
writing a value (i.e., \c{*it = val}) and prefix \c{++} for
|
||||
|
@ -709,6 +709,12 @@ QWheelEvent::QWheelEvent(const QPointF &pos, const QPointF& globalPos,
|
||||
Example:
|
||||
|
||||
\snippet code/src_gui_kernel_qevent.cpp 0
|
||||
|
||||
\note On platforms that support scrolling \l{phase()}{phases}, the delta may be null when:
|
||||
\list
|
||||
\li scrolling is about to begin, but the distance did not yet change (Qt::ScrollBegin),
|
||||
\li or scrolling has ended and the distance did not change anymore (Qt::ScrollEnd).
|
||||
\endlist
|
||||
*/
|
||||
|
||||
/*!
|
||||
@ -731,6 +737,12 @@ QWheelEvent::QWheelEvent(const QPointF &pos, const QPointF& globalPos,
|
||||
Example:
|
||||
|
||||
\snippet code/src_gui_kernel_qevent.cpp 0
|
||||
|
||||
\note On platforms that support scrolling \l{phase()}{phases}, the delta may be null when:
|
||||
\list
|
||||
\li scrolling is about to begin, but the distance did not yet change (Qt::ScrollBegin),
|
||||
\li or scrolling has ended and the distance did not change anymore (Qt::ScrollEnd).
|
||||
\endlist
|
||||
*/
|
||||
|
||||
/*!
|
||||
@ -830,6 +842,9 @@ QWheelEvent::QWheelEvent(const QPointF &pos, const QPointF& globalPos,
|
||||
\since 5.2
|
||||
|
||||
Returns the scrolling phase of this wheel event.
|
||||
|
||||
\note The Qt::ScrollBegin and Qt::ScrollEnd phases are currently
|
||||
supported only on Mac OS X.
|
||||
*/
|
||||
|
||||
|
||||
|
@ -41,9 +41,14 @@
|
||||
|
||||
#include "qiosapplicationdelegate.h"
|
||||
|
||||
#include "qiosintegration.h"
|
||||
#include "qiosservices.h"
|
||||
#include "qiosviewcontroller.h"
|
||||
#include "qioswindow.h"
|
||||
|
||||
#include <QtGui/private/qguiapplication_p.h>
|
||||
#include <qpa/qplatformintegration.h>
|
||||
|
||||
#include <QtCore/QtCore>
|
||||
|
||||
@implementation QIOSApplicationDelegate
|
||||
@ -82,6 +87,21 @@
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
|
||||
{
|
||||
Q_UNUSED(application);
|
||||
Q_UNUSED(sourceApplication);
|
||||
Q_UNUSED(annotation);
|
||||
|
||||
if (!QGuiApplication::instance())
|
||||
return NO;
|
||||
|
||||
QIOSIntegration *iosIntegration = static_cast<QIOSIntegration *>(QGuiApplicationPrivate::platformIntegration());
|
||||
QIOSServices *iosServices = static_cast<QIOSServices *>(iosIntegration->services());
|
||||
|
||||
return iosServices->handleUrl(QUrl::fromNSURL(url));
|
||||
}
|
||||
|
||||
- (void)dealloc
|
||||
{
|
||||
[window release];
|
||||
|
@ -189,6 +189,9 @@ void QIOSScreen::updateProperties()
|
||||
|
||||
void QIOSScreen::updateStatusBarVisibility()
|
||||
{
|
||||
if (!isQtApplication())
|
||||
return;
|
||||
|
||||
QWindow *focusWindow = QGuiApplication::focusWindow();
|
||||
|
||||
// If we don't have a focus window we leave the status
|
||||
@ -199,20 +202,26 @@ void QIOSScreen::updateStatusBarVisibility()
|
||||
return;
|
||||
|
||||
UIView *view = reinterpret_cast<UIView *>(focusWindow->handle()->winId());
|
||||
QIOSViewController *viewController = static_cast<QIOSViewController *>(view.viewController);
|
||||
|
||||
bool currentStatusBarVisibility = [UIApplication sharedApplication].statusBarHidden;
|
||||
if (viewController.prefersStatusBarHidden == currentStatusBarVisibility)
|
||||
return;
|
||||
|
||||
#if QT_IOS_PLATFORM_SDK_EQUAL_OR_ABOVE(__IPHONE_7_0)
|
||||
if (QSysInfo::MacintoshVersion >= QSysInfo::MV_IOS_7_0) {
|
||||
[view.viewController setNeedsStatusBarAppearanceUpdate];
|
||||
[viewController setNeedsStatusBarAppearanceUpdate];
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
updateProperties();
|
||||
});
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
bool wasHidden = [UIApplication sharedApplication].statusBarHidden;
|
||||
QIOSViewController *viewController = static_cast<QIOSViewController *>(view.viewController);
|
||||
[[UIApplication sharedApplication]
|
||||
setStatusBarHidden:[viewController prefersStatusBarHidden]
|
||||
withAnimation:UIStatusBarAnimationNone];
|
||||
|
||||
if ([UIApplication sharedApplication].statusBarHidden != wasHidden)
|
||||
updateProperties();
|
||||
updateProperties();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -41,6 +41,8 @@
|
||||
|
||||
#ifndef QIOSSERVICES_H
|
||||
#define QIOSSERVICES_H
|
||||
|
||||
#include <qurl.h>
|
||||
#include <qpa/qplatformservices.h>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
@ -50,6 +52,11 @@ class QIOSServices : public QPlatformServices
|
||||
public:
|
||||
bool openUrl(const QUrl &url);
|
||||
bool openDocument(const QUrl &url);
|
||||
|
||||
bool handleUrl(const QUrl &url);
|
||||
|
||||
private:
|
||||
QUrl m_handlingUrl;
|
||||
};
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
@ -42,6 +42,7 @@
|
||||
#include "qiosservices.h"
|
||||
|
||||
#include <QtCore/qurl.h>
|
||||
#include <QtGui/qdesktopservices.h>
|
||||
|
||||
#import <UIKit/UIApplication.h>
|
||||
|
||||
@ -49,6 +50,9 @@ QT_BEGIN_NAMESPACE
|
||||
|
||||
bool QIOSServices::openUrl(const QUrl &url)
|
||||
{
|
||||
if (url == m_handlingUrl)
|
||||
return false;
|
||||
|
||||
if (url.scheme().isEmpty())
|
||||
return openDocument(url);
|
||||
|
||||
@ -66,4 +70,19 @@ bool QIOSServices::openDocument(const QUrl &url)
|
||||
return QPlatformServices::openDocument(url);
|
||||
}
|
||||
|
||||
/* Callback from iOS that the application should handle a URL */
|
||||
bool QIOSServices::handleUrl(const QUrl &url)
|
||||
{
|
||||
QUrl previouslyHandling = m_handlingUrl;
|
||||
m_handlingUrl = url;
|
||||
|
||||
// FIXME: Add platform services callback from QDesktopServices::setUrlHandler
|
||||
// so that we can warn the user if calling setUrlHandler without also setting
|
||||
// up the matching keys in the Info.plist file (CFBundleURLTypes and friends).
|
||||
bool couldHandle = QDesktopServices::openUrl(url);
|
||||
|
||||
m_handlingUrl = previouslyHandling;
|
||||
return couldHandle;
|
||||
}
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
@ -152,6 +152,7 @@ private slots:
|
||||
void connectBase();
|
||||
void qmlConnect();
|
||||
void exceptions();
|
||||
void noDeclarativeParentChangedOnDestruction();
|
||||
};
|
||||
|
||||
struct QObjectCreatedOnShutdown
|
||||
@ -6233,6 +6234,43 @@ void tst_QObject::exceptions()
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef QT_BUILD_INTERNAL
|
||||
static bool parentChangeCalled = false;
|
||||
|
||||
static void testParentChanged(QAbstractDeclarativeData *, QObject *, QObject *)
|
||||
{
|
||||
parentChangeCalled = true;
|
||||
}
|
||||
#endif
|
||||
|
||||
void tst_QObject::noDeclarativeParentChangedOnDestruction()
|
||||
{
|
||||
#ifdef QT_BUILD_INTERNAL
|
||||
typedef void (*ParentChangedCallback)(QAbstractDeclarativeData *, QObject *, QObject *);
|
||||
QScopedValueRollback<ParentChangedCallback> rollback(QAbstractDeclarativeData::parentChanged);
|
||||
QAbstractDeclarativeData::parentChanged = testParentChanged;
|
||||
|
||||
QObject *parent = new QObject;
|
||||
QObject *child = new QObject;
|
||||
|
||||
QAbstractDeclarativeData dummy;
|
||||
QObjectPrivate::get(child)->declarativeData = &dummy;
|
||||
|
||||
parentChangeCalled = false;
|
||||
child->setParent(parent);
|
||||
|
||||
QVERIFY(parentChangeCalled);
|
||||
parentChangeCalled = false;
|
||||
|
||||
delete child;
|
||||
QVERIFY(!parentChangeCalled);
|
||||
|
||||
delete parent;
|
||||
#else
|
||||
QSKIP("Needs QT_BUILD_INTERNAL");
|
||||
#endif
|
||||
}
|
||||
|
||||
// Test for QtPrivate::HasQ_OBJECT_Macro
|
||||
Q_STATIC_ASSERT(QtPrivate::HasQ_OBJECT_Macro<tst_QObject>::Value);
|
||||
Q_STATIC_ASSERT(!QtPrivate::HasQ_OBJECT_Macro<SiblingDeleter>::Value);
|
||||
|
Loading…
Reference in New Issue
Block a user