Warning, /graphics/kst-plot/devel-docs/Kst2Specs/FixedBugs is written in an unsupported language. File is not indexed.

0001 Zoom Mode Plot Bugs:
0002   -Zooming gets slower the more points there are in the curves. It should
0003   always be fast.
0004 
0005 
0006 Zoom lines not updated on <ctrl> or <shift>
0007 what happens:
0008   Put the mouse in a plot and depress <ctrl>.  Nothing Happens.
0009   Now move the mouse.  A vertical line appears where the mouse is.
0010   Move the mouse around.  The line follows the mouse.
0011   Now release <ctrl>.  The line stays until the mouse is moved again.
0012 What should happen:
0013   The line should appear when <ctrl> is pressed, and disappear when
0014   <ctrl> is released, independent of mouse moves.
0015   
0016 Tied X-Only (<ctrl>) zooms adjust X and Y.
0017 What happens:
0018   create two plots (eg, 1 of gyrodata.dat col 1 and one from gyrodata.dat 
0019   col 2).  Make sure they have different Y ranges.  Tie their zooms.  Now
0020   adjust the X-range only from one plot with <ctrl>+mouse.  Both plots end up
0021   with the same X and Y range.
0022 What should happen:
0023   Only the X range should change.
0024 
0025 
0026 Rotated labels in boxes drift on resize...
0027 Create a box in kst.  Put a label in the box.  Rotate the label.
0028 Repeatedly resize the box.
0029 What Happens:
0030   The location of the label in the box drifts (so when the box is set back to
0031   its original position, the label is not in its original position).
0032 What Should happen:
0033   location of the label should stay fixed relative to the size of the box,
0034   so that when the box is returned to its original size, the label returns
0035   to its original position.
0036 Note: if the text label is not rotated, it doesn't seem to drift.
0037 
0038 Label Parsing
0039 place a special characters in a plot label (eg, \omega in the X axis label).
0040 The special character is not interpreted.  It should be.
0041 Note: it is interpreted properly in floating labels.
0042 
0043 
0044 Plot ranges don't update.
0045 Create a plot with a curve of sine vs INDEX from dm.cur.  Read from end the last 100 frames.  In the plot hit 'm'.
0046 What happens:
0047   As the curve is updated it dissappears from the plot.  Hitting 'm' recenters the curve.
0048 What should happen:
0049   In 'm' zoom mode, the plot ranges should dynamically update to cover the full range of the curve on every curve update (As if you were holding 'm' down continuously.  Try kst1.x for a demonstration of the appropriate behavior.
0050 
0051 Crash deleting last tab:
0052 start kst, and in the only tab, select rmb->close.  CRASH!
0053 This is especially a problem since this is what TabWidget->clear() does.  TabWidget->clear() is used when opening
0054 a file to get rid of all of the old tabs.   As a temp hack (to allow file opening) clear() is not called on file open,
0055 so all of the old tabs linger after opening a file.  This should be reverted once the bug is fixed.
0056 
0057 -----------
0058 Editing a slave vector from a vector selector should bring up the
0059 edit dialog for the provider.  Instead it brings up a vector edit 
0060 dialog.... not what is wanted and won't work anyway.
0061 (cbn to fix this)
0062 
0063 -----------
0064 Editing a slave scalar from a scalar selector should bring up the
0065 edit dialog for the provider.  Instead it brings up a scalar edit 
0066 dialog.... not what is wanted and won't work anyway.
0067 (cbn to fix this)
0068 
0069 ----------
0070 Cur files no longer work.
0071 Select a cur file from dirfile_maker.  It thinks its a ascii file.
0072 
0073 --------
0074 Problems reading files from the command line
0075   ascii files can't find any fields from the command line
0076 
0077 --------
0078 Only dirfiles can be chosen from the data wizard.
0079   ascii files can't find any fields
0080 
0081 --------
0082 Update curve after editing equation
0083 Create a plot with a curve from an equation.
0084     eg, x = 0..100, y = x
0085 Put the plot in auto zoom ('m') mode.
0086 Edit the equation to change its Y range
0087     eg, x = 0..100, y = 2x
0088 On apply, nothing changes.
0089 Do something that causes the curve to redraw (eg, resize the window).
0090 The curve redraws, but the Y zoom range stays at the old range.  'm' resets to the old zoom range.
0091 Now edit the curve, do nothing, and hit OK.  Still no change.
0092 Now do something to redraw the plot.  'm' mode now works.
0093 
0094 -------
0095 Butterworth low-pass crashes.
0096   create a plot, apply filter with order=4, lowpass = 0.01.  Crash.
0097   
0098 -------
0099 When chosing to filter a curve from the plot rmb, the input vectors should be fixed to the right thing:
0100   eg, Butterworth low pass Y vector should be fixed to the Y vector of the curve selected in the RMB menu.
0101 
0102 -------
0103 Entering a numerical value into a scalar selector should create a scalar of that value, if there is not
0104 already a scalar of that name.  This is particularly important for plugin entries.  It can be created when
0105 the scalar that the selector has selected is asked for.
0106 
0107 --------
0108 Ascii file configure button troubles I: it doesn't work.
0109   Configure from the data wizard brings up the configuration dialog, but applying it does nothing.
0110 
0111 --------
0112 Ascii file configure button troubles I: it crashes
0113   Configure from the vector dialog crashes kst
0114 
0115 --------
0116 Filters should have default values
0117   eg, low pass filter should default to order = 4, lowpass  = 0.1: see 1.x for defaults.
0118 
0119 -------
0120 Problems with file selector
0121 If you browse to select a dirfile, the name of the previous dirfile has been put into "File name:" entry.  So you have to erase it to select a dirfile.
0122 Of course, selecting a data file replaces the old name with a new one, but there is no way to clear it selecting a dirfile.
0123 If the 'current file' is a dirfile, then the File name entry should be blank.
0124 Either:
0125   always clear the current file: entry when a directory is changed, and don't fill it in the first place if the default file is a directory
0126 Or:
0127   Check to see if the current directory is recognized as a valid datasource - if it is, clear the current file entry.
0128 
0129 --------
0130 Change data sample range tool doesn't use defaults.
0131 ---------
0132 
0133 Accelerators for the plot edit dialog:
0134 'E' should bring up the plot edit dialog
0135 
0136 ---------
0137 
0138 Places where text labels are entered need string and scalar selectors to aid in the insertion of 
0139 strings and scalars (eg, primarily label editor)
0140 
0141 ---------
0142 
0143 Missing tabs in plot dialog:
0144   -There is no tab to set size, position, and rotation.  There should be.
0145 *cbn*
0146 
0147 
0148 Top Level View needs rmb menu:
0149   -set background properties (colour, gradient, etc)
0150   -set tied zoom mode for children (?)
0151   -cleanup layout menu option
0152 *Mike*
0153 ---------
0154 
0155 Axis labels are not transparent
0156 Create a plot with X, or Y or Top axis labels.  Change the background of the plot to a gradient.
0157 The axis label backgrounds are still white.  They should be the color of the background (alpha channel?)
0158 *Mike*
0159 ---------
0160 
0161 Axis labels should have configurable colour.
0162   A byproduct of making the label backgrounds transparent will be that if the background is set to a colour
0163   with a low contrast to black (like black, or close to black) the labels will not be visible and there is 
0164   currently no way to change them.
0165 *Mike*
0166 ---------
0167 
0168 View Object parents not preserved in saving/loading kst file
0169   Create a plot.  Put  a box in the plot.  Put a label in the box.
0170   move the plot around - verify that the box is a child of the plot.
0171   move the box around - verify that the label is a child of the box.
0172   save as a .kst file.
0173   load the kst file
0174     -note that everything is positioned relative to the tlv, and are all children of the tlv.
0175 *Mike*
0176 ---------
0177 Plot dialog label tab has grown out of control!  It should be shrunk to fit in 800x600
0178 It needs to shrink.  
0179   -There needs to be only one scalar and string selection combos, and they need to apply
0180   to the most recenly selected label text entry.
0181   -The per-label font selection needs to be drastically shrunk.
0182       maybe: only the text and the size active, w/ the info in a label, with a button to edit.
0183       or maybe: only one font allowed for a plot, and have toggle buttons for U B I.
0184       or maybe: only one font and UBI combo for a plot.  UBI can be set w/ latex commands in the label.
0185   -get rid of all the per-item boxes and use more space efficient separators.
0186 
0187 *Mike*
0188 ---------
0189 
0190 Missing features in edit label label dialog:
0191   there is no mechanism to adjust the font, or Underline Bold Italics (UBI) in the edit label dialog.
0192 *Mike*
0193 ---------
0194 
0195 The entire edit label properties tab should be shown when creating a label, not just the label text and the
0196 string/scalar selections (ie, incude size, font, UBI, and colour.)
0197 *Mike*
0198 ---------
0199 
0200 Labels should have configurable font and UBI.
0201 *Mike*
0202 ---------
0203 
0204 Tied zoom problems: (see devel-docs/Kst2Specs/Plot Geometry.pdf, last page).
0205   -The tied zoom conditions are not honored
0206   -The parent option condition is not honored.  In fact, there is no way to set parent options, even if there were parent options.
0207   -The plots are not automatically re-sized to have equal size once the axis are shared.
0208 
0209 *Mike*
0210 ---------
0211 
0212 kst settings dialogue box should select "General" when first opened
0213 to indicate that what we're seeing to the right is the General tab.
0214 *Mike*
0215 --------
0216 
0217 Double clicking on a curve in zoom mode should bring up the edit curve dialog (was in 1.x, 
0218 but was a little buggy).
0219 *Mike*
0220 ----------
0221 
0222 Edit plot dialog format issue:
0223 The tab list on the left has a minimum size set in pixels, and is not dependent on
0224 the size of the tab names.
0225 *Mike*
0226 ---------
0227 
0228 "Change color per file" changes are not shown in plots until the plot is moused over.
0229 *Mike*
0230 --------
0231 
0232 "Differentiate Curves" changes are not shown in plots until the plot is moused over.
0233 *Mike*
0234 --------
0235 
0236 Accelerators for the plot edit dialog:
0237 clicking on the plot outside the plot region in zoom mode should bring up the plot edit dialog.
0238   if on a label, to the label page
0239   if on the numbers to the axis range page (which doesn't yet exist).
0240 --------
0241 
0242 
0243 Missing tabs in plot dialog:
0244   -There is no tab to manually set plot zoom ranges.  There should be (see 1.x).
0245 *cbn*
0246 ---------
0247 
0248 When displaying data that is constant, the range is from about zero to slightly
0249 above the curve (meaning the curve is very near the top of the plot.
0250 instead, it should center the curve and have a range of �0.1 around the constant
0251 value.
0252 
0253 ----------
0254 
0255 Line Endpoints drift relative to plot contents:
0256 Create a plot.  Put a line in the plot.  Resize the plot.
0257 The end points of the line don't stay fixed in plot space.  
0258 It seems to have something to do with the 'centerpoint' of the line.
0259 It rotates around an end point.
0260 This problem doesn't happen with boxes.
0261 *Mike*
0262 --------
0263 
0264 datawizard generated multiple plots per view have the font size for
0265 the lables way too big (so big that, in the case of 24 plots), the axis
0266 labels take up >75% of the real estate. �The wizard should chose the font
0267 based on the number of plots that will be in the tlv when finished.
0268 
0269 --------
0270 
0271 Clicking in a plot when in *layout* mode brings up the plot edit dialog.
0272 This should only happen in *zoom* mode!  The way it is now, you can't 
0273 move or resize plots.
0274 --------
0275 
0276 No way to cancel a drawing command.
0277   Select a drawing tool (say, a box)
0278   Change your mind.... tough - you have to draw something.
0279 *Mike*
0280 --------
0281 
0282 No visible feedback as to what drawing mode you are in...
0283   Select a drawing tool (say, a box).  There is no visible indication
0284   that you just selected a drawing tool.  The tool should be clearly shown 
0285   either with the toolbar icon remaining depressed until the action is
0286   finished, or in the mouse icon.
0287 *Mike*
0288 --------
0289  
0290 Export as png with a set width and height shows transparency (blank)
0291 where extra space is, rather than resizing the view for the export.
0292 *Mike*
0293 ----------
0294 
0295 Should add some more latex mode fields
0296   \odot
0297 
0298 --------
0299 
0300 In labels, \textbf{text} and \textit{text} set bold and italics for 'text',
0301 but they don't un-set bold and italics after the end of the curley brackets.
0302 They should.
0303 
0304 --------
0305 
0306 Negative size drawing considered invalid.
0307 Drawing items beginning with any corner other than the top left (negative height / width)
0308 results in an invalid viewRect and the item drawn with a nominal size rather than the 
0309 desired size.
0310 This is happening during completion processing as the objects are drawn currently during
0311 creation.
0312 *Mike*
0313 --------
0314 
0315 Tied zoom behavior oddness:
0316 Tied zoom has been implemented as a toggle button, setting or unsetting
0317 all of the zoom ties.  However, when in tied zoom, it is still possible to un-tie
0318 individual plots (which is good).  But: when you un-tie one of several plots, perhaps
0319 the tied zoom button should become disabled, as you are no longer in all-tied zoom mode.
0320 *Mike*
0321 --------
0322 
0323   -Superscript and subscript size and position seems off.  This should be researched more
0324   but wikipedia as an almost reasonable article on it.  It suggests both should be scaled by ~60%, and subscripts dropped by 16% and superscripts raised by 44%.  OOffice, illustrator, and photoshop use scale 58%, raise 33%, lower 33%.  msoffice uses 65%, -14%, +35%.  It might also pay to compare w/ TeX.
0325 
0326 ---------
0327 
0328 No space allocated for subscripts or superscripts in axis lables
0329   The subscript is cut off
0330 ---------
0331 
0332 Number of major ticks bug:
0333 Occasionally there will be too few (<2) or too many (serious overlap) in the number of major 
0334 ticks.  This seems to have changed from 1.x
0335 *Mike*
0336 ---------
0337 
0338 Plot axis number rounding bug:
0339 occasionally, the axis numbers can be something like 0.499999999993 instead of 0.5.  It is hard to
0340 reproduce.
0341 *Mike*
0342 ---------
0343  
0344 Kst should ask about saving the .kst file on exit if the document has changed
0345 (basically, any change other than a mouse/arrow zoom).  See 1.x.
0346 *Mike*
0347 ----------
0348  
0349 .kst should be appended to the name of a .kst file if it is not already there.
0350 *Mike*
0351 ---------
0352  
0353 Reference point (see 1.x, 'c')  should be implemented.
0354 *Mike*
0355 ----------
0356 
0357 RMB menu over a plot render item in layout mode doesn't have raise or lower, but
0358 but does have the zoom options, etc.
0359 the RMB menu should always have raise and lower in layout mode over any 
0360 raisable or lowerable object.
0361 *Mike*
0362 --------
0363 
0364 Shared axis Box Behavior: box shows in data mode
0365 Create a shared axis box around some plots. A grey box appears around the shared plots.
0366 It should not when in data mode.  In layout mode, when the group it moused over, then 
0367 a box can appear, as with other data object.  Otherwise, no visible box.
0368 *Mike*
0369 --------
0370 
0371 Automatic layout behavior: there are gaps between layed out plots
0372 Create some plots and apply cleanup layout.  The plots are aligned in a grid,
0373 but between the plots, and between the plots and the edge of the tlv there is a 
0374 gap, presumably to make room for the grips.  There should be no space.  Instead
0375 the plots should touch each other and the edge of the tlv, even if the grips would 
0376 overlap, and even if the grips would extend partially outside the tlv.  
0377 This applies to all layoutable objects.
0378 *Mike*
0379 --------
0380 
0381 Shared axis box creation behavior:
0382 The shared axis box dimensions are set by the corners of where the box is drawn.
0383 This is inconvenient.  It would be better if the box dimensions were set by the
0384 extents of all plots which have been included in the shared box.
0385 *Mike*
0386 --------
0387 
0388 Shared axis box behavior: resizing separates box
0389 Create several plots and put them in a shared axis box.
0390 In layout mode, resize the shared axis box.  The box ends up
0391 on top of the plots, and the plots cease to share axis.
0392 The plots should stay in the box.
0393 *Mike*
0394 --------
0395 
0396 Shared axis box creation behavior: no visual feedback
0397 There is no visual feedback as to what plots have been selected
0398 when drawing the shared axis box.  There should be something (eg, the
0399 selection rect shown in mouse over mode like in layout mode)
0400 *Mike*
0401 --------
0402 
0403 The size of selector on left of dialogs is too small to fit the entries, though it
0404 is resizeable.  It should default to a size which fits all of the entries, up to
0405 some reasonable maximum, but then be resizeable to either larger or smaller.
0406 At one point it was fixed too small.  Then it was changed to be resizeable 
0407 to larger than some fixed minimum.  Now it defaults too small, but can
0408 be resized.
0409 *Mike*
0410 ---------
0411 
0412 Formatting/spacing issues:
0413   -The spacing between the X-axis numbers and the axis is too small.
0414   -The spacing between the Y-axis numbers and the axis doesn't seem to scale with window size.
0415   -The plot selection buttons are too small.
0416 
0417 ---------
0418 
0419 Data mode (see 1.x) should be implemented
0420 *Mike*
0421 ----------
0422 
0423 Shared Axis box behavior: different boxes have tied zoom.
0424 When more than one shared axis box is created, the zooms
0425 seem to be tied between them.  The zooms should only be tied
0426 if indicated by the tied zoom box, which the shared axis box
0427 does not have, but should.  By default, each shared axis box
0428 has it own zoom.
0429 *Mike*
0430 ----------
0431 
0432 Pointless complaints from Qt:
0433 we are getting on the console like 
0434   "QGraphicsItem::ungrabMouse: not a mouse grabber".
0435 These need to be found and killed.
0436 *Mike*
0437 --------
0438 
0439 qgraphicsitem_cast is not setup correctly and causing bugs.
0440   A number of bugs are occurring as the result of qgraphicsitem_cast failing.  All ViewItem objects will need to be
0441   updated to support type and casts re-evaluated.
0442 
0443   This causes context menu bugs.
0444 
0445   Object selection bugs.
0446 *Mike*
0447 ---------
0448 
0449 General drawing 'flicker' and missing regions in drawing with openGL enabled:
0450 OpenGL is qualitatively much faster, but on my laptop with Intel graphics, 
0451 embedded, and running opengl with kwin, there is lots of flicker, and lots
0452 of things simply not drawn.
0453 
0454 Notes:
0455  - We are doing everything correctly according to the Qt documentation.
0456 
0457  - This can be reproduced using the Qt example code.  Corruption extends beyond
0458    Kst, and can be seen in all other apps showing drawing problems. while QGLWidget
0459    is running.
0460 
0461  - Sample Qt code:
0462     http://labs.trolltech.com/blogs/2008/06/27/accelerate-your-widgets-with-opengl/
0463 
0464  - Performance will be improved in future versions of Qt and is a known issue.
0465    http://labs.trolltech.com/blogs/2008/02/04/qt-44-and-painting-performance/
0466 
0467  - This bug is a platform specific to X11 and is documented by ubuntu with a work around.
0468    https://wiki.ubuntu.com/RedirectedDirectRendering
0469 
0470  - Sample app from Qt runs correctly under Windows, no reported problems with Mac.
0471 
0472 --------
0473 
0474 The first pane of the data wizard should be reading directories in
0475 the background, instead of in the foreground where it steals X focus
0476 until the directory is read. �I ran into a interminable-focus-stealing
0477 problem where kst was attempting to read a dead NFS mount. �Required an
0478 X restart.
0479 *Mike*
0480 --------
0481 
0482 Bugs in Build System:
0483   -picks up libraries in lib/X11 before local libs
0484   -doesn't support 'make install' nor DESTDIR
0485 ---------
0486 
0487 With multiple plots, when zooming one changes the size properties of
0488 another (due to axis label changes, for example), the axes labels on the
0489 non-modified plot(s) can get garbled until the mouse is moved over them.
0490 
0491 ----------
0492 
0493 PlotMarginStandardization is applied inconsistently.
0494 - Note: Fixed many cases.  After applying layout, plotBorders are set to Dirty, this may not be
0495 correct.  A number of margins are not updated within the changed plot currently preventing full
0496 validation.
0497 *Mike*
0498 --------
0499 
0500 SharedAxisBox plot sharing occasionally breaks for no apparent reason.
0501 Have not identified a pattern or cause as of yet.
0502 *Mike*
0503 --------
0504 
0505 Fragility in moving parents:
0506   create a plot.
0507   Put a child box in the plot.
0508   Rapidly resize the plot.  Sometimes the box will either drift or loose parenting altogether.
0509   (Editorial: Fundamentally, I think this is because qt's QGraphics system has been used to track placement
0510   of objects, and QGraphics doesn't have the right model of what we are doing.)
0511 
0512   Note:  This is still causing parenting to fail.  Updates are required to prevent reparenting on parent resize.
0513 *Mike*
0514 ---------
0515 
0516 kst reads live dirfiles less efficiently than before. �On a shitty
0517 computer (devlin666), kst1.7 can display 200 frames of 24 bolometer
0518 channels (100Hz samples; 20 samples per frame) with a 500ms kst update
0519 timer, and only use about 20% of the cpu and the computer will still
0520 seem 'responsive enough'. �kst2 under the same conditions, except with
0521 2000ms kst update timer uses about 55% of the cpu and the computer (and
0522 kst) seem more sluggish. �
0523 ------------
0524 
0525 
0526 Y Axis label placement is wrong
0527 Create a plot with 24 curves from the data wizard.  The Y axis label is offset vertically.
0528 
0529 ------------
0530 
0531 'c' mode doesn't show difference.
0532 'c' mode is used to find the offset from a marker to the cursor.
0533 Currently, if 'c' is hit, a marker is placed, as it should.  However, the difference between the marker and the cursor is not shown anywhere.  See 1.x for the correct behavior.
0534 
0535 ------------
0536 Plot update problem:
0537   -from the data wizard create several plots.
0538   -Make a change to the plot that changes the size of the plot (eg, change the font size.
0539  The plot you changed is happy, but all of the other plots don't get automatically re-aligned.
0540   -Move your mouse into one of the plots that is not properly aligned.  
0541 The curve is re-drawn to be aligned with the other curves, but the plot axis is not re-drawn.
0542 
0543 ------------
0544 
0545 Equation update problem
0546   -Create a curve from a datasource.
0547   -create an equation from a vector from the curve.
0548   -Change the input vector (eg, with the 'back one screen' button)
0549 The curve updates, but the equation/equation curve does not.
0550 
0551 ------------
0552 
0553 Plot is not regenerated after 'ok' in the plot dialog axis tabs makes a visual change. 
0554  -create a plot.
0555  -in the plot dialog axis tab change something (eg, the 'draw grid lines' option) and hit 'ok'.
0556 The plot is not redrawn to honor this change.  (if you do something else to force a
0557 redraw, the change is displayed.)
0558 
0559 -------------
0560 
0561 Loading a kst files does not seem to work:
0562   -run kst
0563   -with the wizard, make a plot with three curves
0564   -save it.
0565   -restart kst and load the kst file you just created.
0566  kst gives an 'invalid Tag' error, and no plots are shown.
0567 
0568 -------------
0569 
0570 Accelerators everywhere.
0571 
0572 ------------
0573 
0574 'ok' in arrow dialog moves the arrow.
0575 draw an arrow. Open the edit dialog.  change something and hit apply.  The arrow moves.
0576 
0577 ------------
0578 
0579 6. Unless you've explicitly given it a Unique Name, the edit curve
0580 dialog gives no hint as to the name of the curve you're editing.  This
0581 is a problem when you have, say, twelve curves called "2 vs. 1" in a
0582 single plot.  In 1.x I can doubleclick on the curve to bring up the edit
0583 dialog containing its name to figure out the name of the particular
0584 curve "2 vs. 1" I'm interested in.  Here, I have to go by trial and
0585 error.
0586 
0587 ------------
0588 
0589 14. The weight of a drawn curve is apparently calculated as: (my weight)
0590 + (sum of weights of all lower numbered curves).  Being unable to
0591 specify negative weights, curves just get heavier and heavier.
0592 
0593 ---------
0594 
0595 Loading of a Kst file into a resized window does not adjust the loaded items to
0596 fit on the new window size.
0597 
0598 The View dimensions should be saved as part of the .kst file and if the newly created
0599 view on a load of a .kst file doesn't match, the resize logic should be triggered.
0600 *Mike*
0601 
0602 ---------
0603 
0604 12. Changing the value of the fixed range limits doesn't active the
0605 "Apply" button.
0606 
0607 ------------
0608 
0609 Layout issues in data object dialogs:
0610   some dialogs, like histogram, lines up nicely, while others, like image
0611   is excessivly indented.  I can't see any difference in their implementation.,
0612 
0613 ------------
0614 
0615 16. Text labels have to be entered in a tiny little text box, making
0616 decent sized labels frustrating to edit.  Furthermore lines, in a label
0617 are separated by "\n" now?
0618 
0619 ---------
0620 
0621 Auto-labels, and '_' in field names:
0622 When plots are using name-based auto-labels, any '_' in field names gets interpreted as a subscript.
0623   'solution'.  Append a \_ to _ in field names so the appear correctly in labels.  
0624   Down side: they are less nice looking in tag names.  This is acceptable (unless we end up really board).
0625 
0626 ---------
0627 
0628 Drawing problems in resizing view items (eg, arrow)
0629 draw an arrow.  In layout mode, grab one end and drag it around quickly.  The grab point
0630 gradually drifts away from the mouse cursor.  It is much less pronounced if you move slowly.
0631 *Mike*
0632 ------------
0633 
0634 Base / Offset mode logic change:
0635   Base/offset should have three modes:
0636     On: Base/offset mode is used, regardless of if it is needed (same as current 'on')
0637     Auto: Base/offset mode is used if doing so makes sense (same as current 'off')
0638     Off: Base/offset mode is never used.
0639 
0640 ----------
0641 
0642 Error in choice of offset mode.
0643 Create a plot with a Y range from -0.032 to 0.041.  It goes into base/offset mode and shouldn't.
0644 
0645 ------------
0646 
0647 Crash case: edit vector button is active in vector selectors
0648 for error bar vectors which aren't yet set.  Clicking crashes.
0649 ---------
0650 
0651 Default X vector field:
0652   We need to guess that is wanted for an X vector in dialogs which take an X vector     :
0653 
0654 ------------
0655 
0656 10. In the content tab, double clicking on a curve in 1.x would move
0657 it from the list it used to be in of the lists to the other.  This
0658 saved the tedious click-on-curve, click-arrow-button,
0659 click-on-next-curve, click-on-arrow-button 
0660 
0661 1. data source text box in first panel of data wizard inevitably moves
0662 the text cursor to the end of the input after entering a character,
0663 making it difficult to edit in the middle of a path=======
0664 ---------
0665 
0666 A spectrum curve created with the data wizard should have
0667 the same color as a XY curve simultaneously created from the
0668 same data field.  ie, if the XY curve of [sine] is red, the spectrum
0669 curve of [sine] should also be red.
0670 
0671 
0672 17. There appears to be no way to change the colour of the plot border
0673 and tick marks from black.  I though the brush colour under "Stroke"
0674 might do it, but nope.
0675 
0676 Axis Label Rotation:
0677   Axis number labels should be rotateable, as in 1.x
0678 
0679 
0680 Edit Multiple for Plots
0681   It should be possible to edit the properties of multiple plots at once.  The UI used in data objects and in 1.x works well and should be used here.
0682 *Mike*
0683 
0684 8. Removing a curve from an autoscaled plot and hitting "apply" removes
0685 the curve doesn't rescale the plot.  The plot is rescaled when "Ok" is
0686 hit in the edit plot item dialog.  Adding a curve to an autoscaled plot
0687 and hitting "apply" does rescale the plot.
0688 
0689 3. toggling log-x axis (key 'g') doesn't do anything until you poke at
0690 the plot. (My impression is that a re-draw is being missed.)  toggling
0691 log-y (key 'l') works as expected.
0692 (cbn sees: the mouse needs to leave the plot for the plot to be redrawn)
0693 
0694 4. toggling log-x doesn't change the x-axis tick labels/positions, even
0695 though the curves are drawn on a log scale.  Zooming in and pressing
0696 "M" fixes this.  Again, y-log works as expected.
0697 (cbn says 'confirmed')
0698 
0699 Legends don't appear to work:
0700   With the data wizard, create a plot, and select to create a legend.
0701     No legend.
0702   Edit a plot.  In the label tab, select having a legend.  Apply
0703     No legend...
0704 ----------
0705 
0706 New tab in Data Wizard:
0707   There should be an option in the data wizard to create all of the new plots in a new tab.  1.x has this.
0708 
0709 ----------
0710 
0711 XY Plots and Spectra in separate new tabs in data wizard.
0712   If XY plots and Spectra are both being created, there should be an option to create the Specta in a separate new tab.  1.x has this.
0713 
0714 ----------
0715 
0716 11. When in log mode, the range reported in the range tab of the edit
0717 plot item is the logarithm of the range.  So if the y-range is 0.1 to
0718 100, the range will be reported as -1 to 2.  Despite this, you still
0719 have to enter "0.1" and "100" to get this range.
0720 
0721 
0722 Smart selection of minor tick intervals.
0723   There needs to be an option to automatically chose the number of minor tick intervals: 
0724   If the major interval is 1x10^n or 5x10^n there should be 5 minor intervals.  
0725   If it is 2x10^n, there should be 4.
0726   This was in 1.x
0727 
0728 7. Adding a curve to a plot in the edit plot item dialog, and hitting
0729 "Apply" causes the dialog box to grow wider.  Removing a plot does the
0730 same thing.  The result is an ever-widening dialog box, which can't be
0731 re-narrowed since it believes it is as small as it can get.  (It's the
0732 list of tabs on the left which is doing the growing.)
0733 
0734 ----------
0735 New Plot Label size mode: autoshrink.
0736   Add a an option to plot labels: autoshrink.  If selected, the font size used for the axis labels will reduced to the largest size (<= the current size) for which the labels don't overlap or are not truncated (only text width is considered.).  The resizing is dynamic.  If the window geometry or the label values change so that the label would fit at a larger size, the size is raised.
0737  - Last step after base/offset & reduced ticks.
0738 ----------
0739 
0740 Placement widget (eg, in the curve dialog)  needs a create in new tab option.
0741   1.x had a 'create new tab' button.  This is similar, but does
0742 the creation of the new tab after apply, and uses a default name rather than popping up a new dialog.
0743 
0744 ---
0745 
0746 
0747    3. Very often, changing the range settings of a plot does not change anything (I did not find out why it worked sometimes)
0748 
0749 
0750 ---------------------------
0751 
0752 Shared axis not shared until a redraw.
0753 create plots with more than 1 column (eg, 6 plots in two columns).
0754 With a shared axis box, select two plots on the same row, so you
0755 would expect them to share a Y axis.  
0756   -the bottom axis is suppresed on both.
0757     (they should not be)
0758   -The left axis on the right plot is not suppresed.
0759     (it should be)
0760 until something is done to trigger a redraw (eg, a rescale) at which 
0761 time the plots are drawn correctly.
0762 
0763 Sharing is happening however, sharing is based upon plot projectionRect, not on
0764 physical location.
0765 Ie.  in scenario described the Y axis of the two plots do not match but it seems likely that the x axis range 
0766 does match.  This results in an inappropriate sharing of the x axis when the physical location of the plots 
0767 lends to a natural y axis sharing.  The zoom update will trigger the tied zoom code which standardizes all the 
0768 plots.  
0769 This proper fix for this will be part of the logic rework for shared axis as it is related directly to the above 
0770 bug.
0771 ---------------------------
0772 
0773 'I' key in a plot with an image should adjust the image color scale; see 1.x for correct behavior.
0774 
0775 ---------------------------
0776 
0777 Change File Dialog is confusing.  It is not clear what the two filters at the top do, and the 
0778 way they do it is inconsistent: The top is applyed when you hit the all from button.  The next one
0779 is live, and the button clears the selection.  There is no way to combine the options.
0780   Better: a file text entry and a regexp text entry, an apply filters button, and an 'and/or' radio pair.
0781 
0782 ---------------------------
0783 
0784 Problem with plot range and offsets:
0785 Make a plot with the Y range from -0.75 to 0.4.  It goes into base/offset mode 
0786 and it shouldn't.
0787 
0788 ---------
0789 
0790 Missing X axis and cut off right edge in tied zoom box:
0791   create a tab with 6 plots in two columns
0792   make all 6 X axis the same, but with 6 different Y axis
0793   Create a shared axis box that encloses all 6.
0794 
0795 There is no X axis visible.  There should be.
0796 The right edge of the right collumn is cut off.  It shouldn't be.
0797 
0798 ------------------------------
0799 
0800 
0801 Selecting 'share Y axis' in shared axis box context menu does not share Y axis.
0802   create a tab with 6 plots in two columns
0803   make all 6 X axis ranges the same, but with different Y axis ranges.
0804   Create a shared axis box that encloses all 6 plots.
0805   Notice that X axis is shared and Y isn't.  This is the correct default as the Y axis were different.
0806   Now, select 'share Y axis' in the context menu.
0807 The check box is now marked, but the Y axis aren't shared.  
0808 
0809 What should happen if the Y axis shared box is changed to checked:
0810   -The Y axis ranges should be changed to go from the minimum Y min
0811   shown to the maximum Y max shown of all of the plots in the box, and 
0812   the Y axis should be shared if properly aligned.
0813   -If all of the plots were in 'm' auto zoom mode, then the shared axis box will
0814    be in 'm' auto zoom mode, with all plots going from the minimum Y min to
0815    the maximum Y max.  Otherwise, the shared box will be in fixed mode, 
0816    again going from the current displayed minumum Y min to the current 
0817    displayed maximum Y max.
0818   -hitting 'm' anywhere in the shared axis box will place the shared axis box 
0819    and all of its plots into 'm' maximum zoom mode.
0820   -Doing a mouse zoom in any of the shared plots will do the zoom of any shared
0821    axis in all of the plots, and place them all in fixed mode.
0822 
0823 ------------
0824 
0825 unselecting 'share Y axis' in shared axis box context menu does not restore the separate Y axis.
0826   create a tab with 6 plots in two columns
0827   make all 6 X axis be the same and all 6 y axis be the same.
0828   Create a shared axis box that encloses all 6.
0829   Notice that both the X axis and Y axis are shared.  This is correct.
0830   Now, un-select 'share Y axis' in the context menu.
0831 
0832 The share Y axis is no longer selected, but Y separeate Y axis are not
0833 restored.  They should be.  Note: the Y ranges are no longer tied, even
0834 though the axis are still shared.
0835 
0836 ------------
0837 
0838    7. Even if I don’t modify anything on a kst file (no click at all) kst always ask for saving the changes on closing.
0839 
0840 
0841 ----------------
0842 
0843 Font settings in Settings->General do not appear until, eg, the window is resized.
0844 Plots should be updated upon 'apply'.
0845 
0846 ----------------
0847 
0848 It is not clear from the dialog that grid and color options are defaults for new plots and don't apply to existing
0849 plots.  The text should be modified to make this clear.
0850 
0851 ---------------------
0852 
0853 Drawing / Standardization Errors with inverted drawing of Plots
0854 
0855 Draw a plot using the drawing tool in any direction other than down and to the right.
0856  - The PlotRenderItem is provided a negative size and not drawn
0857  - Plot standardization is triggered and all labels / axis are drawn incorrectly
0858 
0859 ---------------------
0860 
0861 LabelCreator Dialog cleanup required.
0862 
0863 Missing Signal - 
0864   Object::connect: No such signal QPlainTextEdit::textChanged(const QString &) in ../../../src/widgets/labelbuilder.cpp:23
0865   Object::connect:  (sender name:   '_label')
0866   Object::connect:  (receiver name: 'LabelBuilder')
0867 
0868 Title missing (reads Dialog)
0869 
0870 ---------------------
0871 
0872 Make dialogs modeless.
0873 
0874 
0875 Open the „about“ dialog box and click on a link. Nothing happens, everything disappears in the box. If kst was started from the command line, you get:
0876 QFSFileEngine::open: No file name specified
0877 QTextBrowser: No document for http://kst.kde.org/
0878 Confirmed by CBN/linux
0879 *Mike*
0880 ----------------
0881 
0882 Problems with shared axis boxes: 
0883 
0884 Incorrect feedback in rmb menu.
0885 Create a window with 6 plots in 2 columns.  The X axis are the same.  The Y axis are different.
0886 Make a shared axis box with includes all 6.  As expected, the X axis are shared, and the Y aren't.
0887 "rmb->Shared Axis Box Settings -> Share Plots on Y axis " is checked, even though the Y axis aren't shared.
0888 Un check it.  The Y axis are now shared, even though the check box says they aren't.
0889 
0890 Tied Zoom behavior in shared axis boxes:
0891 Create a window with 6 plots in 2 columns.  
0892 Create a shared axis box which shares in X but not in Y.
0893 Select the tied zoom box in any two of the plots.  
0894 Make a Y zoom in one of the tied plots.  The plot it is tied to does not re-zoom.  It should.
0895 
0896 Related to above:
0897 Create a share X axis box, which contains some, but not all of the plots.
0898 Tie a plot inside the share axis box with a plot outside the share axis box.
0899 Do a Y zoom on the tied plot inside the share axis box.  The one outside does not
0900 change its zoom.  It should.
0901 
0902 Extra tied zoom button:
0903 There is a tied zoom box associated with shared axis boxes.  There shouldn't be.
0904 Tied zoom boxes are only associated with plots.
0905 
0906 I have moved the description of correct behavior which is broken by the above back to here from 'fixed bugs' :
0907 ------------------------------
0908 Shared Axis behavioral principles:
0909 
0910   -All plots have a tied zoom indicator (which may not always be shown).  
0911   -All plots indicated as tied will have both of their axis tied, regardless if they are shared.  
0912   -All plots not indicated as tied will only have their axis tied if they are shared.
0913 
0914 ------------ Bugs based on the above principles: --------------
0915 
0916 The tied zoom indicator behavior is as follows:
0917   For axis that are selected to be shared:
0918     -If any of the plots inside the shared axis box are tied to any plots outside the 
0919      shared axis box, then the shared axis for all plots in the shared axis box will
0920      be tied to the tied plots outside.
0921   For axis that are *not* selected to be shared:
0922     -The tied zoom for the *unshared* axis behaves exactly as it would if the plot 
0923      were not in a shared axis box.
0924  **Shared axis boxes do not have tied zoom indicators - only the plots do.**
0925 
0926 Tied zoom indicator location:
0927   - If a plot shares *only* an X axis with a plot directly above it:
0928      The indicator will be to the right of the plot, with its top even with
0929      the top of the plot.
0930   - If a plot shares *only* a Y axis with the plot directly to its right:
0931       The indicator will be above the plot, with its top even with the right 
0932       of the plot.
0933   - If a plot shares *both* axis with a plot above and a plot to its right:
0934       The indicator is not shown - its behavior would be redundant with the
0935       indicator on the top right corner.
0936   - If a plot is in a shared axis box which shares both X and Y axis:
0937       only the plot in the top right corner  (alternativly, only plots which don't 
0938       share an axis with a plot above or to its right) will show its indicator.  
0939       The indicator would be redundant, anyway, with the indicator in the top right.
0940 ------------
0941 
0942 Vector selectors in opened dialogs not updated when new vectirs are created.
0943 Start kst
0944 From the data manager open a curve dialog and a vector dialog.
0945 Create a vector in the vector dialog.
0946 It does not appear in any of the vector selectors in the curve dialog.
0947 It should.
0948 
0949 
0950 Maximum zoom problem after breaking shared axis boxes
0951 Create a window with several plots in 2 columns.  Each plot should have the same X range, but different Y ranges.
0952 Create a shared axis box which includes all the plots.  Only X axis are shared, as expected.
0953 Now, hit 'm' in one of the plots.  It's zoom is what it would be if both X and Y axis were shared
0954 (ie, it includes all points in all plots).  But, since only the X axis are shared and the Y axis are 
0955 not shared, the Y zoom should be such that it includes all the points in only the current plot, and not
0956 all the plots in the shared box.  ie, the Y axis should not be effected by being in a shared box, if Y axis are
0957 not shared.
0958 
0959 
0960 In the « edit plot item » dialog: the size of this dialog box is not scalable. Problem is that the 
0961 size is computed with the longest name of all the curves in the plot. And these names can be very 
0962 long if automatically generated… 
0963 It needs a maximum width
0964 
0965 
0966 Intelligent and useful window title:
0967   If a kst file has been opened, the window title should be kst <kstfile>
0968 
0969 plot dialog bug:  -doesn't properly fill zoom mode with 'mean centered'.
0970 
0971 --------------------
0972 
0973 Plot Bug:
0974   Mean Centered X range doesn't seem to work:
0975   create a plot with a curve
0976   Mean centered X range -> apply.  Does the right thing.
0977   Now advance one screen.  Plot does not advance.
0978 
0979 --------------------
0980 
0981 plot dialog bugs:
0982   -doesn't fill range with enough significant figures
0983 *cbn*
0984 
0985 ----------------
0986 
0987 kstdatarc is located relative to the directory from which kst is run.  It should be located in
0988 the standard config directory.  
0989   For linux under KDE4, this is `kde4-config --localprefix`/share/config/
0990   For linux, not kde4, consider ~/.kst/
0991   No idea what it should be for windows or mac.  
0992 
0993 ---------------------
0994 4. Reloading a previously saved kst files seems to forget all the “configure ascii file” settings 
0995 (in particularly “read fields names from”) so that no vector can be generated because kst tries to 
0996 read an unknown field! This may explain why the relative path names did not work (see bug reported 
0997 earlier). In the meantime, it has been confirmed that reloading works with the appropriate 
0998 kstdatarc file in the right place.
0999 
1000 ---------
1001 
1002 "kst setting dialog" interface to global ASCII options.
1003 kst can currently read default ascii settings from the kstrc file.
1004 These settings need to be settable from the kstsettingsdialog.  
1005 
1006 ---------
1007 
1008 For extreme cases of base/offset mode there are  rounding errors related to the subtraction of the base.
1009 Rounding problems in base/offset mode:
1010   Log axis should never go to base offset mode - instead they should use scientific; powers should be relative to 1.
1011    - LogAxis are now using only two significant digits so that scientific notation is used by default.
1012 
1013 *cbn*
1014 ---------
1015 
1016 Crash Case: crash second time opening config dialog.
1017 Start kst.
1018 Open the configuration dialog (settings->configure kst), close it, then open it again.
1019 Crash!
1020 
1021 ---------
1022 
1023 Hitting shift changes into y-zoom mode forever, rather than just
1024 changing it while shift is depressed.  After doing this it's difficult
1025 to get back to xy-zoom mode.  (I have to right click twice to open and
1026 close the context menu.)
1027 (cbn says 'not confirmed - more info needed)
1028  - Tested on Windows / Linux and cannot reproduce.
1029 --------------------
1030 
1031  -In the data wizard or in the data manager, select the data from a file by giving the path 
1032   relative to the folder where kst was started. The plot appears without problem. Save the 
1033   kst file in the same folder where kst was started. Close Kst from the same place and reopen 
1034   the kst file. It cannot plot the data. But if you go in the data manager and edit a specific 
1035   vector from the file, it will be plotted.
1036 
1037 --------------------
1038 
1039 Offset mode doesn't work in data mode.
1040 In a plot in kst, go into data mode.  Then use 'c' to leave a marker.
1041 It is left in the correct place.  Now move the mouse.  The offset to the marker
1042 is not shown, but it should be.  If you leave data mode, then it is.
1043 (behavior should be the same as 1.x).
1044 
1045 --------------------
1046 
1047 Showstopper printing problems:  - 2.0 needs these fixed.  otherwise, another beta :-(
1048 
1049 Labels in Print to file are not vector quality... they should be.
1050 This appears to be related to caching of labels...
1051 
1052 Increasing the printer resolution to "high resolution" solves this, at the expense of huge pdf files, and very
1053 slow print rendering.  Printed files should be all vector, not cached pixmaps.
1054 
1055 ------------------------------
1056 
1057 USAGE() does not exit cleanly, so there are issues under windows:
1058  For the « kst --help » I first get the message
1059 “Runtime Error! Program: c:\Program\klst\bin\kst.exe This application has requested the runtim to terminate it in an unusual way. Please contact the application’s support team for more information.”
1060 
1061 Then kst closes and and I get the help in the console (cygwin) in the windows cmd.exe I don’t get any help…
1062 
1063 ---------------------
1064 
1065 
1066 When a new plot is added to an tab which already has plots in it (eg, from the Placement widget), 
1067 then the label font sizes should be based on the label font sizes of the plots already in the tab.  
1068 (either 'vote' or use the first one).
1069 All font properties replicated.  Use the first one.
1070 
1071 --------------------
1072 
1073 Problem resizing plots:
1074 resizing a plot from the top or left grip points blanks out part of the plot.
1075 Using the bottom right grip does not.
1076 
1077 --------------------
1078 
1079 Save as default should not default to checked in ascii configure dialog.
1080 
1081 --------------------
1082 
1083 The Y axis label  drifts when you resize the height of a plot with the top grip.  
1084 Then, pull up the Plot Edit dialog, dimensions tab.  Enable 'apply' by 
1085 selecting, then unselecting 'fix aspect ratio'.  Apply.  The plot moves, 
1086 but the Y label is back where it should be.  Enable apply again, and hit 
1087 apply.  The plot is back where it should be, with no problems.
1088 
1089 --------
1090 
1091 Reasonable/sticky defaults for the export dialog.
1092 
1093 --------------------
1094 
1095 Draw a line in a plot.  Resize the plot.  The line drifts away.
1096 
1097 ------------
1098 
1099 Sensible filter in image dialog
1100 
1101 --------------------
1102 
1103 Rotated axis number label spacing is wrong
1104 
1105 --------------------
1106 
1107 ASCII settings are ignored unless they are the global defaults.
1108 
1109 --------
1110 
1111 Reasonable/sticky defaults for plotDefaults
1112 See View::configurePlotFontDefaults for a place to do this...
1113 Currently, new plots follow any existing plots, but there is no
1114 sensibly set 1st plot default.
1115 Probably need to set defaults in the plot dialog *Changed fields (?).
1116 But need to figure out order - we want to also save the viewItemDialog
1117 set fields.
1118 -------------------------------------------------------------------------------------
1119 Fixed after beta 3
1120 -------------------------------------------------------------------------------------
1121 
1122 Multi-page printing:
1123 The code is in place and commented out, because it gets the size wrong for pages other than the current tab.
1124 This bug is also hit in the export widget.
1125 
1126 --------------------
1127 
1128 Need to be able to rebuild the datasource list:
1129   Make a list of all dataprimitives and their file names
1130   Erase all data sources from the object store.
1131   for each dataprimitive {
1132     find or create (filename)
1133     changeFile(newDatasource) (adds to the store?)
1134   }
1135 
1136 --------------------
1137 
1138 Datasources that are browsed are created, remembered, and saved/loaded.
1139 
1140 ----------
1141 
1142 Improve behavior of data wizard selector
1143 
1144 
1145 ------------
1146 
1147 Names in multipage graphics file export.  name_2.png, not name.png_2, etc
1148 
1149 --------
1150 
1151 Printing from the command line.  This existed in 1.x
1152   Note: printing still requires parts of Qt which require a window session, so pure scripted 
1153   headless prints are not possible :-(
1154 
1155 --------------------
1156 
1157 When you plot 48 plots on one screen, the default text size for the
1158 plots is way too small to be readable.  
1159 
1160 --------------------
1161 
1162 In zoom plot mode (hit 'z' when mouseover a plot) the text does not
1163 increase size as the plot expands.  This doesn't look proportioned
1164 correctly.  
1165 
1166 --------------------
1167 
1168 Change data samples range is clumsy to use.  I don't think that it
1169 should default to having none of the vectors selected.  Rather, I think
1170 it should default to all preselected (or better, all preselected if
1171 you've never used the dialog before, but to remember which were selected
1172 from before and default to those).  Certainly, when you make some
1173 changes and hit apply (without closing the dialog box), the vectors you
1174 have selected shouldn't become unselected; they should remain.  
1175 
1176 
1177 --------------------
1178 
1179 Plot widths with live data are variable depending on the axis numbers
1180 position.  If, for example, you're plotting live data as a function of
1181 INDEX and INDEX is in the hundreds of thousands, when the major tick for
1182 INDEX is near the edge of the plot, the plot will get narrower so that
1183 the axis number can fit in the window.  I don't think that plots should
1184 change size at all when data is live.  
1185 --------------------
1186 
1187 2. When in data mode, the status bar shows the backslashes used to
1188 escape characters in curve names.  I think that maybe (but maybe not)
1189 the status bar should render the names (with subscripts and
1190 superscripts, for example).  The status bar should certainly not show
1191 escaping backslashes.  
1192 
1193 --------------------
1194 
1195 4. When displaying an axis as time, "offset mode" turns on (good), but
1196 only displays offsets in seconds (bad).  When a day's worth of data is
1197 on the screen, the unit shouldn't be seconds, or even minutes.  
1198 
1199 --------------------
1200 
1201 5. When displaying an axis as time and offset mode is on, the offset
1202 steps should be natural for the type of units.  100 seconds is not
1203 natural (120 would be, or better, 2 minutes; see the bug above).  
1204 
1205 --------------------
1206 
1207 1. When the x axis set to to interpret as standard C time, the time is
1208 displayed correctly on the axis labels, but just displays as the raw
1209 value in the status bar (on the lower left of the window).  This is both
1210 in "normal mode" and in "data mode".
1211 
1212 ------------------
1213 
1214 Cleanup layout totally sucks!