diff options
Diffstat (limited to 'src/corelib')
-rw-r--r-- | src/corelib/io/qsettings.h | 9 | ||||
-rw-r--r-- | src/corelib/io/qsettings_mac.cpp | 19 |
2 files changed, 15 insertions, 13 deletions
diff --git a/src/corelib/io/qsettings.h b/src/corelib/io/qsettings.h index 21fb9519de..edd59026ed 100644 --- a/src/corelib/io/qsettings.h +++ b/src/corelib/io/qsettings.h @@ -80,6 +80,9 @@ public: AccessError, FormatError }; +#ifndef QT_NO_QOBJECT + Q_ENUM(Status) +#endif enum Format { NativeFormat, @@ -108,11 +111,17 @@ public: CustomFormat15, CustomFormat16 }; +#ifndef QT_NO_QOBJECT + Q_ENUM(Format) +#endif enum Scope { UserScope, SystemScope }; +#ifndef QT_NO_QOBJECT + Q_ENUM(Scope) +#endif #ifndef QT_NO_QOBJECT explicit QSettings(const QString &organization, diff --git a/src/corelib/io/qsettings_mac.cpp b/src/corelib/io/qsettings_mac.cpp index 77f185d735..7d4f527ac5 100644 --- a/src/corelib/io/qsettings_mac.cpp +++ b/src/corelib/io/qsettings_mac.cpp @@ -175,17 +175,12 @@ static QCFType<CFPropertyListRef> macValue(const QVariant &value) break; case QVariant::DateTime: { - /* - CFDate, unlike QDateTime, doesn't store timezone information. - */ - QDateTime dt = value.toDateTime(); - if (dt.timeSpec() == Qt::LocalTime) { - QDateTime reference; - reference.setSecsSinceEpoch(qint64(kCFAbsoluteTimeIntervalSince1970)); - result = CFDateCreate(kCFAllocatorDefault, CFAbsoluteTime(reference.secsTo(dt))); - } else { + QDateTime dateTime = value.toDateTime(); + // CFDate, unlike QDateTime, doesn't store timezone information + if (dateTime.timeSpec() == Qt::LocalTime) + result = dateTime.toCFDate(); + else goto string_case; - } } break; case QVariant::Bool: @@ -303,9 +298,7 @@ static QVariant qtValue(CFPropertyListRef cfvalue) } return map; } else if (typeId == CFDateGetTypeID()) { - QDateTime dt; - dt.setSecsSinceEpoch(qint64(kCFAbsoluteTimeIntervalSince1970)); - return dt.addSecs((int)CFDateGetAbsoluteTime(static_cast<CFDateRef>(cfvalue))); + return QDateTime::fromCFDate(static_cast<CFDateRef>(cfvalue)); } return QVariant(); } |