On Wed, Jun 15, 2016 at 5:40 AM, Benoît Minisini
<gam...@users.sourceforge.net> wrote:
> Le 14/06/2016 13:21, Ian Haywood a écrit :
>>
>> The problem quite complicated. Gambas looks for Qt4 and Qt5. If both are 
>> found,
>> Qt4 is loaded.
>
> No, if Qt5 and Qt4 are present, Qt5 is used.
>
> The choice between both is implemented in the gb.gui.qt component. So if
> you have ideas about how to enhance the algorithm, tell me!
From the 3.8.4 sources: main/lib/gui.qt/main.c
I interperse my "translation", tell me where I'm wrong

    59         if (use == USE_NOTHING)
so GB_GUI hasn't been set
     60         {
     61                 use = USE_GB_QT4;
 try Qt4
     63                 env = getenv("KDE_FULL_SESSION");
     64
     65                 if (env && !strcmp(env, "true"))
     66                 {
     67                         env = getenv("KDE_SESSION_VERSION");
     68                         if (env)
     69                         {
     70                                 if (strcmp(env, "4") == 0)
     71                                         use = USE_GB_QT4;
     72                                 else if (strcmp(env, "5") == 0)
     73                                         use = USE_GB_QT5;
     74                         }
     75                 }
     76         }
     look for some KDE variables (which won't be set at all on non-KDE systems)
     78         switch (use)
     79         {
     80                 case USE_GB_QT4: comp = "gb.qt4"; break;
     81                 case USE_GB_QT5: comp = "gb.qt5"; break;
     82                 default: comp = "gb.qt5"; break;
     83         }
turn setting constant into a string (remember we have set to
"USE_GB_QT4" above so "gb.qt4" will always be selected here)

     85         if (GB.Component.Load(comp))
try the first one
     86         {
     87                 comp2 = use == USE_GB_QT5 ? "gb.qt4" : "gb.qt5";
 that didn't work, try the other
     89                 if (GB.Component.Load(comp2))
     90                 {
fail if that doesn't work either.
     91                         fprintf(stderr, "gb.gui.qt: error:
unable to find any QT component\n");
     92                         exit(1);
     93                 }

my patch is very, very simple: line 61 becomes "use = USE_GB_QT5;",
and so Qt5 is loaded first.

Ian

------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports. http://pubads.g.doubleclick.net/gampad/clk?id=1444514421&iu=/41014381
_______________________________________________
Gambas-user mailing list
Gambas-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gambas-user

Reply via email to