octave-maintainers
[Top][All Lists]
Advanced

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

Re: GUI work (was: Graphical help browser)


From: John Swensen
Subject: Re: GUI work (was: Graphical help browser)
Date: Tue, 25 Nov 2008 14:11:00 -0500


On Nov 25, 2008, at 12:11 PM, Søren Hauberg wrote:

tir, 25 11 2008 kl. 10:48 -0600, skrev Jordi Gutiérrez Hermoso:
QtOctave already
has an HTML documentation browser,

But can you use it without using QtOctave? Personally, I would find it
very limiting to be using QtOctave. I should say that developing a HTML
documentation browser is trivial these days, so this really isn't much
work.

and I've been spending the past few
days reading about Qt and ptys and jwe's idea[1] of how to properly
implement a GUI so that I can try to fix QtOctave's Terminal widget,
and much of QtOctave, which will probably have to be substantially
changed in order to properly interact with Octave; I still haven't
seen how encapsulated is the Octave interaction. I am a bit dismayed
that there doesn't seem to be a ready-made Qt widget to do what jwe
suggests, although it clearly can be done in Qt, as KDE applications
like Kate or Kdevelop embed a console which interacts with ptys. I am
hoping that I may be able to rip out that KDE code and use it with
QtOctave instead of the current implementation.

From what I understand the VTE widget for gtk does what is need, and
that this is what John Swensen is using in his work. The impression I
have is that QtOctave does all the easy stuff well, but fails completely at all the though problems. On the other hand, John Swensens stuff seem
to handle the hard stuff much better. So if you want to help on an
existing project, I would recommend help out John instead of working on
QtOctave (but that's just my opinion).

Søren


For my part, I would not be enthused about learning a new UI toolkit (e.g. QT). Several years ago I messed around with QT and got very frustrated with the whole SIGNAL/SLOT mechanism and the preprocessor hoops you have to jump through. I was a much less experienced programmer back then, so that may have added to my frustrations, but I did not have the same problems when trying to pick up GTK/GTKMM.

Once of the biggest plus sides of GTK for this application is the VTE terminal widget. On the UNIXy platforms, it does work with PTYs and on the Windows side it uses pipes (or something similar). The nice thing is that regardless of platform the behavior is the same.

I plan on using the help browser from Søren. I will probably help to by either trying to implement the Xapian algorithm in lookfor, or making a compile time check for xapian and simply have lookfor conditionally use Xapian. Either way, as you suggest, I am not going to duplicate effort by writing my own help browser. This will give me more time (albeit limited) to work on OctaveDE.

Since I am fairly ignorant on the features of QtOctave, I would be interested to know what QtOctave has that OctaveDE doesn't have. Maybe QtOctave really is that far ahead of OctaveDE and would merit me biting the bullet and switching UI toolkits (you'll probably have to do a good job of convincing me though ;) ). I would also be interested to hear from users concerning which feature(s) they would like to see most in an IDE. For your information, here is a list of OctaveDE features and what I estimate their completion to be.
1) Octave running in a VTE terminal widget (100%)
2) Command history (100%)
3) Workspace variables (100%)
4) Syntax-highlighting editor (50% : there are still some bugs and debugging isn't incorporated yet. I would also like better emacs keybindings, search capability, code completion, blah, blah blah, but that is a ways off) 5) Integrated plotting (40% : I still have a bit to implement concerning how windowing events get reported back to new property system in Octave) 6) Octave server (80% : This is still ongoing, since I assume more interaction between Octave and an IDE may be necessary in the future). The octave_server class has the following capabilities, although some of them have not been incorporated into the IDE yet: a) Get a list of names and details of variables in the current scope b) Request a complete variable(s) from Octave (not implemented in the IDE yet, but Iplan to have a variable preview window)
     c) Get a list of octave command history
d) Add, remove, and modify breakpoints (this is not implemented yet in the server class, but with the new bp_table singleton in the Octave sources, I have done it in the non-threadsafe manner from OctaveDE)

John Swensen












reply via email to

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