Bug List

Directory /builddir/build/BUILD/HippoDraw-1.21.1/python/

@ hsimple.py and pl_exp_test.py, don't do anything under run_test_scripts.py. (This isn't a bug. run_test_scripts.py launches scripts using the import command. Since hsimple.py and pl_exp_test.py are launched by SciPy_demo.py before they are launched by run_test_scripts.py, Python's import mechanism prevents the scripts from being re-run.)

Member aboutToClose (CanvasWindow *window)
Mac only. Should not quit application on last window close. That is not the Mac OS X standard.

Member addCut ()
@ Only works on X axis.

Member addDataRep (PlotterBase *, hippodraw::DataRep *) const
Shouldn't need to call checkAxisScaling here since the CompositePlotter has already done it. Remove call and test.

Member addDisplay (QtDisplay *display_wrap)
@ why is variable yes ignored?

Class BinnerAxisLog

Resolve this issue. Is plotting the log(x) on linear scale the same as binning x on log scale?

Class BinToBeach
@@ This color map doesn't look the same as in IDL.

Class BinToMacStyle
@@ This color map doesn't look the same as in IDL.

Member calcAlphaBeta (std::vector< std::vector< double > > &alpha, std::vector< double > &beta)
Following only works for 1 dimension coordinate.

Member calcPrinterMetrics (QPaintDevice *)
@@@ Talking the default printer at start-up causes large delays if printer is not available on the network.

Class CanvasView

@@@ The following sequence causes a crash: Run histogram.py, edit->copy, edit->paste, select with mouse, and edit->paste again.

@@@ A copy followed by past of GroupView cause crash. Other crashes are related to this one.

@@@ Only text rep box tracks the target plot when it is moved.

Canvas size doesn't automatically enlarge when size of a view is dragged to be larger than canvas.

Class CanvasWindow

@ After using edit->paste, trying to selected the pasted plot leads to selecting the original.

@@@ It appears that if one cuts a cut from the canvas, then the target doesn't get its cut removed.

If a document could not be opened, error messages displays, but one get a new empty canvas window. It is not throwing an exception which is read to be caught.

The View/Cut empty pages button doesn't work and is not enabled.

@@ Opening a document that references a ROOT array variable doesn't work.

Member clear ()
Even thou clear() passes, it is possible that the window has already been closed, like when the application has terminated.

Member contentsMouseMoveEvent (QMouseEvent *)
@@@ Cuts for functions are not controlled by the mouse events.

Member contentsMousePressEvent (QMouseEvent *)
Ctrl and shift click do not select plots like Windows selects files.

Class ContourPointRep

@ Contours should be smoother. Try function2d.py to see contours of double Gaussian.

Member copySelectedToPasteboard ()
If plot being copied is target of a cut, then cut should also be copied.

Member createDisplay (const std::string &name, const DataSource &tuple, const std::vector< std::string > &bindings) const
If Image DataRep comes from file other than FITS file, then it is not being handled.

Class CutPlotter

If one removes a cut by cutting it from the canvas, the cut does not get removed from its target.

If cut range is set from python outside the display range, the cut range color is displayed outside the axis representation. Try function_empty.py.

Fitting a function seems to fit only the data under the cut.

Class DataRep

@@@ Function cut does not get restored from document.

Member derivByParm (int i, double x) const
Make this function pure when problem compiling python/FunctionWrap under Windows is solved.

Member derivByParm (int, double) const
Should attempt to call derivByParm to implement hasDerivatives()

File DisplayController.cxx
how come HAVE_CFITSIO but no HAVE_ROOT

Member draw (QPainter &)
Updating the Inspector from this method is disabled. However, not updating allow changes from Python to not be seen from the Inspector. Enabling it makes too many updates to the inspector when changes are made from the GUI. This problem needs to be resolved.

Member draw_Text (const std::string &s, float x, float y, float fontsize, float angle, char xp, char yp, const FontBase *)
Text size doesn't come out the same as on screen.

Member drawMethod (const std::vector< double > &x, const std::vector< double > &y, int opt1, int opt2)
Style and color arguments are not used.

Member drawMethod (const std::vector< double > &x, const std::vector< double > &y, int opt1, int opt2)
Should style and color arguments be used?

Member drawMethod (const std::vector< double > &x, const std::vector< double > &y, int opt1, int opt2)
Style and color arguments are not used.

Member drawProjectedValues (ProjectorBase &projector, ViewBase &view)
Should split the line if
is in the string.

Member drawText (const std::string &s, float x, float y, float fontsize, float angle, char xp, char yp, bool resize, const FontBase *font, const Color *color)

@@@ Does not use color value.

Does not use the resize parameter.

Member drawViewLines (const std::vector< double > &x, const std::vector< double > &y, hippodraw::Line::Style style, bool color, float size)
Does not use the color parameter

Member drawViewLines (const std::vector< double > &x, const std::vector< double > &y, hippodraw::Line::Style style, bool color, float size)
bool argument is not used.

Member drawViewMethod (const std::vector< double > &x, const std::vector< double > &y, int opt1, int opt2)
Style and color arguments are not used.

Member drawViewMethod (const std::vector< double > &x, const std::vector< double > &y, int opt1, int opt2)
style and color arguments are not used.

Member drawWithPixmap (QPainter &painter)
The plotting region for Color Plots is too small.

Member execute ()
When restoring and refitting a function, it appears that this member function is called. Should only be called once.

Member export_CircularBuffer ()
@@ Probably needs wrapper for application lock

Member export_StatedFCN ()
@@@ Can export objective value but not degrees of freedom.

Class FigureEditor

@@@ Mac OS X only, printer margins not showing in correct place on the Canvas, however printing is working fine.

Member fillProjectedValues (DataSource *ntuple, bool in_range=false) const
bool Parameter is not used

Member fillProjectedValues (DataSource *ntuple, bool in_range=false) const
Should be able to uncomment the commented out code now that things got fixed in implemnting MeshProjector.

Member fillRange (unsigned int column, Range &) const
HUGE_VAL doesn't pass gcc on the Mac if -pedantic is used.

Member fillShape (std::vector< int > &v, unsigned int column) const
If a column is an added one, shape is assumed to be rank 1. Need to add support for rank > 1 added columns.

Class FitsController

@@@ Writing to file under cuts doesn't seem to work on Windows with cfitsio 2.5.

Member functionAdd ()
@@@ If the fitter setting is set to one that needs integration and target DataRep is one that is not binned, then adding a function causes a crash.

Class FunctionRep

@@ The function should be drawn in blue so it can be see on filled histogram.

Member getAverage (hippodraw::Axes::Type axis) const
Averge value might be wrong, or data is bad. In test_FitsImage.py, the left had EGRET plot gets overage x and y of 0.0, while the right hand plot is 0.25 (TO REMOVE: not a bug)

Member getDisplays () const
@@ The displays do not seem to come out in same order that they were inserted.

Member getFunctionRep (const PlotterBase *plotter, const DataRep *data) const

@@@ When multiple independent functions are allowed, this method will fail.

If multiple DataRep exists, each with its own functions, then this function will probably not return the right one. Use datareps.py to demonstrate this. The only use of this function is Inspector itself, thus should be possible to remove this function altogether.

Member getNTupleNames (const std::string &)

Returns all top level names instead of only the ones that could be a DataSource.

@@@ If can not open file, should thrown an exception. When fixing this bug, check also the FitsController for same bug.

Member getRMS (const PlotterBase *plotter, Axes::Type axis, int index=0) const

Only works for the X axis.

Only works for the X axis.

Member getRow (unsigned int i) const
@@@ If a column has an array varible, then get seg fault.

Member getZValue (double x, double y) const
Not sure we're picking up the right bin. This might be cause of last two plots in test_FitsImage.py not having the same average value.

Class HammerAito

@@ The right hand side of the axis box is not drawn. ( To remove: probably not a bug, since -180 and +180 is the same edge and should not be drawn twice. )

Class HammerAito2

@@@ The projection near the poles has incorrect white space. ( To remove: color box size changed when transformation applied )

@@ The right hand side of the axis box is not drawn. ( To remove: probably not a bug, since -180 and +180 is the same edge and should not be drawn twice. )

Member handleCutPlotter (const XmlElement *element, CutPlotter *plotter)
Old documents, before intro of function cuts, can not be read as they will be missing the cut representation.

Member helpAbout ()
Mac only. About menu when launch with .app does not have the same case as the application claims to be.

Class Image

@@ Z axis is not autoscaling like problem with mesh used to be.

@@ Labels of Z values, and perhaps others if range is under two orders of magnitude and values are very small. Try sip/z_label.py to see it. Might convert this script to one that can be put in testsuite

Member initFromFile (const std::string &filename)
@@@ After initializing from file, the Window appears and responds like it has been changed.

Class Inspector

@@@ Can not change DataSource of plot if function has been applied.

@@@ When Applying all cuts to DataRep that comes from different Ntuple, should raise Dialog to ask whether to not do it, or do it with same set of cut names and values, but from different datasource.

@@@ When adding DataRep to another and first has cuts applied, then raise dialog to ask user if he wants same cuts applied or not.

@@@ When color map is changed on plot with multiple DataReps objects, it should be changed on all on them.

@@@ When plot has a function cut, trying to add and existing data cut causes crash.

@@@ For test_FitsWriting.py, the time cut doesn't show up in Cuts panel when selecting the color plot.

@@@ On axis tabbed panel, changing the high range via text box doesn't set the right bin width. So the range appears set in the box, but it is wrong. Use ConstantModelFit.py, autoscale, then set range.

@@@ In axis tabbed panel, changng Y bin width on color plot increases range excessively.

@@ On axis tabbed panel, zoom pan doesn't work for static histograms.

@@ When changing DataSource on multiple plots, and some could not be changed, one gets no warning.

@@ stats panel documentation image needs updating.

@ In Stats tabbed panel, the STD button is disabled.

@ GUI On the Axis tabbed panel, the low and high sliders have large slider handle rectangle than the width and offset ones.

@@ On cuts tabbed panel, switching to zoom pan doesn't work if one end of cut range is at full range.

@@@ On the Axis tabbed panel, when in zoom / pan mode, the position slider is hard to control when X axis is in log scale.

In Data tabbed panel, the title doesn't get set if there are multiple data reps on plot. Probably should take title of first one. What if the data reps comes from two different data sources, then what title is used?

On empty DataSource, the axis tabbed panel doesn't show the ranges etc. Use empty.py to see it.

@ Access to adjustment of fitting cut is not available from the inspector if other cuts have been applied to the same display.

@ Adjusting other cuts also affects the fitting cut.

@ Can not compile with gcc 2.96 because of use of ostringstream.

@ On data tabbed panel, the Add and Remove buttons should be disabled when not appropriate, or info dialog should pop up when used in correctly.

@@@ Trying to change color on display that uses color does nothing. Should bring up an information dialog.

When changing the DataSource on a plot which has a cut, the DataSoruce of the cut and all its targets is also changed without warning.

On Plot tabbed panel, show box edges should be disabled if no boxes.

After saving and loading a variable 3 color scale, it is different from the original one. ( Looks like variable rainbow ).

@ Have inspector notice that a DataSource have been added via the Python interface without having to click on the CanvasView.

Only first page is showed on Windows platform. Can't scroll down to see other plots. Have to maximize the canvas window.

Member isCompatible (const PlotterBase *plotter, const std::string &type) const
Part of being compatible is same aspect ratio or none.

Class LinePointRep

Qt 4 Only. The extra colored lines do not show up in axisBug.py

Class Mercator

@@ This transform draws outside of drawing rectangle. Use useBinner.py to see it.

Class Mercator2

@@ This transform draws outside of drawing rectangle. Use useBinner.py to see it.

Class MinuitMigrad

@ when fixxing a parameter, and doing a fit the tixed parameter doesn't show up as fixed in GUI, because the selected parameter changes.

Member normalizeTo (const ProjectorBase *target)
Only works if target projector is binning projector

Class NumArrayTuple

@@@ Currently the config/m4/pfkeb_have_numarray passes its test when Numeric is found instead of numarray.

Member objectiveValue ()
This function only works correctly if there is only one DataRep contained by the plotter. The constructor of this class should remember which DataRep object the function is attached to.

Member operator() (double x) const
Make this member pure when problem compiling python/FunctionWrap is solved.

Member paste (QCanvasItem *item)
If item is pasted second time, it should display even more.

Member pasteViews (const std::list< ViewBase * > &views)
When pasting from selectionboard, should not displace like when pasting from pasteboard.

Class PickTable

When entering a new entry, density should be calculated from entries/bin.

Member print ()
If user selects page range, it is ignored.

Class ProfileProjector

The total number of entries doesn't add up to the correct value. Try displays.py and look at stats panel.

Member PyCanvas ()
@@@ Can not use this method from Python, needs to be added so one can run in batch. Try running batchmode.py

File QtDisplay.cxx
Why do we have HAVE_ROOT but not HAVE_CFITSIO?

Class QtFileDialog

The dialog should remember the suffix of the last file selected.

@@ Mac OS X only. Doesn't show the available file types and odesn't open SVAC ROOT file with Qt 4.3, ok with Qt 3.

Class QtViewWidget

@@@ Displaying an empty DataSource leads to QFont error messages. See jira bug report.

Member removeDisplay (PlotterBase *plotter)
Need to also remove any views observing this plotter as cutSelectedToPasteboard does.

Member removeSelected ()
Need to remove any text displays that are observing this view as cutSelectedToPasteboard does. ( To remove: Text displays are removed together with plot display. But not through this function. )

Class RootController

@@@ testsuite/towercut.py needs fixing.

Class RootNTuple

@@ Unsigned short is not supported.

Member saveColumnFromNumArray (unsigned int index, boost::python::numeric::array array)
@@@ Should allow any type of DataSource if rank is acceptable.

Member saveNTuples (const std::string &prefix, const std::string &suffix)

Should throw exception if couldn't write to file, for example if the path is invalid.

If writing the DataSource to a file fails, no error is reported.

Member setAxisAttributes (TupleCut *cut, hippodraw::Axes::Type axis, const XmlElement *element) const
The axis argument is not used.

Member setBinWidth (const std::string &axis, double width)
Doesn't always work if display hasn't drawn yet.

Member setCutRange (bool yes=true)
@@@ This needs fixing for two dimension functions.

Member setFitCut (TupleCut *cut)
Works only for one dimensional coordinate.

Member setFunction (FunctionBase *function)
@@ Should be able to display a function without fitting. Use examples/fuction_rep.py to see the problem.

Member setPointRep (RepBase *pointRep)
@@ A particular DataRep can only accept a subset of all RepBase objects. Thus, this class should return the names of that subset which is already available to the Inspector and this argument should be replaced by a string.

Member setRange (const Range &, bool hold_width=true)
the cpp macro MATH_DEFECT is used in this method but configure doesn't define it.`

Member setRangePrivate (hippodraw::Axes::Type axis, const Range &range, bool scaled=false, bool adjust_width=true)
Parameter adjust_width is not used

Member setRepresentation (RepBase *pointrep)=0
This method is confusing because programmer may not know if it means PointRep or DataRep.

Member setZoomMode (bool flag)
Mouse tracking is not working.

Class St2DHistogram

This class is not save and restored to document file.

Class SymbolPointRep

The triangle is upside down, or should have both types.

A symbol can be drawn outside the drawing rectangle if for example, it is located at 0,0.

Class TextRepBase

@@@ On Mac OS X, he bounding box is not big enough.

Member update ()
@@ For the script, autontuple.py, this method behaves strangely.

Member updateAxisTab ()

When bin widths are the same, enables the width text box initially, but not after one toggles each data rep and returns to all active. Try it on datareps.py

Member viewZoomOut ()
Zooming out from the initial canvas, leave area where plots can be dragged, but they disappear.

Member writeImageToFile (unsigned int x, unsigned int y, const std::vector< double > &data, const std::string &filename)
Should throw exception if couldn't write to file, for example if the path is invalid.

Member writeNTupleToFile (const DataSource *source, const std::string &filename, const std::string &name, const std::vector< std::string > &column_list, const std::vector< const TupleCut * > &cut_list)

Should throw exception if couldn't write to file, for example if the path is invalid.

Should throw exception if couldn't write to file, for example if the path is invalid.

Should throw exception if couldn't write to file, for example if the path is invalid.

Needs to avoid duplicated code.

Member writeNTupleToFile (const std::string &name, const std::string &filename)

Should throw exception if couldn't write to file, for example if the path is invalid.

Should throw exception if couldn't write to file, for example if the path is invalid.

Class XyPlotter

@@ Removing stacked DataRep causes crash.

Need a way to show invalid range for static histograms.


Generated for HippoDraw Class Library by doxygen