[Kde-bindings] Building QtRuby for Qt/Embedded

Richard Dale rdale at foton.es
Sat Feb 20 17:03:42 UTC 2010


On Saturday 20 February 2010 04:57:21 pm Steffen Beyer wrote:
> On Fri, 19 Feb 2010 18:24:35 +0000, Richard Dale wrote:
> > That looks good. I think you will need to remove the QtOpenGL
> 
> > initialization for the qtopengl smoke lib from qtruby.cpp:
> Had to remove some more stuff:
> 
> --- qtruby.cpp.orig	2010-02-20 16:51:56.000000000 +0000
> +++ qtruby.cpp	2010-02-20 16:52:33.000000000 +0000
> @@ -49,7 +49,7 @@
>  #include <smoke/qtgui_smoke.h>
>  #include <smoke/qtxml_smoke.h>
>  #include <smoke/qtsql_smoke.h>
> -#include <smoke/qtopengl_smoke.h>
> +// #include <smoke/qtopengl_smoke.h>
>  #include <smoke/qtnetwork_smoke.h>
>  #include <smoke/qtsvg_smoke.h>
>  #include <smoke/qtdbus_smoke.h>
> @@ -2113,10 +2113,12 @@
>              rb_ary_push(class_list,
> rb_str_new2(qtsql_Smoke->classes[i].className));
>      }
> 
> +    /*
>      for (int i = 1; i <= qtopengl_Smoke->numClasses; i++) {
>          if (qtopengl_Smoke->classes[i].className &&
> !qtopengl_Smoke->classes[i].external)
>              rb_ary_push(class_list,
> rb_str_new2(qtopengl_Smoke->classes[i].className));
>      }
> +    */
> 
>      for (int i = 1; i <= qtnetwork_Smoke->numClasses; i++) {
>          if (qtnetwork_Smoke->classes[i].className &&
> !qtnetwork_Smoke->classes[i].external)
> @@ -2339,7 +2341,7 @@
>      init_qtgui_Smoke();
>      init_qtxml_Smoke();
>      init_qtsql_Smoke();
> -    init_qtopengl_Smoke();
> +    // init_qtopengl_Smoke();
>      init_qtnetwork_Smoke();
>      init_qtsvg_Smoke();
>      init_qtdbus_Smoke();
> @@ -2350,7 +2352,7 @@
>      INIT_BINDING(qtgui)
>      INIT_BINDING(qtxml)
>      INIT_BINDING(qtsql)
> -    INIT_BINDING(qtopengl)
> +    // INIT_BINDING(qtopengl)
>      INIT_BINDING(qtnetwork)
>      INIT_BINDING(qtsvg)
>      INIT_BINDING(qtdbus)
> 
> Now I'm stuck here:
> 
> [root at centibel ~]# ruby -r Qt -e exit
> ASSERT failure in QList<T>::operator[]: "index out of range", file
> /usr/local/include/QtCore/qlist.h, line 447
> Aborted
Hmm, not sure what this is - can you try running under gdb and getting a stack 
trace of where the assert fails?

> Another point: usually I start an application with the "-qws" parameter to
> let it act as "master". Does this still work for QtRuby applications?
Yes, it should work. When you initialize an app with Qt::Application.new(ARGV) 
whatever is in ARGV should be passed to Qt.

-- Richard



More information about the Kde-bindings mailing list