on xenial help sign in
strftimeformatter -> gdatetimeformatter
d8f3dfeNick Dedekind
plugins/Utils/plugin.cpp+1−1
@@ -48,7 +48,7 @@ void UtilsPlugin::registerTypes(const char *uri)
48 qmlRegisterExtendedType<QQuickWindow, UbuntuWindow>(uri, 0, 1, "Window");
48 qmlRegisterExtendedType<QQuickWindow, UbuntuWindow>(uri, 0, 1, "Window");
49 qmlRegisterSingletonType<ApplicationPaths>(uri, 0, 1, "ApplicationPaths", applicationsPathsSingleton);
49 qmlRegisterSingletonType<ApplicationPaths>(uri, 0, 1, "ApplicationPaths", applicationsPathsSingleton);
50 qmlRegisterType<TimeFormatter>(uri, 0, 1, "TimeFormatter");
50 qmlRegisterType<TimeFormatter>(uri, 0, 1, "TimeFormatter");
51− qmlRegisterType<StrFTimeFormatter>(uri, 0, 1, "StrFTimeFormatter");
51+ qmlRegisterType<GDateTimeFormatter>(uri, 0, 1, "GDateTimeFormatter");
52}
52}
53
53
54void UtilsPlugin::initializeEngine(QQmlEngine *engine, const char *uri)
54void UtilsPlugin::initializeEngine(QQmlEngine *engine, const char *uri)
plugins/Utils/timeformatter.cpp+14−10
@@ -176,22 +176,26 @@ QString TimeFormatter::formatTime() const
176 return QDateTime::fromMSecsSinceEpoch(time() / 1000).toString(format());
176 return QDateTime::fromMSecsSinceEpoch(time() / 1000).toString(format());
177}
177}
178
178
179−StrFTimeFormatter::StrFTimeFormatter(QObject* parent)
179+GDateTimeFormatter::GDateTimeFormatter(QObject* parent)
180: TimeFormatter(parent)
180: TimeFormatter(parent)
181{
181{
182}
182}
183
183
184−QString StrFTimeFormatter::formatTime() const
184+QString GDateTimeFormatter::formatTime() const
185{
185{
186− time_t rawtime;
186+ gchar* time_string;
187− struct tm * timeinfo;
187+ GDateTime* datetime;
188− char buffer [80];
188+ QByteArray formatBytes = format().toUtf8();
189
189
190− rawtime = time();
190+ datetime = g_date_time_new_from_unix_local(time());
191− timeinfo = localtime (&rawtime);
191+ if (!datetime) {
192+ return "";
193+ }
192
194
193− QByteArray formatBytes = format().toUtf8();
195+ time_string = g_date_time_format(datetime, formatBytes.constData());
196+ QString formattedTime(time_string);
194
197
195− strftime (buffer, 80, formatBytes.constData(), timeinfo);
198+ g_free(time_string);
196− return QString(buffer);
199+ g_date_time_unref(datetime);
200+ return formattedTime;
197}
201}
plugins/Utils/timeformatter.h+2−2
@@ -53,10 +53,10 @@ private:
53 struct TimeFormatterPrivate *priv;
53 struct TimeFormatterPrivate *priv;
54};
54};
55
55
56−class StrFTimeFormatter : public TimeFormatter
56+class GDateTimeFormatter : public TimeFormatter
57{
57{
58public:
58public:
59− StrFTimeFormatter(QObject *parent = 0);
59+ GDateTimeFormatter(QObject *parent = 0);
60
60
61protected:
61protected:
62 virtual QString formatTime() const;
62 virtual QString formatTime() const;
tests/plugins/Utils/timeformattertest.cpp+1−1
@@ -55,7 +55,7 @@ private Q_SLOTS:
55
55
56 QDateTime time = QDateTime::currentDateTime();
56 QDateTime time = QDateTime::currentDateTime();
57
57
58− StrFTimeFormatter formatter;
58+ GDateTimeFormatter formatter;
59 formatter.setTime(time.toMSecsSinceEpoch() / 1000); // strftime in seconds since epoc
59 formatter.setTime(time.toMSecsSinceEpoch() / 1000); // strftime in seconds since epoc
60 formatter.setFormat(format);
60 formatter.setFormat(format);
61
61