octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Qt/gui on MacOSX (was: 4.0 release goals)


From: Ethan A Merritt
Subject: Re: Qt/gui on MacOSX (was: 4.0 release goals)
Date: Mon, 5 Nov 2012 14:14:01 -0800
User-agent: KMail/1.13.5 (Linux/2.6.33.7-desktop-2mnb; KDE/4.4.5; i686; ; )

On Monday, November 05, 2012 01:57:17 pm Michael Goffioul wrote:
> On Mon, Nov 5, 2012 at 3:58 PM, Ben Abbott <address@hidden> wrote:
> 
> >
> > On Nov 5, 2012, at 3:50 PM, Michael Goffioul wrote:
> >
> > > On Mon, Nov 5, 2012 at 3:45 PM, Ben Abbott <address@hidden> wrote:
> > > Octave exists during the call "QApplication application (argc, argv);"
> >  at line 87 in libgui/src/octave-gui.cc
> > >
> > >  80 int
> > >  81 octave_start_gui (int argc, char *argv[])
> > >  82 {
> > >  83   dissociate_terminal ();
> > >  84
> > >  85   setenv ("GNUTERM", "qt", 1);
> > >  86
> > >  87   QApplication application (argc, argv);
> > >
> > > With lack of experience with c++, I don't know how to go further.
> > >
> > > It looks like yet another hard limitation of Mac OS X. If Qt decides to
> > exit the app, there's probably a good reason for it, and it's also probably
> > difficult (or impossible) to work around as-is. You might try to debug
> > further with debug version of Qt, but I'm not sure it's worth. Now I'm
> > wondering what can be done to make it work under Mac OS X. Maybe we should
> > simple re-exec octave with a specific flag to avoid re-forking?
> > >
> > > Michael.
> >
> > Gnuplot overcame the same (similar?) problem.  I asked Ethan Merritt for
> > an overview.  See below.
> >
> 
> Yes, I've read if from one of your previous mails, but that's not really a
> "solution". It involves running the graphics system in a separate process
> and communicate with the base program through pipes. That's typically what
> we tried to avoid by using a in-process separate thread. 

I didn't like it as a solution for gnuplot either.
That's why I hesitated to call it a "fix".
Nevertheless, that's what it took for both the wxt and qt terminals
to get them running on OSX.

> Note that using
> that approach in gnuplot actually doubles the data transfer when using it
> from octave: first to transfer data from octave to gnuplot, then to
> transfer data from gnuplot to the separate process running the Qt terminal.
> 
> Michael.

Not necessarily.  I'm not up to speed on what your plans are, but if the
idea is to bypass gnuplot you could still in principle decide to use
gnuplot_qt as the graphics engine and drive it directly from octave without
going through gnuplot proper.  That is, you could piggyback on the 
gnuplot|gnuplot_qt API.   Still a separate process, but only one rather
than two.

In any case, if you come up with some alternative that allows running
a only single process on OSX I'd very much like to hear about it.
I was never able to find an OSX guru who could produce such a creature.

See for example:
http://cocoadev.com/wiki/ForkSafety
http://stackoverflow.com/questions/7379419/fork-cocoa-process-and-re-init-cocoa-how

        Ethan
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]