summaryrefslogtreecommitdiffstats
path: root/src/corelib
diff options
context:
space:
mode:
authorMarius Bugge Monsen <mmonsen@trolltech.com>2009-10-08 10:38:45 (GMT)
committerMarius Bugge Monsen <mmonsen@trolltech.com>2009-10-08 10:38:45 (GMT)
commit922cf20905d829d1a4ec9205beacbee27efe35f8 (patch)
tree7a6cb45c5cf99079de6a755b993a6157820ec76a /src/corelib
parentdf886d78631a8a7ea3aa8fdbb9da18d5a3387ed1 (diff)
parent6744bb7292c1a506e226d7ea214b7d86f6047e9d (diff)
downloadQt-922cf20905d829d1a4ec9205beacbee27efe35f8.zip
Qt-922cf20905d829d1a4ec9205beacbee27efe35f8.tar.gz
Qt-922cf20905d829d1a4ec9205beacbee27efe35f8.tar.bz2
Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/qt into 4.6
Diffstat (limited to 'src/corelib')
-rw-r--r--src/corelib/global/qnamespace.h4
-rw-r--r--src/corelib/global/qnamespace.qdoc8
-rw-r--r--src/corelib/tools/qdatetime.cpp32
3 files changed, 39 insertions, 5 deletions
diff --git a/src/corelib/global/qnamespace.h b/src/corelib/global/qnamespace.h
index 9d76dcc..4234a7e 100644
--- a/src/corelib/global/qnamespace.h
+++ b/src/corelib/global/qnamespace.h
@@ -71,8 +71,8 @@ Qt {
Q_ENUMS(ArrowType ToolButtonStyle PenStyle PenCapStyle PenJoinStyle BrushStyle)
Q_ENUMS(FillRule MaskMode BGMode ClipOperation SizeMode)
Q_ENUMS(BackgroundMode) // Qt3
- Q_ENUMS(Axis Corner LayoutDirection SizeHint Orientation)
- Q_FLAGS(Alignment Orientations)
+ Q_ENUMS(Axis Corner LayoutDirection SizeHint Orientation DropAction)
+ Q_FLAGS(Alignment Orientations DropActions)
Q_FLAGS(DockWidgetAreas ToolBarAreas)
Q_ENUMS(DockWidgetArea ToolBarArea)
Q_ENUMS(TextFormat)
diff --git a/src/corelib/global/qnamespace.qdoc b/src/corelib/global/qnamespace.qdoc
index b7775bd..ab232bf 100644
--- a/src/corelib/global/qnamespace.qdoc
+++ b/src/corelib/global/qnamespace.qdoc
@@ -713,7 +713,13 @@
\omitvalue Dither_Mask
\omitvalue AlphaDither_Mask
\omitvalue DitherMode_Mask
- \omitvalue NoOpaqueDetection
+
+ \value NoOpaqueDetection Do not check whether the image contains non-opaque
+ pixels. Use this if you know that the image is semi-transparent and
+ you want to avoid the overhead of checking the pixels in the image
+ until a non-opaque pixel is found, or if you want the pixmap to
+ retain an alpha channel for some other reason. If the image has no
+ alpha channel this flag has no effect.
*/
/*! \enum Qt::GUIStyle
diff --git a/src/corelib/tools/qdatetime.cpp b/src/corelib/tools/qdatetime.cpp
index 1b559cf..1277623 100644
--- a/src/corelib/tools/qdatetime.cpp
+++ b/src/corelib/tools/qdatetime.cpp
@@ -54,7 +54,6 @@
#ifndef Q_WS_WIN
#include <locale.h>
#endif
-
#include <time.h>
#if defined(Q_OS_WINCE)
#include "qfunctions_wince.h"
@@ -69,6 +68,31 @@
# define QDTPDEBUGN if (false) qDebug
#endif
+#if defined(Q_OS_SYMBIAN)
+ // Workaround for OpenC bug.
+
+ // OpenC incorrectly caches DST information between localtime_r
+ // calls, i.e. if previous call to localtime_r has been called for DST
+ // affected date, also the second call will be affected by DST even
+ // the date is such that DST should not be applied.
+
+ // The workaround is to call mktime with non-DST affected date before
+ // calling localtime_r. mktime call resets the OpenC internal DST cache
+ // to right value and localtime_r will return correct values.
+#define FIX_OPENC_DSTCACHE \
+ tm localTM; \
+ localTM.tm_sec = 0; \
+ localTM.tm_min = 0; \
+ localTM.tm_hour = 12; \
+ localTM.tm_mday = 1; \
+ localTM.tm_mon = 1; \
+ localTM.tm_year = 2002 - 1900; \
+ localTM.tm_isdst = -1; \
+ time_t temp = mktime(&localTM);
+#else
+#define FIX_OPENC_DSTCACHE
+#endif
+
#if defined(Q_WS_MAC)
#include <private/qcore_mac_p.h>
#endif
@@ -1138,6 +1162,7 @@ QDate QDate::currentDate()
// use the reentrant version of localtime() where available
tzset();
tm res;
+ FIX_OPENC_DSTCACHE
t = localtime_r(&ltime, &res);
#else
t = localtime(&ltime);
@@ -1834,12 +1859,13 @@ QTime QTime::currentTime()
// use the reentrant version of localtime() where available
tzset();
tm res;
+ FIX_OPENC_DSTCACHE
t = localtime_r(&ltime, &res);
#else
t = localtime(&ltime);
#endif
Q_CHECK_PTR(t);
-
+
ct.mds = MSECS_PER_HOUR * t->tm_hour + MSECS_PER_MIN * t->tm_min + 1000 * t->tm_sec
+ tv.tv_usec / 1000;
#else
@@ -2887,6 +2913,7 @@ QDateTime QDateTime::currentDateTime()
// use the reentrant version of localtime() where available
tzset();
tm res;
+ FIX_OPENC_DSTCACHE
t = localtime_r(&ltime, &res);
#else
t = localtime(&ltime);
@@ -3704,6 +3731,7 @@ static QDateTimePrivate::Spec utcToLocal(QDate &date, QTime &time)
// use the reentrant version of localtime() where available
tzset();
tm res;
+ FIX_OPENC_DSTCACHE
brokenDown = localtime_r(&secsSince1Jan1970UTC, &res);
#elif defined(_MSC_VER) && _MSC_VER >= 1400
tm res;