summaryrefslogtreecommitdiffstats
path: root/src/corelib
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib')
-rw-r--r--src/corelib/io/qsettings.h9
-rw-r--r--src/corelib/io/qsettings_mac.cpp19
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();
}