On Wed, Oct 16, 2013 at 2:19 PM, Bogdan Marinov <daggers...@gmail.com>wrote:

> Just a FYI:
>
> John Layt's work on a time zone engine for Qt has been merged in its
> codebase and it will be available in Qt 5.2.
>
>
> https://bugreports.qt-project.org/browse/QTBUG-71?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
>
> https://bugreports.qt-project.org/browse/QTBUG-23509?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
>
> I'll have a look at it and find out to what degree it will be suitable for
> use in Stellarium. Of course, to actually work on time zones in Stellarium
> I'll need a computer that supports OpenGL 2.0. Which is somewhat possible
> in November.
>

A small update on this: I've been trying to build Qt with MinGW and ANGLE
support, so that I can run it on Windows with DirectX.

I took the chance to look at the source code of the Time Zone class. An
unpleasant surprise: while the code itself uses the Olson database clock
names (the familiar Linux tz database), it uses different implementations
on different platforms. The proper Olson/IANA database is used only on
Linux, everything else uses whatever timezones are used on that OS, with
their identifiers mapped to Olson's.

http://doc-snapshot.qt-project.org/qt5-stable/qtimezone.html

This means I'll probably have to write my own time zone classes after all.
Fortunately, the existing implementation means that I can "borrow" the code
of Qt-based tz database reader (with the appropriate attribution, of course
:)).

A possible solution is to roll it out in two step: the first step is to use
Qt time zones, introducing the new GUI to the users; the second step just
will be to re-factor the necessary parts of the back-end (all the boring
data entry would be already done for the first step). This will have the
advantage of quickly shipping a time zone feature without waiting for me to
finish the more tricky advanced code.

I am also investigating the option to force Qt to use ICU instead of a
platform-specific implementation. ICU's time zone library is based on the
Olson database  and can be updated:
http://userguide.icu-project.org/datetime/timezone#TOC-Updating-the-Time-Zone-Data
Unfortunately, this means using a custom build of Qt on platforms that
don't support the proper database.

Oh, and the bad news: after more than 9 hours of building, my Qt
installation failed to build successfully. Now I have to fix the problem,
clean, reconfigure and rebuild.

P.S. The Qt documentation calls it the "Olsen" database, but it's Olson.
I'm going to file a bug report. :D Qt 5.2 is scheduled to ship in early
December. :DD

Regards,
Bogdan Marinov
------------------------------------------------------------------------------
November Webinars for C, C++, Fortran Developers
Accelerate application performance with scalable programming models. Explore
techniques for threading, error checking, porting, and tuning. Get the most 
from the latest Intel processors and coprocessors. See abstracts and register
http://pubads.g.doubleclick.net/gampad/clk?id=60136231&iu=/4140/ostg.clktrk
_______________________________________________
Stellarium-pubdevel mailing list
Stellarium-pubdevel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/stellarium-pubdevel

Reply via email to