Skip to content

Shapes: Bugs and TODOs #244

Description

@letsfindaway

I use this issue to collect bugs and things to do for the integration of shapes.

Bugs

  • Transparent fill colors in a regular and non-regular polygon shape are darker than the marker color, the color in the preview image or the color after conversion to a stroke. Other shapes are not affected.
  • Touching a shape with the eraser sometimes removes the filling or the outline completely. I cannot reproduce this issue, but it happens.
  • When duplicating a shape with Ctrl+C/Ctrl+V and then terminating OpenBoard, an already deleted item remains in the set of items to be deleted. Happens also when a shape is replaced by a strokes group. I think the mechanism of keeping items in the set mItemsToDelete is some poor architecture. Items should always have some owner responsible for them, even if they are currently not on the scene. See also [Refactor] Ownership of graphic items #248.
  • The shape() function for circles and ellipses seems to be broken. We can neither select them nor delete them with the eraser. Only selection with rubber band works. Interestingly it works after saving and reloading a document - sometimes.
  • Sometimes a shape moves when clicking with the eraser on it. This happens especially for circles, but also an ellipse seems to move a little bit.
  • The fill color for an open polyline is sometimes drawn and sometimes not. What is the intended behavior?
  • A line is very hard to select because shape() just returns the path without the width of the pen.
  • An Undo action is already created when clicking on a shape. Undoing it will move the shape. UBBoardView calls commitUndoStep() without first starting it. Consider using mWidgetMoved.
  • When UBShapeFactory removes an item, e.g. because somebody just clicked without dragging, then the item is removed from the scene, but not deleted.
  • When clicking on another tool in the stylus palette after selecting a shapes tool, the shapes tool still remains selected, because it is not part of the action group for stylus tools.
  • Keep z Level when substituting stroke by shape (eraser and line at ruler)
  • The active area of an open polygon includes the fill area. The user would assume that it is just the line.
  • The active area of shapes with transparent filling should be the line only and not the area.
  • No visible cursor while creating shape.

TODOs

  • Add "Duplicate" action to delegate frame.
  • Add z-level handling including delegate buttons.
  • Remove delegate frame in edit mode
  • Make the outline lines and handles in edit mode always with pen width 2 or 3.
  • Make drawing a shape an undoable operation.
  • Make editing a shape an undoable operation.
  • Make changing the style an undoable operation.
  • Move default position of style palette to top center.
  • Create a submenu for the Line stylus tool and add the icons to draw the shapes.
  • For regular polygons, just provide a single button, e.g. with a pentagon and the letter "n" in it. After drawing this shape, a handle appears in the center. By dragging this handle up and down you can add or remove vertices from the shape.
  • Snap behavior for shapes #245
  • When moving symmetrical shapes (circle, ellipse, square, rectangle, regular polygon) draw a cross at the center to allow visual adjustment of the position.
  • All outlines should have round caps and joins.
  • Create a separate function painterPath() returning just the path of an item without the width of the pen. Separate usages of shape() and painterPath(). The function could be a pure virtual function at UBAbstractGraphicsItem and then be implemented by the concrete derived classes.
  • Close the shape style palette when pen or marker are selected.
  • After drawing a line near the edge of a ruler, convert it to a shape.
  • Improve selection of shape items.
  • Long click on item for edit mode instead of toggling between two modes. See [Feature] Add Sankore drawing tool #240 (comment). Note: there is already an action associated with a long click of selector or play: If long pressed outside of an item, these tools switch.
  • Provide some means to resize a circle by stretching from center. I think this is a common use case. Could also be extended to ellipse, square, rectangle and regular polygon. We could e.g. add a handle at the top right which does this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions