JWE Project Ideas: Difference between revisions

no edit summary
No edit summary
No edit summary
Line 1: Line 1:
<!-- This file should be edited at https://wiki.octave.org/JWE_Project_Ideas -->
<!-- This file should be edited at https://wiki.octave.org/JWE_Project_Ideas -->
== GUI ==
=== Improve interface for communication between GUI and interpreter ===
Currently, communication between the GUI and the interpreter
mostly happens when the interpreter is otherwise idle and waiting
for user input at the command prompt and the implementation is
somewhat complicated.  We need to determine whether this is the
best we can do, or if there is some other implementation that
would be more flexible and reliable.
=== [[GUI terminal widget|GUI command window]] ===
The implementation of the GUI command window for Unix-like systems
is a completely separate implementations from the one used on
Windows systems.  There should be only one, and the GUI should be
completely in charge of user input and output.  This will probably
require implementing some kind of simple output pager internally
instead of using an external program, but overall user interaction
could be improved.
=== GUI code editor ===
Make it possible to use external editors such as Emacs, vim, or
others with the GUI in addition to Octave's built-in code editor
== Graphics ==
=== Generating publication-quality figures ===
Generating EPS or PDF versions of figures needs improvement.
=== OpenGL graphics system issues ===
* Scaling plot data values/ranges to fit in single-precision OpenGL values
* Performance issues
* Lack of WYSIWYG
=== Duplication of effort with FLTK and Qt widgets ===
With the rest of the GUI using Qt widgets, we should eliminate the FLTK plotting widget.  It duplicates functionality and requires additional effort to maintain.  Maybe we no longer need the octave-cli binary (the one that is not linked with Qt libraries)?
=== Threading issues for Qt graphics toolkit ===
It seems likely that the locking of the gh_manager object is insufficient or even incorrect in some cases.
=== Use classdef for graphics objects ===
This is a large project, but one that will likely have to be tackled at some point.


== Language and functions ==
== Language and functions ==
Line 147: Line 97:


Would it be difficult to provide these objects?
Would it be difficult to provide these objects?
== GUI ==
=== Improve interface for communication between GUI and interpreter ===
Currently, communication between the GUI and the interpreter
mostly happens when the interpreter is otherwise idle and waiting
for user input at the command prompt and the implementation is
somewhat complicated.  We need to determine whether this is the
best we can do, or if there is some other implementation that
would be more flexible and reliable.
=== [[GUI terminal widget|GUI command window]] ===
The implementation of the GUI command window for Unix-like systems
is a completely separate implementations from the one used on
Windows systems.  There should be only one, and the GUI should be
completely in charge of user input and output.  This will probably
require implementing some kind of simple output pager internally
instead of using an external program, but overall user interaction
could be improved.
=== GUI code editor ===
Make it possible to use external editors such as Emacs, vim, or
others with the GUI in addition to Octave's built-in code editor
== Graphics ==
=== Generating publication-quality figures ===
Generating EPS or PDF versions of figures needs improvement.
=== OpenGL graphics system issues ===
* Scaling plot data values/ranges to fit in single-precision OpenGL values
* Performance issues
* Lack of WYSIWYG
=== Duplication of effort with FLTK and Qt widgets ===
With the rest of the GUI using Qt widgets, we should eliminate the FLTK plotting widget.  It duplicates functionality and requires additional effort to maintain.  Maybe we no longer need the octave-cli binary (the one that is not linked with Qt libraries)?
=== Threading issues for Qt graphics toolkit ===
It seems likely that the locking of the gh_manager object is insufficient or even incorrect in some cases.
=== Use classdef for graphics objects ===
This is a large project, but one that will likely have to be tackled at some point.


=== Miscellaneous ===
=== Miscellaneous ===