Bug 77811 (Edit-Duplicate-complexity) - [META] Edit > Duplicate is overly complex
Summary: [META] Edit > Duplicate is overly complex
Status: NEW
Alias: Edit-Duplicate-complexity
Product: LibreOffice
Classification: Unclassified
Component: Draw (show other bugs)
(earliest affected)
Inherited From OOo
Hardware: Other All
: medium enhancement
Assignee: Not Assigned
Whiteboard: BSA
Depends on: 77815 77816
Blocks: Draw-UX
  Show dependency treegraph
Reported: 2014-04-23 13:55 UTC by Gerhard Mesenich
Modified: 2020-08-11 19:52 UTC (History)
4 users (show)

See Also:
Crash report or crash signature:

Example SRM_16-12.odg as a typical use case (219.83 KB, application/vnd.oasis.opendocument.graphics)
2014-04-23 13:55 UTC, Gerhard Mesenich

Note You need to log in before you can comment on or make changes to this bug.
Description Gerhard Mesenich 2014-04-23 13:55:42 UTC
Created attachment 97820 [details]
Example SRM_16-12.odg as a typical use case

Problem description:

The current Duplication function is already very useful, but it is overly complex for casual use. Most importantly also a pivot point for polar duplication is missing, which would make the function much more useful for rotational symmetric drawings, such as clock scales, tooth wheels or electric motors.

See the attached motor.odg as a typical example for such a use case. 

As an another example for the typical use of the function see the grid of the drawing, which was made with the duplication function as is.

Currently objects can only be rotated around a center point, which requires rotational symmetric parts to be drawn on both sides of the center and the ends then may not hit well. Such standard use case can then currently only be solved with quite complicated drawing technics.

It also does not take fractional angles. 


Fractional angles:

Angles are currently rounded to integer numbers. This prevents the drawing of precise polar segments, where often fractions of a degree are necessary for symmetry. In example a circular division into 48 segments requires 7.5deg. increments. The precision should be changed to at least 2 fractional digits; with 2 digits most common divisions (half and quarter degree) are possible.

Separate Panes for common operations, simplification:

For simple and efficient use the Duplication Function should be split up onto several panes for the most typical common use cases with the following properties only:

Horizontal Duplication:

  - Number of copies
  - x-Offset

Vertical Duplication:

  - Number of copies
  - x-Offset
Polar Duplication:

  - Number of copies
  - Pivot Point (current Placement may be used instead)
     - Xaxis
     - Yaxis
  - Angle (fractional angles should be allowed)
    Alternative better angle settings:
      Specify only the number of copies and a total integer angle,
        then divide this total angle by the number of copies.
        (i.e. 360 deg. for full circles, then rounding errors
         for broken angle numbers can be eliminated or greatly reduced,
         this also eliminates the need for calculation of the
         individual angle fraction)

Complex or elliptic Duplication:
  - same as is, just on an extra pane, to not break anything.

Further possible enhancements:
All of the above and:

  - Tick Box for 'Live Mode'
  - Probably another Tick box for mirror mode 
     (only for Horizontal and Vertical Duplication,
        then these would also need an x- or y-mirror axis coordinate)
  - Very Fancy: Have a Numbering Function for making scales etc.
                (would need a Starting Value and an Increment,
                 probably a small csv-list for characters etc.)  
The addition of the suggested Live Mode would allow to draw everything duplicated, as long as the Duplication Live Mode is selected. This would greatly ease the drawing of simple symmetric drawings such as grids, clock scales or the attached motor example.

The above Duplication function may become a 'killer' feature for LibO-Draw and it should be implementable as suggested with very little efford; using the current function as base.

  SRM_16-12.odg as a typical use case
  (Motor only as png, the Grid was done with 'Duplicate')

Operating System: All
Version: release
Comment 1 Cor Nouws 2014-04-23 14:26:08 UTC
Hi Gerhard,

Thanks for the issue and the example file.

It's more then _one_ issue however. May I suggest to split into two: one for the off-center pivot point and one for splitting simple& complex functionality?

Comment 2 Gerhard Mesenich 2014-04-23 15:40:12 UTC
(In reply to comment #1)

> It's more then _one_ issue however. May I suggest to split into two: one for
> the off-center pivot point and one for splitting simple& complex
> functionality?

Hi cor,
Thanks for your quick response. I just made 2 separate reports about the pivot and the integer issue:

Bug 77815 - Draw - Duplicate Function - Off-center pivot point is missing
Bug 77816 - Draw - Duplicate Function - Does not take fractional angles

I did not find how to edit my original report above. I think it can be left as is, the separate issues can now be easily found.

I do not know how to edit the above report. Is that possible, and how is it done?

Comment 3 Cor Nouws 2014-04-23 15:52:29 UTC Comment hidden (obsolete)
Comment 4 Cor Nouws 2014-04-23 15:56:11 UTC Comment hidden (obsolete)
Comment 5 Gerhard Mesenich 2014-04-23 16:01:13 UTC Comment hidden (obsolete)
Comment 6 Cor Nouws 2014-04-23 20:25:50 UTC Comment hidden (obsolete)
Comment 7 Cor Nouws 2014-11-04 21:51:38 UTC
has to be NEW
Comment 8 Heiko Tietze 2016-06-01 08:15:50 UTC
Nice suggestion, although "overly complex" usually not means to add functionality :-). In 100028 I suggested a simple duplicate which just takes what the prior copy/paste and modify operations did. But of course we would need a nice dialog - and your suggestions are very helpful.