Status: Open

 

ItemFileDescriptionConsensusWhoStatusNotes
1isolineparams.cppIsolineParams::validateIsoControls() accesses every 2D and 3D variable in the data set whether they are needed or notyAlanDoneVariable bounds are obtained as needed.
2isolineparams.cppreplace new3DIsoControls[i]->setVarNum(i) with setVarName(). Don't use variable indices when their meaning can change from data set to data set, session to session.yAlanDoneAlan did evaluate.
3isolineparams.cppDoes there need to be a distinction made between 2D and 3D IsoControls?  A lot of redundant code could be collapsed if they were not treated separately.yAlanDone 
4isolineparams.cppType 1 validation in IsolineParams::validateIsoControls() appears to be reconciling different variables by using their integer offset in the data set. Shouldn't we be using the variables names, not the offset? I.e. The variable "temp" probably has the same meaning in two different data sets, but may have different offsets.?AlanDoneAlan will evaluate.
5isolinerenderer.cppMove responsibility for cache management inside of isolinerender.cpp. Clients of the renderer classes shouldn't have to know what changes necessitate cache invalidation. They shouldn't even have to know that a renderer uses a cache. Renderers that maintain a cache should retain parameter values for parameters that would force an update of the cache.yAlanDone 
6isolinerenderer.cppRenderer's should be subordinate to ControlExec. I.e. They shouldn't have access to it.yAlanopendiscuss ion context of control exec review
7isolineeventrouter.cppMemory leaks: GLIsolineWindow, Histo,yAlanDone Qt is freeing the GLIsolineWindow memory, but not Histo.
8isolineeventrouter.cppCan _dataMgr ever be NULL? Should the render event routers be enabled when data aren't loaded?yAlanDoneChange tests for existence to asserts, or remove unnecessary tests.
9isolineeventrouter.cppisolineeventrouter is really long and complex (~1200 lines), but the GUI it supports is fairly typical of all of the tabs. What can be done to simplify so that other render event routers aren't as long and complex?yAlanDoneReorganize the cpp file to place common elements together (e.g. by subtabs) and document them a such
10isovalueeditor.cppLots of memory leaks.n  All the QObjects in the editor get deleted when their parent is deleted.  Read the Qt documentation on QObjects.
11isolinerender.cppUnnecessary ControlExec access. E.g. uses ControlExec to get DataMgr inside buildLineCache(), which is passed DataMgr as an argument.y Done 
12isolinerender.cppMake invalidateLineCache(), buildLineCache(), etc. privatey Done 
13isolineeventrouter.cpp, isolinerenderer.cppCheck for NULL before deleting pointers (e.g. in destructor)y Done 
14isolineeventrouter.cppRemove ForceRenderer requirement. Specialize QWidget::Event()??y DoneForceRender has been removed.  Now various Qt events will trigger rerender.  However transfer function edits do not necessarily trigger a Qt event so these now cause a rerender upon completion.
15glisolinewindow.cppRendering code duplicates isolinerenderer. Have isolinerenderer perform rendering for tab and eliminate/reduce glisolinewindow.cpp? postpone 
16isolineparams.cppResource mgt: memory allocated in validateIsoControls is never freedn  These are ParamsBase instances that get destroyed with the Root ParamNode.

 

 

  • No labels