Re: [SailfishDevel] QML C++ Integration not working in Sailfish

2014-02-27 Thread christopher . lamb

Antonio

Can you provide a code example, and the exact error(s) that you get.

Chris

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


Yes, it helped thanks.

My problem now is different.

I have some private attributes in my C++ object.

When I call the first tiem I can modify the attributes, but in the  
second call the attributes dessapear.


Is there a way to solve this problem?

(The attributes a new C++ Object not declared as QObject)





El Jueves 27 de febrero de 2014 12:32, Stefan Brand  
 escribió:


Hi,


On 25.02.2014 15:06, antonio.cano.go...@ovi.com wrote:

An I try to connect this with my sailfish application with the code:

  QGuiApplication *app = SailfishApp::application(argc, argv);
  QQuickView *view = SailfishApp::createView();
  Bloomfilters * bloomfilters = new Bloomfilters();
  view->rootContext()->setContextProperty("Bloomfilters",
bloomfilters);
  view->setSource(SailfishApp::pathTo("qml/bloomfilter.qml"));
  view->showFullScreen();
  return app->exec();

But this is not working.

Someone have any idea about what am I doing wrong?



You can use qmlRegisterType to pass the Info of the C++ class to QML
like this in the cpp:

#include "bloomfilters.h"

int main(int argc, char *argv[])
{
   // Get App and QML-View objects
   QScopedPointer app(SailfishApp::application(argc,
argv));
   QScopedPointer view(SailfishApp::createView());

   // Register Bloomfilter Class
   qmlRegisterType("harbour.myapp.Bloomfilter", 1, 0,
"Bloomfilter");

   // Prepare the QML
   view->setSource(SailfishApp::pathTo("qml/bloomfilter.qml"));
   view->show();

   // Run the app
   return app->exec();
}

Afterwards you can create a Bloomfilter-Object in QML:

Bloomfilter {
   id: bloom
}

and use the methods with

bloom.insertElement("myelement")

I hope this helps.


Regards

Stefan Brand
___
SailfishOS.org Devel mailing list








___
SailfishOS.org Devel mailing list


Re: [SailfishDevel] QML C++ Integration not working in Sailfish

2014-02-27 Thread antonio . cano . gomez
Yes, it helped thanks.

My problem now is different.

I have some private attributes in my C++ object.

When I call the first tiem I can modify the attributes, but in the second call 
the attributes dessapear.

Is there a way to solve this problem?

(The attributes a new C++ Object not declared as QObject)





El Jueves 27 de febrero de 2014 12:32, Stefan Brand 
 escribió:
 
Hi,
>
>On 25.02.2014 15:06, antonio.cano.go...@ovi.com wrote:
>> An I try to connect this with my sailfish application with the code:
>> 
>>  QGuiApplication *app = SailfishApp::application(argc, argv);
>>  QQuickView *view = SailfishApp::createView();
>>  Bloomfilters * bloomfilters = new Bloomfilters();
>>  view->rootContext()->setContextProperty("Bloomfilters",
>> bloomfilters);
>>  view->setSource(SailfishApp::pathTo("qml/bloomfilter.qml"));
>>  view->showFullScreen();
>>  return app->exec();
>> 
>> But this is not working.
>> 
>> Someone have any idea about what am I doing wrong?
>> 
>
>You can use qmlRegisterType to pass the Info of the C++ class to QML 
>like this in the cpp:
>
>#include "bloomfilters.h"
>
>int main(int argc, char *argv[])
>{
>   // Get App and QML-View objects
>   QScopedPointer app(SailfishApp::application(argc, 
>argv));
>   QScopedPointer view(SailfishApp::createView());
>
>   // Register Bloomfilter Class
>   qmlRegisterType("harbour.myapp.Bloomfilter", 1, 0, 
>"Bloomfilter");
>
>   // Prepare the QML
>   view->setSource(SailfishApp::pathTo("qml/bloomfilter.qml"));
>   view->show();
>
>   // Run the app
>   return app->exec();
>}
>
>Afterwards you can create a Bloomfilter-Object in QML:
>
>Bloomfilter {
>   id: bloom
>}
>
>and use the methods with
>
>bloom.insertElement("myelement")
>
>I hope this helps.
>
>
>Regards
>
>Stefan Brand
>___
>SailfishOS.org Devel mailing list
>
>
>
>___
SailfishOS.org Devel mailing list

Re: [SailfishDevel] QML C++ Integration not working in Sailfish

2014-02-27 Thread Stefan Brand

Hi,

On 25.02.2014 15:06, antonio.cano.go...@ovi.com wrote:

An I try to connect this with my sailfish application with the code:

 QGuiApplication *app = SailfishApp::application(argc, argv);
 QQuickView *view = SailfishApp::createView();
 Bloomfilters * bloomfilters = new Bloomfilters();
 view->rootContext()->setContextProperty("Bloomfilters",
bloomfilters);
 view->setSource(SailfishApp::pathTo("qml/bloomfilter.qml"));
 view->showFullScreen();
 return app->exec();

But this is not working.

Someone have any idea about what am I doing wrong?



You can use qmlRegisterType to pass the Info of the C++ class to QML 
like this in the cpp:


#include "bloomfilters.h"

int main(int argc, char *argv[])
{
  // Get App and QML-View objects
  QScopedPointer app(SailfishApp::application(argc, 
argv));

  QScopedPointer view(SailfishApp::createView());

  // Register Bloomfilter Class
  qmlRegisterType("harbour.myapp.Bloomfilter", 1, 0, 
"Bloomfilter");


  // Prepare the QML
  view->setSource(SailfishApp::pathTo("qml/bloomfilter.qml"));
  view->show();

  // Run the app
  return app->exec();
}

Afterwards you can create a Bloomfilter-Object in QML:

Bloomfilter {
  id: bloom
}

and use the methods with

bloom.insertElement("myelement")

I hope this helps.

Regards

Stefan Brand
___
SailfishOS.org Devel mailing list


Re: [SailfishDevel] QML C++ Integration not working in Sailfish

2014-02-27 Thread antonio . cano . gomez
Thanks, it helped a lot.

In case someone have the same problem, this reference is also useful:
http://qt-project.org/forums/viewthread/22312







El Jueves 27 de febrero de 2014 11:37, Jonni Rainisto 
 escribió:
 
Yes, if you read the documentation pragma library cannot access qml properties 
directly. So its a feature.
>
>http://qt-project.org/doc/qt-5.0/qtqml/qtqml-javascript-resources.html#shared-javascript-resources-libraries
>
>re, Jonni
>
>
>
>
> 
>From: devel-boun...@lists.sailfishos.org [devel-boun...@lists.sailfishos.org] 
>on behalf of antonio.cano.go...@ovi.com [antonio.cano.go...@ovi.com]
>Sent: Thursday, February 27, 2014 12:17 PM
>To: Sylvain B.; Sailfish OS Developers
>Subject: Re: [SailfishDevel] QML C++ Integration not working in Sailfish
>
>
>Hi sylvain,
>
>This is not the case a renamed the variable so the have exactly the same name.
>
>On the other hand, may be the problem is that I am calling it from .js file by 
>the next code:
>
>.pragma library
>.import QtQuick 2.0 as QQ
>
>var appState;
>
>function getAppState() { return appState; }
>
>
>function newAppState(page)
>{
>    appState = page;
>    getAppState().k=1;
>    getAppState().m=2;
>
>    return appState;
>}
>
>// Funciones especificas
>
>function createBloomFilter() {
>    console.log("Voy a llamar a generate filter")
>    bloomfiltersdata.generateFilterInvokable2()
>    console.log("Ya he llamado a generate filter")
>}
>
>
>
>And I call this from the qml by:
>
>
>
>import QtQuick 2.0
>import Sailfish.Silica 1.0
>import "pages"
>
>import "pages/content"
>import "pages/content/logic.js" as Logic
>import fi.helsinki.cs 1.0
>
>ApplicationWindow
>{
>    initialPage: Component { FirstPage { } }
>    cover: Qt.resolvedUrl("cover/CoverPage.qml")
>    id: appWin
>    property var appState: Logic.newAppState(appWin);
>    property ApplicationWindow appWin: appWin
>    property Bloomfilters bloomfilters: bloomfilters
>    property var k
>    property var m
>    property bool filterCharged: false
>}
>
>
>
>
>Someone seems something unusual in this code?
>
>
>Best Regards and Thanks,
>
>
>A. Cano
>
>
>
>
>El Miércoles 26 de febrero de 2014 13:24, Sylvain B.  
>escribió:
>
> 
>>Yes, add a "s" 
>>You declared "bloomfiltersdata" and you are trying to use bloomfilterdata...
>>
>>
>>
>>
>>
>> Date: Wed, 26 Feb 2014 04:02:22 -0800
>>From: antonio.cano.go...@ovi.com
>>To: devel@lists.sailfishos.org
>>Subject: Re: [SailfishDevel] QML C++ Integration not working in Sailfish
>>
>>
>>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 
>> 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  
>>>>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"));
>>>&g

Re: [SailfishDevel] QML C++ Integration not working in Sailfish

2014-02-27 Thread Jonni Rainisto
Yes, if you read the documentation pragma library cannot access qml properties 
directly. So its a feature.

http://qt-project.org/doc/qt-5.0/qtqml/qtqml-javascript-resources.html#shared-javascript-resources-libraries

re, Jonni


From: devel-boun...@lists.sailfishos.org [devel-boun...@lists.sailfishos.org] 
on behalf of antonio.cano.go...@ovi.com [antonio.cano.go...@ovi.com]
Sent: Thursday, February 27, 2014 12:17 PM
To: Sylvain B.; Sailfish OS Developers
Subject: Re: [SailfishDevel] QML C++ Integration not working in Sailfish

Hi sylvain,

This is not the case a renamed the variable so the have exactly the same name.

On the other hand, may be the problem is that I am calling it from .js file by 
the next code:

.pragma library
.import QtQuick 2.0 as QQ

var appState;

function getAppState() { return appState; }


function newAppState(page)
{
appState = page;
getAppState().k=1;
getAppState().m=2;

return appState;
}

// Funciones especificas

function createBloomFilter() {
console.log("Voy a llamar a generate filter")
bloomfiltersdata.generateFilterInvokable2()
console.log("Ya he llamado a generate filter")
}

And I call this from the qml by:


import QtQuick 2.0
import Sailfish.Silica 1.0
import "pages"

import "pages/content"
import "pages/content/logic.js" as Logic
import fi.helsinki.cs 1.0

ApplicationWindow
{
initialPage: Component { FirstPage { } }
cover: Qt.resolvedUrl("cover/CoverPage.qml")
id: appWin
property var appState: Logic.newAppState(appWin);
property ApplicationWindow appWin: appWin
property Bloomfilters bloomfilters: bloomfilters
property var k
property var m
property bool filterCharged: false
}


Someone seems something unusual in this code?

Best Regards and Thanks,

A. Cano


El Miércoles 26 de febrero de 2014 13:24, Sylvain B.  
escribió:
Yes, add a "s"
You declared "bloomfiltersdata" and you are trying to use bloomfilterdata...



Date: Wed, 26 Feb 2014 04:02:22 -0800
From: antonio.cano.go...@ovi.com
To: devel@lists.sailfishos.org
Subject: Re: [SailfishDevel] QML C++ Integration not working in Sailfish

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 
 escribió:
start app in terminal and show output please

On 26.02.2014 17:15, 
antonio.cano.go...@ovi.com<mailto: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 
<mailto:th.p...@gmail.com> escribió:
On 2014-02-26 11:48, 
antonio.cano.go...@ovi.com<mailto: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


___
SailfishOS.org Devel mailing list

Re: [SailfishDevel] QML C++ Integration not working in Sailfish

2014-02-27 Thread antonio . cano . gomez
Hi sylvain,

This is not the case a renamed the variable so the have exactly the same name.

On the other hand, may be the problem is that I am calling it from .js file by 
the next code:

.pragma library
.import QtQuick 2.0 as QQ

var appState;

function getAppState() { return appState; }


function newAppState(page)
{
    appState = page;
    getAppState().k=1;
    getAppState().m=2;

    return appState;
}

// Funciones especificas

function createBloomFilter() {
    console.log("Voy a llamar a generate filter")
    bloomfiltersdata.generateFilterInvokable2()
    console.log("Ya he llamado a generate filter")
}


And I call this from the qml by:


import QtQuick 2.0
import Sailfish.Silica 1.0
import "pages"

import "pages/content"
import "pages/content/logic.js" as Logic
import fi.helsinki.cs 1.0

ApplicationWindow
{
    initialPage: Component { FirstPage { } }
    cover: Qt.resolvedUrl("cover/CoverPage.qml")
    id: appWin
    property var appState: Logic.newAppState(appWin);
    property ApplicationWindow appWin: appWin
    property Bloomfilters bloomfilters: bloomfilters
    property var k
    property var m
    property bool filterCharged: false
}


Someone seems something unusual in this code?

Best Regards and Thanks,

A. Cano




El Miércoles 26 de febrero de 2014 13:24, Sylvain B.  
escribió:
 
Yes, add a "s"
>You declared "bloomfiltersdata" and you are trying to use bloomfilterdata...
>
>
>
>
>
>Date: Wed, 26 Feb 2014 04:02:22 -0800
>From: antonio.cano.go...@ovi.com
>To: devel@lists.sailfishos.org
>Subject: Re: [SailfishDevel] QML C++ Integration not working in Sailfish
>
>
>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 
> 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  
>>>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
>
>___
SailfishOS.org Devel mailing list

Re: [SailfishDevel] QML C++ Integration not working in Sailfish

2014-02-26 Thread christopher . lamb

Hi Antonio

This works for me:

//Start BloomfiltersDemo.cpp
#ifdef QT_QML_DEBUG
#include 
#endif

#include 
#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 
#include 
//#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  
 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  
 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


Re: [SailfishDevel] QML C++ Integration not working in Sailfish

2014-02-26 Thread Sylvain B .
Yes, add a "s"You declared "bloomfiltersdata" and you are trying to use 
bloomfilterdata...

Date: Wed, 26 Feb 2014 04:02:22 -0800
From: antonio.cano.go...@ovi.com
To: devel@lists.sailfishos.org
Subject: Re: [SailfishDevel] QML C++ Integration not working in Sailfish

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 
 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
   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 ___
SailfishOS.org Devel mailing list

Re: [SailfishDevel] QML C++ Integration not working in Sailfish

2014-02-26 Thread Harald Schmitt
Am 26.02.2014 11:46, schrieb antonio.cano.go...@ovi.com:
> Hi J-P,
> 
> It is not working as I try to call the method generateFilterInvokable2()
> 
> in the function:
> 
> function createBloomFilter() {
> getAppState().filterCharged = true;
> Bloomfilters.generateFilterInvokable2()
> console.log("Called")
> }
> 
> And as result "Called" is never printed. So I guess that it crashes.
I would add an
console.log("Before called")
and see whether the createBloomFilter() function is entered at all.

> 
> El Miércoles 26 de febrero de 2014 0:30, Sylvain B. 
> escribió:
> 
> No, I am able to invoke c++ methods from QML while having exposed
> them the exact same way.
> The only difference would be that my constructor is a simple
> "Bloomfilters()".
> So same question than J-P: what exactly isn't working?
> 
> > Date: Tue, 25 Feb 2014 16:31:13 +0100
> > From: mikel...@gmail.com
> > To: antonio.cano.go...@ovi.com; devel@lists.sailfishos.org
> > Subject: Re: [SailfishDevel] QML C++ Integration not working in
> Sailfish
> >
> > I think you need to add a qRegisterMetatype() to be able to invoke
> > methods from qml.
> >
> > On Tue, Feb 25, 2014 at 3:06 PM,  wrote:
> > > Hi,
> > >
> > > I am trying to do a simple Sailfish aplication that uses a c++
> library. I
> > > try to connect my qml code with the C++ code.
> > >
> > > First I create QObject extended library:
> > >
> > > #ifndef BLOOMFILTERS_H
> > > #define BLOOMFILTERS_H
> > >
> > >
> > > #include 
> > > #include "svn/bloom-read-only/bloom_filter.hpp"
> > >
> > > class Bloomfilters : public QObject
> > > {
> > > Q_OBJECT
> > >
> > >
> > > public:
> > > Q_INVOKABLE void generateFilterInvokable2() const ;
> > > Q_INVOKABLE void generateFilterInvokable(const QString &cadenaK,
> const
> > > QString &cadenaM) const ;
> > >
> > >
> > > explicit Bloomfilters(QObject *parent = 0);
> > >
> > > void generateFilter() ;
> > >
> > > Q_INVOKABLE void insertElement(const QString &cadena) ;
> > >
> > > Q_INVOKABLE bool checkElement(const QString &cadena) ;
> > >
> > >
> > >
> > >
> > > signals:
> > >
> > >
> > > public slots:
> > >
> > > private:
> > > bloom_parameters _parameters ;
> > > bloom_filter _filter;
> > > bool _filter_charged;
> > > QString _k;
> > > };
> > >
> > > #endif // BLOOMFILTERS_H
> > >
> > >
> > >
> > > An I try to connect this with my sailfish application with the code:
> > >
> > > QGuiApplication *app = SailfishApp::application(argc, argv);
> > > QQuickView *view = SailfishApp::createView();
> > > Bloomfilters * bloomfilters = new Bloomfilters();
> > > view->rootContext()->setContextProperty("Bloomfilters",
> > > bloomfilters);
> > > view->setSource(SailfishApp::pathTo("qml/bloomfilter.qml"));
> > > view->showFullScreen();
> > > return app->exec();
> > >
> > > But this is not working.
> > >
> > > Someone have any idea about what am I doing wrong?
> > >
> > > Best Regards!
> > >
> > >
> > >
> > > ___
> > > SailfishOS.org Devel mailing list
> >
> >
> >
> > --
> > Luciano Montanaro
> >
> > Anyone who is capable of getting themselves made President should on
> > no account be allowed to do the job. -- Douglas Adams
> 
> > ___
> > SailfishOS.org Devel mailing list
> 
> ___
> SailfishOS.org Devel mailing list
> 
> 
> 
> 
> ___
> SailfishOS.org Devel mailing list
> 

___
SailfishOS.org Devel mailing list


Re: [SailfishDevel] QML C++ Integration not working in Sailfish

2014-02-26 Thread antonio . cano . gomez
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 
 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  
>>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

Re: [SailfishDevel] QML C++ Integration not working in Sailfish

2014-02-26 Thread Mikko Leppänen
Hi,

Try creating Bloomfilters class instance before declaring view, and store
app and view either to qscopedpointer or qsharedpointer.

/Mikko


2014-02-26 13:15 GMT+02:00 :

> 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 
> 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

Re: [SailfishDevel] QML C++ Integration not working in Sailfish

2014-02-26 Thread Andrey Kozhevnikov

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 
 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

Re: [SailfishDevel] QML C++ Integration not working in Sailfish

2014-02-26 Thread antonio . cano . gomez
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  
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

Re: [SailfishDevel] QML C++ Integration not working in Sailfish

2014-02-26 Thread Thomas Perl

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


Re: [SailfishDevel] QML C++ Integration not working in Sailfish

2014-02-26 Thread antonio . cano . gomez
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.





El Miércoles 26 de febrero de 2014 11:46, "antonio.cano.go...@ovi.com" 
 escribió:
 
Hi J-P,
>
>It is not working as I try to call the method generateFilterInvokable2()
>
>in the function:
>
>function createBloomFilter() {
>    getAppState().filterCharged = true;
>    Bloomfilters.generateFilterInvokable2()
>    console.log("Called")
>}
>
>
>And as result "Called" is never printed. So I guess that it crashes.
>
>
>
>
>El Miércoles 26 de febrero de 2014 0:30, Sylvain B.  
>escribió:
> 
>No, I am able to invoke c++ methods from QML while having exposed them the 
>exact same way.
>>The only difference would be that my constructor is a simple "Bloomfilters()".
>>So same question than J-P: what exactly isn't working?
>>
>>
>>> Date: Tue, 25 Feb 2014 16:31:13 +0100
>>> From: mikel...@gmail.com
>>> To: antonio.cano.go...@ovi.com; devel@lists.sailfishos.org
>>> Subject: Re: [SailfishDevel] QML C++ Integration not working in Sailfish
>>> 
>>> I think you need to add a qRegisterMetatype() to be able to invoke
>>> methods from qml.
>>> 
>>> On Tue, Feb 25, 2014 at 3:06 PM,   wrote:
>>> > Hi,
>>> >
>>> > I am trying to do
 a simple Sailfish aplication that uses a c++ library.  I
>>> > try to connect my qml code with the C++ code.
>>> >
>>> > First I create QObject extended library:
>>> >
>>> > #ifndef BLOOMFILTERS_H
>>> > #define BLOOMFILTERS_H
>>> >
>>> >
>>> > #include 
>>> > #include "svn/bloom-read-only/bloom_filter.hpp"
>>> >
>>> > class Bloomfilters : public QObject
>>> > {
>>> > Q_OBJECT
>>> >
>>> >
>>> > public:
>>> > Q_INVOKABLE  void generateFilterInvokable2() const ;
>>> > Q_INVOKABLE  void generateFilterInvokable(const QString &cadenaK, 
>>> > const
>>> > QString &cadenaM) const ;
>>> >
>>> >
>>> > explicit Bloomfilters(QObject *parent = 0);
>>> >
>>> > void generateFilter() ;
>>> >
>>> > Q_INVOKABLE void insertElement(const QString &cadena) ;
>>> >
>>> > Q_INVOKABLE bool checkElement(const QString &cadena) ;
>>> >
>>> >
>>> >
>>> >
>>> > signals:
>>> >
>>> >
>>> > public slots:
>>> >
>>> > private:
>>> > bloom_parameters _parameters ;
>>> > bloom_filter _filter;
>>> > bool _filter_charged;
>>>
 > QString _k;
>>> > };
>>> >
>>> > #endif // BLOOMFILTERS_H
>>> >
>>> >
>>> >
>>> > An I try to connect this with my sailfish application with the code:
>>> >
>>> > QGuiApplication *app = SailfishApp::application(argc, argv);
>>> > QQuickView *view = SailfishApp::createView();
>>> > Bloomfilters  * bloomfilters = new Bloomfilters();
>>> > view->rootContext()->setContextProperty("Bloomfilters",
>>> > bloomfilters);
>>> > view->setSource(SailfishApp::pathTo("qml/bloomfilter.qml"));
>>> > view->showFullScreen();
>>> > return app->exec();
>>> >
>>> > But this is not working.
>>> >
>>> > Someone have any idea about what am I doing wrong?
>>> >
>>> > Best Regards!
>>> >
>>> >
>>> >
>>> > ___
>>> > SailfishOS.org Devel mailing list
>>> 
>>> 
>>> 
>>> -- 
>>> Luciano Montanaro
>>> 
>>> Anyone who is capable of getting themselves made President should on
>>> no account be allowed to do the job. -- Douglas Adams
>>
>>> ___
>>> SailfishOS.org Devel mailing list
>>
>>
>>___
>>SailfishOS.org Devel mailing list
>>
>>
>
>___
>SailfishOS.org Devel mailing list
>
>___
SailfishOS.org Devel mailing list

Re: [SailfishDevel] QML C++ Integration not working in Sailfish

2014-02-26 Thread antonio . cano . gomez
Hi J-P,

It is not working as I try to call the method generateFilterInvokable2()

in the function:

function createBloomFilter() {
    getAppState().filterCharged = true;
    Bloomfilters.generateFilterInvokable2()
    console.log("Called")
}


And as result "Called" is never printed. So I guess that it crashes.




El Miércoles 26 de febrero de 2014 0:30, Sylvain B.  
escribió:
 
No, I am able to invoke c++ methods from QML while having exposed them the 
exact same way.
>The only difference would be that my constructor is a simple "Bloomfilters()".
>So same question than J-P: what exactly isn't working?
>
>
>> Date: Tue, 25 Feb 2014 16:31:13 +0100
>> From: mikel...@gmail.com
>> To: antonio.cano.go...@ovi.com; devel@lists.sailfishos.org
>> Subject: Re: [SailfishDevel] QML C++ Integration not working in Sailfish
>> 
>> I think you need to add a qRegisterMetatype() to be able to invoke
>> methods from qml.
>> 
>> On Tue, Feb 25, 2014 at 3:06 PM,   wrote:
>> > Hi,
>> >
>> > I am trying to do a simple Sailfish aplication that uses a c++ library.  I
>> > try to connect my qml code with the C++ code.
>> >
>> > First I create QObject extended library:
>> >
>> > #ifndef BLOOMFILTERS_H
>> > #define BLOOMFILTERS_H
>> >
>> >
>> > #include 
>> > #include "svn/bloom-read-only/bloom_filter.hpp"
>> >
>> > class Bloomfilters : public QObject
>> > {
>> > Q_OBJECT
>> >
>> >
>> > public:
>> > Q_INVOKABLE  void generateFilterInvokable2() const ;
>> > Q_INVOKABLE  void generateFilterInvokable(const QString &cadenaK, const
>> > QString &cadenaM) const ;
>> >
>> >
>> > explicit Bloomfilters(QObject *parent = 0);
>> >
>> > void generateFilter() ;
>> >
>> > Q_INVOKABLE void insertElement(const QString &cadena) ;
>> >
>> > Q_INVOKABLE bool checkElement(const QString &cadena) ;
>> >
>> >
>> >
>> >
>> > signals:
>> >
>> >
>> > public slots:
>> >
>> > private:
>> > bloom_parameters _parameters ;
>> > bloom_filter _filter;
>> > bool _filter_charged;
>> > QString _k;
>> > };
>> >
>> > #endif // BLOOMFILTERS_H
>> >
>> >
>> >
>> > An I try to connect this with my sailfish application with the code:
>> >
>> > QGuiApplication *app = SailfishApp::application(argc, argv);
>> > QQuickView *view = SailfishApp::createView();
>> > Bloomfilters  * bloomfilters = new Bloomfilters();
>> > view->rootContext()->setContextProperty("Bloomfilters",
>> > bloomfilters);
>> > view->setSource(SailfishApp::pathTo("qml/bloomfilter.qml"));
>> > view->showFullScreen();
>> > return app->exec();
>> >
>> > But this is not working.
>> >
>> > Someone have any idea about what am I doing wrong?
>> >
>> > Best Regards!
>> >
>> >
>> >
>> > ___
>> > SailfishOS.org Devel mailing list
>> 
>> 
>> 
>> -- 
>> Luciano Montanaro
>> 
>> Anyone who is capable of getting themselves made President should on
>> no account be allowed to do the job. -- Douglas Adams
>
>> ___
>> SailfishOS.org Devel mailing list
>
>
>___
>SailfishOS.org Devel mailing list
>
>___
SailfishOS.org Devel mailing list

Re: [SailfishDevel] QML C++ Integration not working in Sailfish

2014-02-25 Thread Martin Grimme
2014-02-25 16:39 GMT+01:00, Andrey Kozhevnikov :
> ???
>
> contextProperty should be set BEFORE loading QML source.

You're right, sorry! I must have confused something. I shouldn't
answer mails while on train. :)


Martin



>
> On 25.02.2014 21:33, martin.gri...@gmail.com wrote:
>> Hi,
>>
>> you should set the context property after loading the QML source. Then it
>> ought to be available from QML.
>>
>> Martin
>>
>>
>> Am Tue Feb 25 2014 15:06:39 GMT+0100 (CET) schrieb
>> antonio.cano.go...@ovi.com:
>>> Hi,
>>>
>>> I am trying to do a simple Sailfish aplication that uses a c++ library.
>>> I try to connect my qml code with the C++ code.
>>>
>>> First I create QObject extended library:
>>>
>>>
>>> #ifndef BLOOMFILTERS_H
>>> #define BLOOMFILTERS_H
>>>
>>>
>>> #include 
>>> #include "svn/bloom-read-only/bloom_filter.hpp"
>>>
>>> class Bloomfilters : public QObject
>>> {
>>> Q_OBJECT
>>>
>>>
>>> public:
>>> Q_INVOKABLE  void generateFilterInvokable2() const ;
>>> Q_INVOKABLE  void generateFilterInvokable(const QString &cadenaK,
>>> const QString &cadenaM) const ;
>>>
>>>
>>> explicit Bloomfilters(QObject *parent = 0);
>>>
>>> void generateFilter() ;
>>>
>>> Q_INVOKABLE void insertElement(const QString &cadena) ;
>>>
>>> Q_INVOKABLE bool checkElement(const QString &cadena) ;
>>>
>>>
>>>
>>>
>>> signals:
>>>
>>>
>>> public slots:
>>>
>>> private:
>>> bloom_parameters _parameters ;
>>> bloom_filter _filter;
>>> bool _filter_charged;
>>> QString _k;
>>> };
>>>
>>> #endif // BLOOMFILTERS_H
>>>
>>>
>>>
>>> An I try to connect this with my sailfish application with the code:
>>>
>>> QGuiApplication *app = SailfishApp::application(argc, argv);
>>> QQuickView *view = SailfishApp::createView();
>>> Bloomfilters  * bloomfilters = new Bloomfilters();
>>> view->rootContext()->setContextProperty("Bloomfilters",
>>> bloomfilters);
>>> view->setSource(SailfishApp::pathTo("qml/bloomfilter.qml"));
>>> view->showFullScreen();
>>> return app->exec();
>>>
>>>
>>> But this is not working.
>>>
>>> Someone have any idea about what am I doing wrong?
>>>
>>> Best Regards
>
> ___
> SailfishOS.org Devel mailing list
>
___
SailfishOS.org Devel mailing list


Re: [SailfishDevel] QML C++ Integration not working in Sailfish

2014-02-25 Thread Sylvain B .
No, I am able to invoke c++ methods from QML while having exposed them the 
exact same way.
The only difference would be that my constructor is a simple "Bloomfilters()".
So same question than J-P: what exactly isn't working?

> Date: Tue, 25 Feb 2014 16:31:13 +0100
> From: mikel...@gmail.com
> To: antonio.cano.go...@ovi.com; devel@lists.sailfishos.org
> Subject: Re: [SailfishDevel] QML C++ Integration not working in Sailfish
> 
> I think you need to add a qRegisterMetatype() to be able to invoke
> methods from qml.
> 
> On Tue, Feb 25, 2014 at 3:06 PM,   wrote:
> > Hi,
> >
> > I am trying to do a simple Sailfish aplication that uses a c++ library.  I
> > try to connect my qml code with the C++ code.
> >
> > First I create QObject extended library:
> >
> > #ifndef BLOOMFILTERS_H
> > #define BLOOMFILTERS_H
> >
> >
> > #include 
> > #include "svn/bloom-read-only/bloom_filter.hpp"
> >
> > class Bloomfilters : public QObject
> > {
> > Q_OBJECT
> >
> >
> > public:
> > Q_INVOKABLE  void generateFilterInvokable2() const ;
> > Q_INVOKABLE  void generateFilterInvokable(const QString &cadenaK, const
> > QString &cadenaM) const ;
> >
> >
> > explicit Bloomfilters(QObject *parent = 0);
> >
> > void generateFilter() ;
> >
> > Q_INVOKABLE void insertElement(const QString &cadena) ;
> >
> > Q_INVOKABLE bool checkElement(const QString &cadena) ;
> >
> >
> >
> >
> > signals:
> >
> >
> > public slots:
> >
> > private:
> > bloom_parameters _parameters ;
> > bloom_filter _filter;
> > bool _filter_charged;
> > QString _k;
> > };
> >
> > #endif // BLOOMFILTERS_H
> >
> >
> >
> > An I try to connect this with my sailfish application with the code:
> >
> > QGuiApplication *app = SailfishApp::application(argc, argv);
> > QQuickView *view = SailfishApp::createView();
> > Bloomfilters  * bloomfilters = new Bloomfilters();
> > view->rootContext()->setContextProperty("Bloomfilters",
> > bloomfilters);
> > view->setSource(SailfishApp::pathTo("qml/bloomfilter.qml"));
> > view->showFullScreen();
> > return app->exec();
> >
> > But this is not working.
> >
> > Someone have any idea about what am I doing wrong?
> >
> > Best Regards!
> >
> >
> >
> > ___
> > SailfishOS.org Devel mailing list
> 
> 
> 
> -- 
> Luciano Montanaro
> 
> Anyone who is capable of getting themselves made President should on
> no account be allowed to do the job. -- Douglas Adams
> ___
> SailfishOS.org Devel mailing list
  ___
SailfishOS.org Devel mailing list

Re: [SailfishDevel] QML C++ Integration not working in Sailfish

2014-02-25 Thread christopher . lamb

Hi Antonio

Here is a simplified example from one of my projects, showing a number  
of ways to expose C++ to QML.


I tend to use qmlRegister when exposing C++ objects with methods,  
and SetContextProperty when I want to expose simple stuff like global  
constants only.


I do things that way because it works for me ...

Chris



#ifdef QT_QML_DEBUG
#include 
#endif

#include 
#include 
#include 

#include 

//#include "landedtorch.h" //harmattan
#include "gsttorch.h" //sailfish
#include "satinfosource.h"
#include "operatingsystem.h"
#include "windowingsystem.h"
#include "telepathyhelper.h"
#include "landedtheme.h"
#include  "jsonstorage.h"

//HELPER Functions getting system information which will be exported to QML

bool isSimulator()
{
bool simulator;
#if defined(QT_SIMULATOR)
simulator = true;
#else
// real device or emulator
simulator = false;
#endif
return simulator;
}

int getOperatingSystem()
{
//C++ representation of the OperatingSystem enumg
const OperatingSystem Os;
int OSId;
#if defined(Q_OS_SYMBIAN)
OSId = Os.Symbian;
#elif defined(Q_OS_MAC64)
OSId = Os.Mac64;
#elif defined(Q_OS_UNIX)
OSId = Os.Unix;
#elif defined(Q_OS_WIN32)
OSId = Os.Win32;
#elif defined(Q_OS_WIN64)
OSId = Os.Win64;
#elif defined(Q_OS_WINCE)
OSId = Os.WinCE;
#elif defined(Q_OS_SIMULATOR)
OSId = Os.Simulator;
#else
// other OS
OSId = Os.Other;
#endif
return OSId;
}

//END HELPER Functions

static QObject *theme_singletontype_provider(QQmlEngine *engine,  
QJSEngine *scriptEngine)

{
Q_UNUSED(engine)
Q_UNUSED(scriptEngine)

LandedTheme *landedTheme = new LandedTheme();
return landedTheme;
}

static QObject *jsonStorage_singletontype_provider(QQmlEngine *engine,  
QJSEngine *scriptEngine)

{
Q_UNUSED(engine)
Q_UNUSED(scriptEngine)

JSONStorage *jsonStorage = new JSONStorage();
return jsonStorage;
}

int main(int argc, char *argv[])
{
bool simulator = isSimulator();

//expose an enum of operating systems types to QML
qmlRegisterUncreatableType("OperatingSystem", 1,  
0, "OperatingSystem", "");

int OperatingSystemId = getOperatingSystem();

qmlRegisterType("GstTorch",1,0,"GstTorch");
qmlRegisterType("TelepathyHelper",1,0,"TelepathyHelper");
qmlRegisterType("SatInfoSource",1,0,"SatInfoSource");
qmlRegisterSingletonType("LandedTheme", 1, 0,  
"LandedTheme", theme_singletontype_provider);
 
qmlRegisterSingletonType("JSONStorage",1,0,"JSONStorage",  
jsonStorage_singletontype_provider);


QScopedPointer app(SailfishApp::application(argc, argv));
QScopedPointer view(SailfishApp::createView());

view->rootContext()->setContextProperty("OperatingSystemId",   
OperatingSystemId);

view->rootContext()->setContextProperty("simulator",  simulator);

view->setSource(SailfishApp::pathTo("qml/landed26_QT5.qml"));
view->show();
view->showFullScreen();
return app->exec();
}


Zitat von "Andrey Kozhevnikov" :


???

contextProperty should be set BEFORE loading QML source.

On 25.02.2014 21:33, martin.gri...@gmail.com wrote:

Hi,

you should set the context property after loading the QML source.  
Then it ought to be available from QML.


Martin


Am Tue Feb 25 2014 15:06:39 GMT+0100 (CET) schrieb  
antonio.cano.go...@ovi.com:

Hi,

I am trying to do a simple Sailfish aplication that uses a c++  
library.  I try to connect my qml code with the C++ code.


First I create QObject extended library:


#ifndef BLOOMFILTERS_H
#define BLOOMFILTERS_H


#include 
#include "svn/bloom-read-only/bloom_filter.hpp"

class Bloomfilters : public QObject
{
   Q_OBJECT


public:
   Q_INVOKABLE  void generateFilterInvokable2() const ;
   Q_INVOKABLE  void generateFilterInvokable(const QString  
&cadenaK, const QString &cadenaM) const ;



   explicit Bloomfilters(QObject *parent = 0);

   void generateFilter() ;

   Q_INVOKABLE void insertElement(const QString &cadena) ;

   Q_INVOKABLE bool checkElement(const QString &cadena) ;




signals:


public slots:

private:
   bloom_parameters _parameters ;
   bloom_filter _filter;
   bool _filter_charged;
   QString _k;
};

#endif // BLOOMFILTERS_H



An I try to connect this with my sailfish application with the code:

   QGuiApplication *app = SailfishApp::application(argc, argv);
   QQuickView *view = SailfishApp::createView();
   Bloomfilters  * bloomfilters = new Bloomfilters();
   view->rootContext()->setContextProperty("Bloomfilters",  
bloomfilters);

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


But this is not working.

Someone have any idea about what am I doing wrong?

Best Regards


___
SailfishOS.org Devel mailing list





___
SailfishOS.org Devel mailing

Re: [SailfishDevel] QML C++ Integration not working in Sailfish

2014-02-25 Thread Andrey Kozhevnikov

???

contextProperty should be set BEFORE loading QML source.

On 25.02.2014 21:33, martin.gri...@gmail.com wrote:

Hi,

you should set the context property after loading the QML source. Then it ought 
to be available from QML.

Martin


Am Tue Feb 25 2014 15:06:39 GMT+0100 (CET) schrieb antonio.cano.go...@ovi.com:

Hi,

I am trying to do a simple Sailfish aplication that uses a c++ library.  I try 
to connect my qml code with the C++ code.

First I create QObject extended library:


#ifndef BLOOMFILTERS_H
#define BLOOMFILTERS_H


#include 
#include "svn/bloom-read-only/bloom_filter.hpp"

class Bloomfilters : public QObject
{
Q_OBJECT


public:
Q_INVOKABLE  void generateFilterInvokable2() const ;
Q_INVOKABLE  void generateFilterInvokable(const QString &cadenaK, const QString 
&cadenaM) const ;


explicit Bloomfilters(QObject *parent = 0);

void generateFilter() ;

Q_INVOKABLE void insertElement(const QString &cadena) ;

Q_INVOKABLE bool checkElement(const QString &cadena) ;




signals:


public slots:

private:
bloom_parameters _parameters ;
bloom_filter _filter;
bool _filter_charged;
QString _k;
};

#endif // BLOOMFILTERS_H



An I try to connect this with my sailfish application with the code:

QGuiApplication *app = SailfishApp::application(argc, argv);
QQuickView *view = SailfishApp::createView();
Bloomfilters  * bloomfilters = new Bloomfilters();
view->rootContext()->setContextProperty("Bloomfilters", bloomfilters);
view->setSource(SailfishApp::pathTo("qml/bloomfilter.qml"));
view->showFullScreen();
return app->exec();


But this is not working.

Someone have any idea about what am I doing wrong?

Best Regards


___
SailfishOS.org Devel mailing list


Re: [SailfishDevel] QML C++ Integration not working in Sailfish

2014-02-25 Thread martin . grimme
Hi,

you should set the context property after loading the QML source. Then it ought 
to be available from QML.

Martin


Am Tue Feb 25 2014 15:06:39 GMT+0100 (CET) schrieb antonio.cano.go...@ovi.com:
>Hi,
>
>I am trying to do a simple Sailfish aplication that uses a c++ library.  I try 
>to connect my qml code with the C++ code.
>
>First I create QObject extended library:
>
>
>#ifndef BLOOMFILTERS_H
>#define BLOOMFILTERS_H
>
>
>#include 
>#include "svn/bloom-read-only/bloom_filter.hpp"
>
>class Bloomfilters : public QObject
>{
>Q_OBJECT
>
>
>public:
>Q_INVOKABLE  void generateFilterInvokable2() const ;
>Q_INVOKABLE  void generateFilterInvokable(const QString &cadenaK, const 
> QString &cadenaM) const ;
>
>
>explicit Bloomfilters(QObject *parent = 0);
>
>void generateFilter() ;
>
>Q_INVOKABLE void insertElement(const QString &cadena) ;
>
>Q_INVOKABLE bool checkElement(const QString &cadena) ;
>
>
>
>
>signals:
>
>
>public slots:
>
>private:
>bloom_parameters _parameters ;
>bloom_filter _filter;
>bool _filter_charged;
>QString _k;
>};
>
>#endif // BLOOMFILTERS_H
>
>
>
>An I try to connect this with my sailfish application with the code:
>
>QGuiApplication *app = SailfishApp::application(argc, argv);
>QQuickView *view = SailfishApp::createView();
>Bloomfilters  * bloomfilters = new Bloomfilters();
>view->rootContext()->setContextProperty("Bloomfilters", bloomfilters);
>view->setSource(SailfishApp::pathTo("qml/bloomfilter.qml"));
>view->showFullScreen();
>return app->exec();
>
>
>But this is not working.
>
>Someone have any idea about what am I doing wrong?
>
>Best Regards

-- 
Gesendet von meinem Jolla
___
SailfishOS.org Devel mailing list


Re: [SailfishDevel] QML C++ Integration not working in Sailfish

2014-02-25 Thread J-P Nurmi
On Tue, 2014-02-25 at 06:06 -0800, antonio.cano.go...@ovi.com wrote:
> Hi,
> 
> 
> I am trying to do a simple Sailfish aplication that uses a c++
> library.  I try to connect my qml code with the C++ code.
> 
> 
> First I create QObject extended library:
> 
> 
> 
> #ifndef BLOOMFILTERS_H
> #define BLOOMFILTERS_H
> 
> 
> #include 
> #include "svn/bloom-read-only/bloom_filter.hpp"
> 
> class Bloomfilters : public QObject
> {
> Q_OBJECT
> 
> 
> public:
> Q_INVOKABLE  void generateFilterInvokable2() const ;
> Q_INVOKABLE  void generateFilterInvokable(const QString &cadenaK,
> const QString &cadenaM) const ;
> 
> 
> explicit Bloomfilters(QObject *parent = 0);
> 
> void generateFilter() ;
> 
> Q_INVOKABLE void insertElement(const QString &cadena) ;
> 
> Q_INVOKABLE bool checkElement(const QString &cadena) ;
> 
> 
> 
> 
> signals:
> 
> 
> public slots:
> 
> private:
> bloom_parameters _parameters ;
> bloom_filter _filter;
> bool _filter_charged;
> QString _k;
> };
> 
> #endif // BLOOMFILTERS_H
> 
> 
> 
> 
> 
> 
> An I try to connect this with my sailfish application with the code:
> 
> 
> QGuiApplication *app = SailfishApp::application(argc, argv);
> QQuickView *view = SailfishApp::createView();
> Bloomfilters  * bloomfilters = new Bloomfilters();
> view->rootContext()->setContextProperty("Bloomfilters",
> bloomfilters);
> view->setSource(SailfishApp::pathTo("qml/bloomfilter.qml"));
> view->showFullScreen();
> return app->exec();
> 
> 
> 
> But this is not working.
> 
> 
> Someone have any idea about what am I doing wrong?
> 

Hi,

What does "this is not working" mean? In what way is it not working?

-- 
J-P Nurmi


___
SailfishOS.org Devel mailing list


Re: [SailfishDevel] QML C++ Integration not working in Sailfish

2014-02-25 Thread Luciano Montanaro
I think you need to add a qRegisterMetatype() to be able to invoke
methods from qml.

On Tue, Feb 25, 2014 at 3:06 PM,   wrote:
> Hi,
>
> I am trying to do a simple Sailfish aplication that uses a c++ library.  I
> try to connect my qml code with the C++ code.
>
> First I create QObject extended library:
>
> #ifndef BLOOMFILTERS_H
> #define BLOOMFILTERS_H
>
>
> #include 
> #include "svn/bloom-read-only/bloom_filter.hpp"
>
> class Bloomfilters : public QObject
> {
> Q_OBJECT
>
>
> public:
> Q_INVOKABLE  void generateFilterInvokable2() const ;
> Q_INVOKABLE  void generateFilterInvokable(const QString &cadenaK, const
> QString &cadenaM) const ;
>
>
> explicit Bloomfilters(QObject *parent = 0);
>
> void generateFilter() ;
>
> Q_INVOKABLE void insertElement(const QString &cadena) ;
>
> Q_INVOKABLE bool checkElement(const QString &cadena) ;
>
>
>
>
> signals:
>
>
> public slots:
>
> private:
> bloom_parameters _parameters ;
> bloom_filter _filter;
> bool _filter_charged;
> QString _k;
> };
>
> #endif // BLOOMFILTERS_H
>
>
>
> An I try to connect this with my sailfish application with the code:
>
> QGuiApplication *app = SailfishApp::application(argc, argv);
> QQuickView *view = SailfishApp::createView();
> Bloomfilters  * bloomfilters = new Bloomfilters();
> view->rootContext()->setContextProperty("Bloomfilters",
> bloomfilters);
> view->setSource(SailfishApp::pathTo("qml/bloomfilter.qml"));
> view->showFullScreen();
> return app->exec();
>
> But this is not working.
>
> Someone have any idea about what am I doing wrong?
>
> Best Regards!
>
>
>
> ___
> SailfishOS.org Devel mailing list



-- 
Luciano Montanaro

Anyone who is capable of getting themselves made President should on
no account be allowed to do the job. -- Douglas Adams
___
SailfishOS.org Devel mailing list


[SailfishDevel] QML C++ Integration not working in Sailfish

2014-02-25 Thread antonio . cano . gomez
Hi,

I am trying to do a simple Sailfish aplication that uses a c++ library.  I try 
to connect my qml code with the C++ code.

First I create QObject extended library:


#ifndef BLOOMFILTERS_H
#define BLOOMFILTERS_H


#include 
#include "svn/bloom-read-only/bloom_filter.hpp"

class Bloomfilters : public QObject
{
    Q_OBJECT


public:
    Q_INVOKABLE  void generateFilterInvokable2() const ;
    Q_INVOKABLE  void generateFilterInvokable(const QString &cadenaK, const 
QString &cadenaM) const ;


    explicit Bloomfilters(QObject *parent = 0);

    void generateFilter() ;

    Q_INVOKABLE void insertElement(const QString &cadena) ;

    Q_INVOKABLE bool checkElement(const QString &cadena) ;




signals:


public slots:

private:
    bloom_parameters _parameters ;
    bloom_filter _filter;
    bool _filter_charged;
    QString _k;
};

#endif // BLOOMFILTERS_H



An I try to connect this with my sailfish application with the code:

    QGuiApplication *app = SailfishApp::application(argc, argv);
    QQuickView *view = SailfishApp::createView();
    Bloomfilters  * bloomfilters = new Bloomfilters();
    view->rootContext()->setContextProperty("Bloomfilters", bloomfilters);
    view->setSource(SailfishApp::pathTo("qml/bloomfilter.qml"));
    view->showFullScreen();
    return app->exec();


But this is not working.

Someone have any idea about what am I doing wrong?

Best Regards!___
SailfishOS.org Devel mailing list