[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH #8316] Variable Editor
From: |
Rüdiger Sonderfeld |
Subject: |
[PATCH #8316] Variable Editor |
Date: |
Thu, 13 Feb 2014 22:20:46 +0100 |
User-agent: |
KMail/4.11.5 (Linux/3.11.0-15-generic; KDE/4.11.5; x86_64; ; ) |
Hello,
I've started writing a Variable Editor for the new GNU Octave GUI. I have an
initial patch ready and submitted here:
https://savannah.gnu.org/patch/index.php?8316
(Quoted from above)
It is not finished but I wanted some input before continuing with it.
The biggest issue right now is that the editor does not detect changes
happening to the variable inside Octave. It will continue displaying the old
value. I don't know if there is a way in Octave to intercept changes to
certain variables or how this could be implemented. The simplest way would be
to update the display completely once `octave_link::set_workspace' gets
called. But this would only update the view when Octave has finished and is
waiting for new input. Maybe that would be good enough at least for an initial
release.
There are some other issues
Paste not working
Inserting/removing rows/cols not working
No support for structure arrays (completely untested)
No subeditor opens for internal structures (but the input is eval'd so it
is somewhat usable at the moment)
Plotting doesn't work for cell arrays.
Delete does not support shifting and always inserts 0 (should be [] for
cell arrays)
No variable from selection or transpose feature
No window splitting
No data brush
No printing
No undo support
No sort
...
And a potential thread safety issue. I call `symbol_table::varval' in
`main_window' from the GUI thread to get the `octave_value'. It could be
safely passed via signal but that would require registering `octave_value' as
Qt metatype and I don't know what implications that would have (See
http://qt-project.org/doc/qt-4.8/qmetatype.html#qRegisterMetaType).
Please give it a try and comment.
Regards,
Rüdiger
- [PATCH #8316] Variable Editor,
Rüdiger Sonderfeld <=