[SailfishDevel] How to handle app settings?

Franck Routier (perso) alci at mecadu.org
Sun Dec 29 20:48:18 UTC 2013


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

I am trying to use the QSettings wrapper, as proposed by Bob Jelica.
Here is what I did in my main cpp:

#include <sailfishapp.h>
#include "settings.h"

int main(int argc, char *argv[])
{
    // SailfishApp::main() will display "qml/template.qml", if you
need more
    // control over initialization, you can use:
    //
    //   - SailfishApp::application(int, char *[]) to get the
QGuiApplication *
    //   - SailfishApp::createView() to get a new QQuickView * instance
    //   - SailfishApp::pathTo(QString) to get a QUrl to a resource file
    //
    // To display the view, call "show()" (will show fullscreen on
device).

    Settings settings;

    QQuickView *view = SailfishApp::createView();
    //create the root context and set the context properties
    QQmlContext *rootContext = view->rootContext();
    //register our c++ modules for usage in QML
    rootContext->setContextProperty("settings", &settings);

    return SailfishApp::main(argc, argv);
}


Everything compiles fine, but on deployment, I get these messages:

[W] QCoreApplication::applicationDirPath:1906 -
QCoreApplication::applicationDirPath: Please instantiate the
QApplication object first
[F] qt_pixmap_thread_test:76 - QPixmap: Must construct a QApplication
before a QPaintDevice

applicationPath is used in settings.cpp, but I just copied it as is
from the download link given.

I must be missing some obvious step, and would appreciate any help.

Regards,
Franck


Le 29/12/2013 10:15, Bob Jelica a écrit :
> See my previous mail. I use that in QML all the time.
> 
> I guess it’s up to you, as an app developer, to decide what fits
> your app. In spirit with agile software development, I start of
> with the easies possible solution, with as little friction as
> possible and take it from there. The QSettings (with QML wrapper)
> has served me well, and I could focus my time on other parts of the
> app instead :)
> 
> //bob
> 
> On 29 dec 2013, at 10:08, Franck Routier (perso) <alci at mecadu.org>
> wrote:
> 
>> Le 28/12/2013 19:06, Artem Marchenko a écrit :
>> 
>>> If you want something QML that works, I use this pure QML
>>> LocalStorage approach for the last couple of years fine -
>>> https://github.com/amarchen/Wikipedia/blob/master/src/qml/components/DbDictionary.qml
>>
>>
>>> 
I found inbetween that this is the approach promoted (for now) by Ubuntu
>> Touch as well.
>>> 
>>> Nowadays I would have started with wrapping QSettings though
>>> (and pull requests to Wikipedia for changing LocalStorage use
>>> into QSettings wrapper are welcome :))
>>> 
>> So as I understand it, QSettings might be better, but is not yet
>> really usable from QML out of the box (needs a wrapper of some
>> sort, some being developped by Nokia for example).
>> 
>> But, what makes QSettings better thant LocalStorage ? Ans what
>> makes LocalStorage better than QSettings ?
>> 
>> here are my first bets:
>> 
>> LocalStorage: (+) available in qml out of the box, more standard
>> (HTML5 ??), more powerful (sql) (-) not directly human readable /
>> editable, security concerns (all tables available to all qml apps
>> ??)
>> 
>> QSettings: (+) simple text files (?) (-) not directly usable from
>> qml
>> 
>> there must be some other points...
>> 
>> Best regards,
>> 
>> Franck _______________________________________________ 
>> SailfishOS.org Devel mailing list
> 
> _______________________________________________ SailfishOS.org
> Devel mailing list
> 

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.14 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJSwIqSAAoJEGEvoAir78RoDeUH/iVIsj1VnsW7Ku/coDF+aI0o
NrsAYTRTz02KV1uCxeDhC/L8+RObvv8j8DHDCJoQsCFdbtdMWmJilaazxeM/IXfR
fn/3hMfm0rNBRKLnBGAifFy3Awbfv1kR3sBpTqJUltuBI/n7SU/jEcvcsJ4TSkKC
kZRDvq3DrxPk5CKE7VR+SuZSWE69MNQD3t7TRP0yVMtYeZdf2Ayus32obb0D+Lam
HjJd8o+qQOu12eapo7FPQPbnFW5xZuh803492MhduTsOsAqJTsBzy8d7zvadk9b8
YmV6wGC4JhmhwXJ6zV238S5i8PoP9SD43gv2TXNStH/Ai+0PNj+xMNIWVLgg3YI=
=nD/S
-----END PGP SIGNATURE-----


More information about the Devel mailing list