summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/kernel')
-rw-r--r--src/corelib/kernel/qeventdispatcher_blackberry.cpp2
-rw-r--r--src/corelib/kernel/qmetatype.h17
-rw-r--r--src/corelib/kernel/qobject.cpp16
-rw-r--r--src/corelib/kernel/qtimer.cpp6
-rw-r--r--src/corelib/kernel/qtranslator.cpp6
-rw-r--r--src/corelib/kernel/qvariant.cpp4
-rw-r--r--src/corelib/kernel/qwineventnotifier.h9
7 files changed, 39 insertions, 21 deletions
diff --git a/src/corelib/kernel/qeventdispatcher_blackberry.cpp b/src/corelib/kernel/qeventdispatcher_blackberry.cpp
index 2252b73ad4..69b4a8b172 100644
--- a/src/corelib/kernel/qeventdispatcher_blackberry.cpp
+++ b/src/corelib/kernel/qeventdispatcher_blackberry.cpp
@@ -132,7 +132,7 @@ static int bpsIOHandler(int fd, int io_events, void *data)
}
// post unblock event to our thread; in this callback the bps channel is
- // guarenteed to be the same that was active when bps_add_fd was called
+ // guaranteed to be the same that was active when bps_add_fd was called
result = bps_push_event(event);
if (result != BPS_SUCCESS) {
qWarning("QEventDispatcherBlackberryPrivate::QEventDispatcherBlackberry: bps_push_event() failed");
diff --git a/src/corelib/kernel/qmetatype.h b/src/corelib/kernel/qmetatype.h
index 06d325f383..09c641e4a3 100644
--- a/src/corelib/kernel/qmetatype.h
+++ b/src/corelib/kernel/qmetatype.h
@@ -252,7 +252,8 @@ public:
IsEnumeration = 0x10,
SharedPointerToQObject = 0x20,
WeakPointerToQObject = 0x40,
- TrackingPointerToQObject = 0x80
+ TrackingPointerToQObject = 0x80,
+ WasDeclaredAsMetaType = 0x100
};
Q_DECLARE_FLAGS(TypeFlags, TypeFlag)
@@ -563,12 +564,19 @@ namespace QtPrivate {
| (Q_IS_ENUM(T) ? QMetaType::IsEnumeration : 0)
};
};
+
+ template<typename T, bool defined>
+ struct MetaTypeDefinedHelper
+ {
+ enum DefinedType { Defined = defined };
+ };
}
template <typename T>
int qRegisterNormalizedMetaType(const QT_PREPEND_NAMESPACE(QByteArray) &normalizedTypeName
#ifndef qdoc
, T * dummy = 0
+ , typename QtPrivate::MetaTypeDefinedHelper<T, QMetaTypeId2<T>::Defined && !QMetaTypeId2<T>::IsBuiltIn>::DefinedType defined = QtPrivate::MetaTypeDefinedHelper<T, QMetaTypeId2<T>::Defined && !QMetaTypeId2<T>::IsBuiltIn>::Defined
#endif
)
{
@@ -580,6 +588,10 @@ int qRegisterNormalizedMetaType(const QT_PREPEND_NAMESPACE(QByteArray) &normaliz
return QMetaType::registerNormalizedTypedef(normalizedTypeName, typedefOf);
QMetaType::TypeFlags flags(QtPrivate::QMetaTypeTypeFlags<T>::Flags);
+
+ if (defined)
+ flags |= QMetaType::WasDeclaredAsMetaType;
+
return QMetaType::registerNormalizedType(normalizedTypeName,
QtMetaTypePrivate::QMetaTypeFunctionHelper<T>::Delete,
QtMetaTypePrivate::QMetaTypeFunctionHelper<T>::Create,
@@ -594,6 +606,7 @@ template <typename T>
int qRegisterMetaType(const char *typeName
#ifndef qdoc
, T * dummy = 0
+ , typename QtPrivate::MetaTypeDefinedHelper<T, QMetaTypeId2<T>::Defined && !QMetaTypeId2<T>::IsBuiltIn>::DefinedType defined = QtPrivate::MetaTypeDefinedHelper<T, QMetaTypeId2<T>::Defined && !QMetaTypeId2<T>::IsBuiltIn>::Defined
#endif
)
{
@@ -602,7 +615,7 @@ int qRegisterMetaType(const char *typeName
#else
QT_PREPEND_NAMESPACE(QByteArray) normalizedTypeName = QMetaObject::normalizedType(typeName);
#endif
- return qRegisterNormalizedMetaType<T>(normalizedTypeName, dummy);
+ return qRegisterNormalizedMetaType<T>(normalizedTypeName, dummy, defined);
}
#ifndef QT_NO_DATASTREAM
diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp
index 9d0854f3a9..9091b5579e 100644
--- a/src/corelib/kernel/qobject.cpp
+++ b/src/corelib/kernel/qobject.cpp
@@ -1945,7 +1945,7 @@ void QObject::deleteLater()
is available.
Example:
- \snippet mainwindows/sdi/mainwindow.cpp implicit tr context
+ \snippet ../widgets/mainwindows/sdi/mainwindow.cpp implicit tr context
\dots
If the same \a sourceText is used in different roles within the
@@ -3864,9 +3864,9 @@ QDebug operator<<(QDebug dbg, const QObject *o) {
Example:
- \snippet tools/plugandpaintplugins/basictools/basictoolsplugin.h 1
+ \snippet ../widgets/tools/plugandpaintplugins/basictools/basictoolsplugin.h 1
\dots
- \snippet tools/plugandpaintplugins/basictools/basictoolsplugin.h 3
+ \snippet ../widgets/tools/plugandpaintplugins/basictools/basictoolsplugin.h 3
See the \l{tools/plugandpaintplugins/basictools}{Plug & Paint
Basic Tools} example for details.
@@ -4293,6 +4293,16 @@ bool QObject::disconnect(const QMetaObject::Connection &connection)
if (c->next)
c->next->prev = c->prev;
c->receiver = 0;
+
+ // destroy the QSlotObject, if possible
+ if (c->isSlotObject) {
+ c->slotObj->destroyIfLastRef();
+ c->isSlotObject = false;
+ }
+
+ const_cast<QMetaObject::Connection &>(connection).d_ptr = 0;
+ c->deref(); // has been removed from the QMetaObject::Connection object
+
// disconnectNotify() not called (the signal index is unknown).
return true;
diff --git a/src/corelib/kernel/qtimer.cpp b/src/corelib/kernel/qtimer.cpp
index 9dea666363..9126d7ea17 100644
--- a/src/corelib/kernel/qtimer.cpp
+++ b/src/corelib/kernel/qtimer.cpp
@@ -62,9 +62,9 @@ QT_BEGIN_NAMESPACE
Example for a one second (1000 millisecond) timer (from the
\l{widgets/analogclock}{Analog Clock} example):
- \snippet widgets/analogclock/analogclock.cpp 4
- \snippet widgets/analogclock/analogclock.cpp 5
- \snippet widgets/analogclock/analogclock.cpp 6
+ \snippet ../widgets/widgets/analogclock/analogclock.cpp 4
+ \snippet ../widgets/widgets/analogclock/analogclock.cpp 5
+ \snippet ../widgets/widgets/analogclock/analogclock.cpp 6
From then on, the \c update() slot is called every second.
diff --git a/src/corelib/kernel/qtranslator.cpp b/src/corelib/kernel/qtranslator.cpp
index f934202cf6..58e4f202d5 100644
--- a/src/corelib/kernel/qtranslator.cpp
+++ b/src/corelib/kernel/qtranslator.cpp
@@ -343,10 +343,10 @@ public:
The most common use of QTranslator is to: load a translation
file, install it using QCoreApplication::installTranslator(), and use
- it via QObject::tr(). Here's the \c main() function from the
- \l{linguist/hellotr}{Hello tr()} example:
+ it via QObject::tr(). Here's an example \c main() function using the
+ QTranslator:
- \snippet linguist/hellotr/main.cpp 2
+ \snippet hellotrmain.cpp 0
Note that the translator must be created \e before the
application's widgets.
diff --git a/src/corelib/kernel/qvariant.cpp b/src/corelib/kernel/qvariant.cpp
index 9ff9d10bf0..26deeba6a2 100644
--- a/src/corelib/kernel/qvariant.cpp
+++ b/src/corelib/kernel/qvariant.cpp
@@ -341,11 +341,9 @@ static bool convert(const QVariant::Private *d, int t, void *result, bool *ok)
*str = v_cast<QUrl>(d)->toString();
break;
#endif
-#ifndef QT_NO_QUUID_STRING
case QVariant::Uuid:
*str = v_cast<QUuid>(d)->toString();
break;
-#endif
default:
return false;
}
@@ -722,11 +720,9 @@ static bool convert(const QVariant::Private *d, int t, void *result, bool *ok)
#endif
case QVariant::Uuid:
switch (d->type) {
-#ifndef QT_NO_QUUID_STRING
case QVariant::String:
*static_cast<QUuid *>(result) = QUuid(*v_cast<QString>(d));
break;
-#endif
default:
return false;
}
diff --git a/src/corelib/kernel/qwineventnotifier.h b/src/corelib/kernel/qwineventnotifier.h
index d5e4d0f7e3..291d953e58 100644
--- a/src/corelib/kernel/qwineventnotifier.h
+++ b/src/corelib/kernel/qwineventnotifier.h
@@ -42,12 +42,9 @@
#ifndef QWINEVENTNOTIFIER_H
#define QWINEVENTNOTIFIER_H
-#if 0
-// inform syncqt
-#pragma qt_no_master_include
-#endif
-
#include "QtCore/qobject.h"
+
+#ifdef Q_OS_WIN
#include "QtCore/qt_windows.h"
QT_BEGIN_HEADER
@@ -88,4 +85,6 @@ QT_END_NAMESPACE
QT_END_HEADER
+#endif // Q_OS_WIN
+
#endif // QWINEVENTNOTIFIER_H