Hi Antonio

This works for me:

//Start BloomfiltersDemo.cpp
#ifdef QT_QML_DEBUG
#include <QtQuick>
#endif

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


int main(int argc, char *argv[])
{

    QGuiApplication *app = SailfishApp::application(argc, argv);
    QQuickView *view = SailfishApp::createView();

    Bloomfilters  * bloomfilters = new Bloomfilters();
    view->rootContext()->setContextProperty("bloomfiltersdata", bloomfilters);
    view->setSource(SailfishApp::pathTo("qml/BloomFiltersDemo.qml"));
    view->showFullScreen();

    return app->exec();
}
//End BloomfiltersDemo.cpp

//start bloomfilters.h
#ifndef BLOOMFILTERS_H
#define BLOOMFILTERS_H


#include <QObject>
#include <QDebug>
//#include "svn/bloom-read-only/bloom_filter.hpp"

class Bloomfilters : public QObject
{
    Q_OBJECT

public:
    Q_INVOKABLE  void generateFilterInvokable2() const ;
    explicit Bloomfilters(QObject *parent = 0);

    void generateFilter() ;

private:
    QString _k;
};

#endif // BLOOMFILTERS_H
//end bloomfilters.h

//start bloomfilters.cpp
#include "bloomfilters.h"

Bloomfilters::Bloomfilters(QObject *parent) :
    QObject(parent)
{
}

void Bloomfilters::generateFilterInvokable2() const {
    qDebug() << "Blooming Magic";
}
//end bloomfilters.cpp

//start FirstPage.qml
import QtQuick 2.0
import Sailfish.Silica 1.0

Page {
    id: page

    Component.onCompleted: {
        bloomfiltersdata.generateFilterInvokable2()
    }
}
//end FirstPage.qm

HtH
Chris

Zitat von antonio.cano.go...@ovi.com:

Hi Andrey,

The output is: ReferenceError: bloomfilterdata is not defined

I am calling it from a .js

Some idea about how can I  make that this is also defined there.

Thanks!





El Miércoles 26 de febrero de 2014 12:18, Andrey Kozhevnikov <coderusin...@gmail.com> escribió:

start app in terminal and show output please


On 26.02.2014 17:15, antonio.cano.go...@ovi.com wrote:

Hi Thomas,

I did both modification but the code does not work yet.

Here is the new code:

        QGuiApplication *app = SailfishApp::application(argc,
        argv);
        QQuickView *view = SailfishApp::createView();

        Bloomfilters  * bloomfilters = new Bloomfilters();
       
        view->rootContext()->setContextProperty("bloomfiltersdata",
        bloomfilters);
       
        view->setSource(SailfishApp::pathTo("qml/bloomfilter.qml"));
        view->showFullScreen();

        return app->exec();


El Miércoles 26 de febrero de 2014 12:01, Thomas Perl <th.p...@gmail.com> escribió:

On 2014-02-26 11:48, antonio.cano.go...@ovi.com wrote:

I tried this:

        QGuiApplication *app =
                    SailfishApp::application(argc, argv);
        QQuickView *view =
                    SailfishApp::createView();
        Bloomfilters  * bloomfilters = new
                    Bloomfilters();

view->setSource(SailfishApp::pathTo("qml/bloomfilter.qml"));
        view->showFullScreen();

                    view->rootContext()->setContextProperty("Bloomfilters",
                    bloomfilters);
        return app->exec();

But it is not working yet.

Two things:

  1. Call setContextProperty() right before before
                  setSource(), so it's
already available when the QML content is loaded.
  2. Use lowercase for context property names
                  ("bloomfilters" instead of
"Bloomfilters"). In some places, QML interprets IDs
                  starting with an
upper case letter as a type name, and that won't work
                  then, therefore
stick to lowercase.


HTH :)
Thomas






_______________________________________________
SailfishOS.org Devel mailing list


_______________________________________________
SailfishOS.org Devel mailing list





_______________________________________________
SailfishOS.org Devel mailing list

Reply via email to