CIBC:Documentation:SCIRun:DevTasks:QtMigration
Jump to navigation
Jump to search
Contents
SCIRun Qt Migration Project
Git Help
- Git community book
- Quick git reference site
- branching and merging and sharing with remote repositories are especially useful
Deployment Help
Qt
OS X Bundles
NSIS
User Suggestions
CIBC:Documentation:SCIRun:DevTasks:UserInput
Basic GUI Redesign
- Determine overall look and feel.
- Background color of network editor
- Placement of main window widgets--match current design at first?
- Redesigning major parts of the main window.
- Menu bar
- Context menus
- Toolbars
- Status bar
- Configuration panel
- Module Search
- Module progress indicators
- Module general settings: port caching, info on ports, general info: available in "drawer" subwidget
- Tooltips
- Command window
- CIBC:Documentation:SCIRun:DevTasks:SCIRunGuiFeatureList
Major Development Milestones
- ✓
Can add/delete module widgets - ✓
Can connect ports with connections in the GUI - ✓
Can execute dummy network (modules do nothing, stubbed with an execution time) - ✓
Can load/save srn file (using dummy module descriptions) - → All menu options/preferences work
- ✓
Can load/save srn file (using real module descriptions) - ✓
Can execute a basic network (file i/o, matrix math, no graphics)- Question: to achieve this, do we need to hook up all current network plumbing, or just have a minimal set of code to get this working? Perhaps the latter can be step A, while the former is step B.
- ✓
Can execute basic multithreaded network - ✓
Volume rendering == ViewScene module. - ✓
Can execute network with graphical output - Can walk through entire SCIRun tutorial!
- At this point, all essential modules should be converted. Can begin converting other individual modules.
Core
- Discuss memory model for Matrix/Arrays/etc.
- Move namespace SCIRunAlgo into SCIRun::Algo to remove need for using directives in headers.
- Replace Thread library with Boost.
IO
- is there a way we can display a brief blurb describing file importer and exporter plugin information (i.e. show a short description of the file types supported, file extensions etc.)?
- change file importer and exporter plugin function pointer table to functors
Dataflow
- Execute all button in network editor: triggers execution even if network is currently executing. Queue (or block?) request for execution until current execution is done.
Graphics and Visualization
- Be able to select or click on objects in renderer and get information i.e. node index, position etc.
OpenGL
- move all OpenGL code into Core (and intermediate layer as needed)
Externals
is GLEW still needed for OpenGL support, and if so, which version?- handled through Spire- verify that libpng and zlib are still needed, if so, update
- better XML parsing library (libxml2 is overly complex and buggy)
Boost
- Boost is an external project in the CMake build
- In case Boost needs to be built outside of SCIRun: Boost build notes
Build
- merge all generated headers into a single generated header file
Testing
- Add regression testing feature to diff numerical output, either through text files or of matrix objects directly.
Core
- Isosurface algorithm is very slow and should be rewritten
Error Handling and Exceptions
- SCIRun exceptions could use an overhaul.
- SCIRun assertions could also use an overhaul.
- The same kind of assertions need to be used throughout the code. Currently, we're using:
- assert from cassert
- SCIRun's custom ASSERT macros
- Boost static assert (perhaps it would be best to replace all other asserts with Boost assert utilities?)
Modules
Possible Problem Modules
- ShowMatrix: this module should be completely rewritten
- CreateMatrix: bug #327
- GeneratePointSamplesFromFieldOrWidget: spinner boxes in both tabs are not editable. This is really annoying if one wants to generate a large number of samples.
- GeneratePointSamplesFromField: The execution pattern for this module should be improved. Also, SCIRun test networks are using GeneratePointSamplesFromFieldOrWidget, so there are no tests for this module.
- CreateAndEditColorMap: the GUI is not very usable and can be difficult to navigate.
Module Improvements
- See if it's possible to encapsulate common functionality in Matlab Importer modules in a parent class. Same with Exporter modules.