[gcompris-devel] GCompris-qt - reimplementation of configuration
JAZEIX Johnny
jazeix at gmail.com
Mon Mar 3 07:25:02 UTC 2014
Hi,
i'd like to start to reimplement the new configuration panel of the qt
version.
I have some ideas on how implement them and i'd like to share them in
order to see if I missed some and to find the best one:
These options are persistent (meaning they are stored and restored at
each application launch).
They can be passed as arguments to the program and if it's the case, the
concerned ones will be overriden by the arguments and it will be for the
session only.
About the content, i think we can keep the ones of the gtk version (and
adapt for tablet if we show them, because for example the fullscreen
isn't useful in tablet):
* application language
* enable/disable fullscreen, effects, sounds.
* police
Are the zoom (equivalent to nonfullscreen in fullscreen ?) and themes
used or useful ?
* For the application language, some questions:
- I think the easiest is do to like the gtk version: we have a "map"
stocking a locale associated with a name and when we finish to
configure, we change the application locale and we send a signal to
translate application with the new locale (but I need to look at how
dynamically translate qml components because last time I saw,
workarounds had to be made).
* For enable/disable audio, we can encapsulate the Audio component and
play audio only if the configuration enables it, we use this class
instead of Audio (using aliases, there shouldn't be too much changes for
current activities).
* About the effects, we have to know which effects we want to
enable/disable. For example, the ImageParticle can be disabled, but
transition effects during activities have to stay. Can we consider some
transitions have to be disabled (for example, the "sliding" effect when
choosing an activity) ?
For image particle, i think the same as Audio can be done (ie
encapulsation).
* For the fullscreen, it looks like it has to be done in the c++ part
(basically: window->setVisibility(QWindow::FullScreen))
* For the police, i didn't look but it could be also be with
encapsulation for the Text(maybe TextEdit...?) component. Do we use the
platform fonts or do we embed some ?
* For the storage, there are 3 ways to do it:
- sqlite base
(http://qt-project.org/doc/qt-5/qtquick-localstorage-qmlmodule.html):
advantage: Seems ok for android adding QT += sql in .pro. Probably be
used later for administration.
drawback: i don't think storing config in a database is a good idea. Not
human readable.
- qt settings:
c++ version: QSettings
advantage: human readable, exist for saving data and restoring them over
sessions.
drawback: i don't know if it works on tablet.
qml version:
http://qt-project.org/doc/qt-5/qml-qt-labs-settings-settings.html
advantage: qml, no c++.
drawback: not sure to remain compatible in future versions. Is based on
QSettings (so why not use it directly ?)
Personally, i would go with the c++ version of QSettings (of course, if
it works on tablet).
I hope this mail is readable and understandable :).
Johnny
More information about the Gcompris-devel
mailing list