|
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 itvery limiting to be using QtOctave. I should say that developing a HTMLdocumentation 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, andthat this is what John Swensen is using in his work. The impression Ihave is that QtOctave does all the easy stuff well, but fails completely at all the though problems. On the other hand, John Swensens stuff seemto handle the hard stuff much better. So if you want to help on anexisting project, I would recommend help out John instead of working onQtOctave (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 historyd) 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
[Prev in Thread] | Current Thread | [Next in Thread] |