Ah OK. I had missed that. It would also have been almost too easy ;)

Thanks a lot for your thorough help

On Friday 15 November 2013 23:39 Andrey Kozhevnikov wrote:
> unfortunately you cant use QSettings class this way. It have no public
> slots to be used from QML side. You need to write some QmlSettings class
> wrapper for QSettings:
> 
> class QmlSettings: publicQObject
> ...
> public slots:
>    QVariant value(const QString &key);
>    void setValue(const QString &key, const QVariant &value);
> 
> ...
> private:
>    QSettings *_settings;
> 
> ...
> 
> in class constructor:
> 
> _settings = new QSettings("Tanghus",
> "net.tanghus.currencyconverter.sailfish");
> 
> and
> 
> QVariant QmlSettings::value(const QString &key){
>    return _settings->value(key);
> }
> 
> void QmlSettings::setValue(const QString &key, const QVariant &value){
>    _settings->setValue(key, value);
> }
> 
> and then you can use QmlSettings class in QML
> 
> On 15.11.2013 23:32, Thomas Tanghus wrote:
> > On Friday 15 November 2013 20:50 Andrey Kozhevnikov wrote:
> >> both are easy. check Qt Assistant. examples and api reference are inside
> >> your Qt Creator ;)
> > 
> > Forgive me for non-SailfishOS questions, but I must be doing something
> > wrong, even if it's easy ;)
> > 
> > My main is now:
> > 
> > int main(int argc, char *argv[]) {
> > 
> >      QGuiApplication *app = SailfishApp::application(argc, argv);
> >      QQuickView *view = SailfishApp::createView();
> >      QSettings *settings = new QSettings("Tanghus",
> > 
> > "net.tanghus.currencyconverter.sailfish");
> > 
> >      view->rootContext()->setContextProperty("settings", settings);
> >      view-
> >> 
> >> setSource(SailfishApp::pathTo("qml/net.tanghus.currencyconverter.sailfish
> >> .qml"));>> 
> >      view->showFullScreen();
> >      return app->exec();
> > 
> > }
> > 
> > And in ApplicationWindow I can see it's instantiated:
> >      Component.onCompleted: {
> >      
> >          console.log('Ready', settings);
> >      
> >      }
> > 
> > Prints: Ready QSettings(0x70b633a0)
> > 
> > But if I use it like:
> >      refreshInterval = settings.value('refreshInterval', 3600).toInt();
> > 
> > I get:
> > 
> > file:///opt/sdk/net.tanghus.currencyconverter.sailfish/usr/share/net.tangh
> > us.currencyconverter.sailfish/qml/net.tanghus.currencyconverter.sailfish.q
> > ml:64: TypeError: Object [object Object] has no method 'value'
> > 
> > I'm sure this is very trivial - but atm I'm stuck :P
> > 
> >> On 15.11.2013 20:48, Thomas Tanghus wrote:
> >>> On Friday 15 November 2013 20:26 Andrey Kozhevnikov wrote:
> >>>> use QSettings as Jonni said and register own component to use in qml,
> >>>> if
> >>>> need, or export single class instance via setContextProperty
> >>> 
> >>> The latter sounds like the easiest approach.
> 
> _______________________________________________
> SailfishOS.org Devel mailing list

-- 
Med venlig hilsen / Best Regards

Thomas Tanghus
_______________________________________________
SailfishOS.org Devel mailing list

Reply via email to