Bug 146968 - Prototype UI for new Inking feature
Summary: Prototype UI for new Inking feature
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: UI (show other bugs)
(earliest affected)
Hardware: All All
: medium enhancement
Assignee: Not Assigned
Depends on:
Reported: 2022-01-24 15:25 UTC by Lucas J
Modified: 2023-02-12 07:53 UTC (History)
5 users (show)

See Also:
Crash report or crash signature:

Document containing information about prototype UI (512.62 KB, application/vnd.oasis.opendocument.text)
2022-01-24 15:25 UTC, Lucas J
the items in the red box are the ones that can apply to a line (60.66 KB, image/png)
2022-01-25 10:13 UTC, Lucas J
two potential UIs for creating new pens (64.69 KB, image/png)
2022-01-25 16:30 UTC, Lucas J

Note You need to log in before you can comment on or make changes to this bug.
Description Lucas J 2022-01-24 15:25:07 UTC
Created attachment 177757 [details]
Document containing information about prototype UI

See attached document.
Comment 1 Heiko Tietze 2022-01-24 15:46:39 UTC
Sounds like bug 90045 asking for brush tool. It would be kind of post-processing of lines similar to the lately introduced effects.

First problem is to save/export and load/import in other applications. You need a specification at the file format.

If this all is about kind of a true line style (the term is used for the appearance ie. dotted, dashed, solid etc.), see bug 132568 and bug 136224 in this case - the same applies for the file format. But function-wise it just combines all available attributes and allows to set it at once.

Please keep in mind that we have drawing styles in Draw/Impress where you can define the line attributes right now. Would be nice to have it in Writer and Calc too, see bug 89369. This would be my preferred solution if I don't misunderstand your proposal.

What I always dislike on MSO's features is the missing use case. Just to present a bunch of predefined colors with varying width would be totally boring. We strive for freedom and a few options but full ease to configure, store, share etc. See [1] how it should work.

You questions address all developers. Pasting it here (it's annoying to download and open a document when text can easily be read here):

So what are some things that would need to be known in order to start developing?

 • How to add new toolbar in LibreOffice by default
   ◦ How to dynamically add/remove buttons to toolbars
   ◦ Way to make icon color match the user’s settings (similar to highlighter or font color button)
   ◦ Way to read/write to user settings so that LibreOffice knows what kinds of pens to populate in the toolbar
   ◦ Add context menu with Delete or Edit buttons when triangle is selected next to icon

 • How to include mini Pen Settings UI and make it save the data to user settings
 • Make each respective pen button automatically apply the styles and invoke the freeform or straight line function

[1] https://design.blog.documentfoundation.org/2015/12/22/area-fill-options-made-consistent/
Comment 2 Lucas J 2022-01-24 16:03:17 UTC
Yes, I believe it is similar to https://bugs.documentfoundation.org/show_bug.cgi?id=132568

Can you provide more information about file format changes? At this time, one of the goals of my prototype is to make it so there does not need to be any file format change. Just to make some things clear:
1. We are not creating new types of lines
2. We are utilizing already existing functionality that can already be saved in files
3. We are simply saving the user's style so they don't have to manually do it themselves

Example: User draws a line in Draw. They set it to yellow, make it thick, and set it to be transparent. This looks like a highlighter. Already can be saved in the file. Next time user wants to draw this line, they must repeat the process all over again. Goal is to create custom button that automatically applies such styles when selected. Since we are not creating a new type of object and simply applying existing properties, I see no need to change file format.

This is very similar to the Inking functionality in MS Office. Therefore, the goal is to market this as Inking functionality, not merely saving styles.
Comment 3 Heiko Tietze 2022-01-25 08:41:49 UTC
(In reply to Lucas J from comment #2)
> Example: User draws a line in Draw. They set it to yellow, make it thick,
> and set it to be transparent. ... Next time user wants to draw this line, 
> they must repeat the process all over again.

No, you can create a drawing style in Draw/Impress. Use the Stylist (sidebar deck for styles), find the button with the tooltip "New Style from Selection" at the top-right corner. This button takes all attributes into a style that can be applied to drawing objects. Changing the style will affect all objects using it.
Comment 4 Lucas J 2022-01-25 10:12:36 UTC
I see. I didn't know such feature existed! Excellent. This is a great step in the right direction. This is a powerful feature to apply styles.

However, as bug 132568 describes:
"new line reverts to blue colour with a standard thickness, 0 degree angle and no arrows.  free-form and straight line drawing is almost a necessity for drawing lines between images and text across the page or on top of images and when doing this regularly becomes cumbersome when having to edit all properties of each line individually."

My goal is essentially to solve this problem, as described in the attached document, by creating line drawing buttons for each of the styles. This way, the user doesn't have to manually edit each property individually. So instead of creating a new line, then manually selecting the appropriate style, the user can select a button to create a line with the appropriate style **already applied**. In the document, you see an image of a toolbar with a green background and rainbow colored pens. This is what I was thinking of. This is similar to the Inking functionality in OneNote, thus I think it would be appropriate to market it as such to draw in new customers.

In addition, the style selection has too many options that don't apply to lines (see new attached image for the ones we need). There would need to be a way to exclude all of these options that are not needed for creating such lines.
Comment 5 Lucas J 2022-01-25 10:13:42 UTC
Created attachment 177765 [details]
the items in the red box are the ones that can apply to a line
Comment 6 Heiko Tietze 2022-01-25 10:37:37 UTC
(In reply to Lucas J from comment #4)
> My goal is ... creating line drawing buttons for each of the styles.

You define a couple of presets and implement it hard-coded. I dislike this Microsoft-way where users pick an item from a fix set of more or less randomly defined options. Some users may like it, others will ask for a different attributes, want to add own styles etc. How can we judge on whether your liking is the same as of the majority? Rhetorical question, sorry.

I would prefer some kind of tagging as favorite, which makes this style listed on some variable menu/toolbar. It gives all freedom to predefine and ship what you imagine with the full power of user configuration.

As for the implementation you may check how the commands for the styles menu work in Writer.
Comment 7 Lucas J 2022-01-25 11:03:09 UTC
In my prototype UI I put certain colors as default templates. However on the right there is an "Add pen" button where the user can put any other style they want. It is just an example. I don't want to do it the Microsoft way either. Similar to how Impress has some default templates, I simply put the colors in the prototype as default templates. The user can add whatever style they want. The user could make it dashed, transparent, etc.
Comment 8 Heiko Tietze 2022-01-25 11:53:07 UTC
Looking forward to review your patch.
Comment 9 Lucas J 2022-01-25 16:30:50 UTC
Created attachment 177784 [details]
two potential UIs for creating new pens
Comment 10 Lucas J 2022-01-25 16:31:07 UTC
Great to hear! :) This will probably take me a long time since I am new to LibreOffice development and I am a student who is learning more about c++ as the days go on.

I have added a new attachment with 2 possible UI ideas.

Which one do you prefer - the one on the left or the right?
Comment 11 Heiko Tietze 2022-01-26 07:08:17 UTC
(In reply to Lucas J from comment #10)
> Which one do you prefer - the one on the left or the right?

If this is about the sidebar I prefer cleaner UIs with less options, the right one. Only the most often changed attributes should be listed there - with full access in the property dialog. But some might prefer the left option anyway. We had this discussion repeatedly in the past.
Comment 12 Cor Nouws 2022-06-22 10:01:27 UTC
Hi Lucas,

Thanks for your mockup and ideas!

(In reply to Lucas J from comment #10)

> I have added a new attachment with 2 possible UI ideas.
> Which one do you prefer - the one on the left or the right?

There is a notable functional difference, it seems?
Left one is direct formatting.
Right one asks to create a style for different formatting.

And while I do appreciate the use of styles, also in drawings, it is also practice to offer the possibility for direct formatting.
Combine the two .. hmm

How is that done in the sidebar for other objects?
Comment 13 Heiko Tietze 2022-06-23 09:48:01 UTC
NEEDINFO for c12

Also have a look at bug 127348 and the attached mockup. Might go into the same direction. The META ticket bug 148534 on arrow styles could be relevant too.
Comment 14 QA Administrators 2022-12-21 03:20:26 UTC Comment hidden (obsolete)
Comment 15 QA Administrators 2023-01-21 03:24:03 UTC
Dear Lucas J,

Please read this message in its entirety before proceeding.

Your bug report is being closed as INSUFFICIENTDATA due to inactivity and
a lack of information which is needed in order to accurately
reproduce and confirm the problem. We encourage you to retest
your bug against the latest release. If the issue is still
present in the latest stable release, we need the following
information (please ignore any that you've already provided):

a) Provide details of your system including your operating
   system and the latest version of LibreOffice that you have
   confirmed the bug to be present

b) Provide easy to reproduce steps – the simpler the better

c) Provide any test case(s) which will help us confirm the problem

d) Provide screenshots of the problem if you think it might help

e) Read all comments and provide any requested information

Once all of this is done, please set the bug back to UNCONFIRMED
and we will attempt to reproduce the issue. Please do not:

a) respond via email 

b) update the version field in the bug or any of the other details
   on the top section of our bug tracker

Warm Regards,
QA Team