on xenial help sign in
strftimeformatter -> gdatetimeformatter
commitd8f3dfe6088ddf44df36fc7f5657f8a962e3f1fe authorNick Dedekind <nicholas.dedekind@gmail.com> dateThu 24 Oct 2013, 11:49 (13 years ago) parentdd63556
4 files changed+18−14
plugins/Utils/plugin.cpp+1−1 plugins/Utils/timeformatter.cpp+14−10 plugins/Utils/timeformatter.h+2−2 tests/plugins/Utils/timeformattertest.cpp+1−1
plugins/Utils/plugin.cpp+1−1
@@ -48,7 +48,7 @@ void UtilsPlugin::registerTypes(const char *uri)
4848 qmlRegisterExtendedType<QQuickWindow, UbuntuWindow>(uri, 0, 1, "Window");
4949 qmlRegisterSingletonType<ApplicationPaths>(uri, 0, 1, "ApplicationPaths", applicationsPathsSingleton);
5050 qmlRegisterType<TimeFormatter>(uri, 0, 1, "TimeFormatter");
51− qmlRegisterType<StrFTimeFormatter>(uri, 0, 1, "StrFTimeFormatter");
51+ qmlRegisterType<GDateTimeFormatter>(uri, 0, 1, "GDateTimeFormatter");
5252}
5353
5454void UtilsPlugin::initializeEngine(QQmlEngine *engine, const char *uri)
plugins/Utils/timeformatter.cpp+14−10
@@ -176,22 +176,26 @@ QString TimeFormatter::formatTime() const
176176 return QDateTime::fromMSecsSinceEpoch(time() / 1000).toString(format());
177177}
178178
179−StrFTimeFormatter::StrFTimeFormatter(QObject* parent)
179+GDateTimeFormatter::GDateTimeFormatter(QObject* parent)
180180: TimeFormatter(parent)
181181{
182182}
183183
184−QString StrFTimeFormatter::formatTime() const
184+QString GDateTimeFormatter::formatTime() const
185185{
186− time_t rawtime;
187− struct tm * timeinfo;
188− char buffer [80];
186+ gchar* time_string;
187+ GDateTime* datetime;
188+ QByteArray formatBytes = format().toUtf8();
189189
190− rawtime = time();
191− timeinfo = localtime (&rawtime);
190+ datetime = g_date_time_new_from_unix_local(time());
191+ if (!datetime) {
192+ return "";
193+ }
192194
193− QByteArray formatBytes = format().toUtf8();
195+ time_string = g_date_time_format(datetime, formatBytes.constData());
196+ QString formattedTime(time_string);
194197
195− strftime (buffer, 80, formatBytes.constData(), timeinfo);
196− return QString(buffer);
198+ g_free(time_string);
199+ g_date_time_unref(datetime);
200+ return formattedTime;
197201}
plugins/Utils/timeformatter.h+2−2
@@ -53,10 +53,10 @@ private:
5353 struct TimeFormatterPrivate *priv;
5454};
5555
56−class StrFTimeFormatter : public TimeFormatter
56+class GDateTimeFormatter : public TimeFormatter
5757{
5858public:
59− StrFTimeFormatter(QObject *parent = 0);
59+ GDateTimeFormatter(QObject *parent = 0);
6060
6161protected:
6262 virtual QString formatTime() const;
tests/plugins/Utils/timeformattertest.cpp+1−1
@@ -55,7 +55,7 @@ private Q_SLOTS:
5555
5656 QDateTime time = QDateTime::currentDateTime();
5757
58− StrFTimeFormatter formatter;
58+ GDateTimeFormatter formatter;
5959 formatter.setTime(time.toMSecsSinceEpoch() / 1000); // strftime in seconds since epoc
6060 formatter.setFormat(format);
6161