Thursday January 22nd, 2015 by Heiko Tietze
Over the last couple of month we mooted diverse changes for the toolbar in order to update it according the usual workflow. For instance, we discussed the inclusion of Copy and Paste into a new ‘clipboard’ item using a split button control. Or we removed some rarely used items. To learn more read about the standard toolbar in Writer, the results on Calc’s toolbar, and how people utilize Impress.
However, all these changes do not necessarily fit your personal workflow. Maybe you are a casual user who just wants to write down a letter and don’t wants to get bothered with the potpourri of options that Libreoffice provides. And others might run Libreoffice in a business environment with standard procedures that makes a completely different access to functions necessary.
Since there is no default user, everybody should be able to customize the program for his or her own needs. Actually you can customize all aspects of Libreoffice right now, but the workflow is not intuitive.
The dialog for customization is opened by right clicking a toolbar item (except drop-down menus like font name; and right-click does not work on free space) and selecting Customize Toolbar… from the context menu, or via main menu > Tools > Customize.
To change an item you have to select the menu or toolbar you want to change from the dropdown (in figure 1 the (sub-)menu Format > Change Case has been selected).
In case of customization for toolbars you can show or hide items that were assigned to the toolbar beforehand. If you want to add another function you need to click on Add, which opens another dialog showing all available functions. It is organized in categories to break down the extensive list of functions.
You may add separators, rename or delete items, and restore the default. When customizing menus you can add submenus; for toolbars you can change the icon.
But there is no option to search for a function (which is one the major issues of the current dialog). And the customization gets even harder when you want to assign a different or new shortcut to a function.
It is possible to search for a shortcut by selecting the list Shortcut keys and pressing the key combination (e.g. ctrl+alt+v = Paste Unformatted Text). Unfortunately the category and function below are not selected accordingly. And with Modify you assign the selected shortcut to the function selected below. So you need to browse through category/function first. If you have found the function you are looking for and if it is assigned to a shortcut the upper list is updated accordingly. Pressing Modify updates the shortcut to what you select in the upper list. If the shortcut was previously assigned to another function this association would be cleared. For instance, you select Insert/Date and assign ctrl+D as a shortcut, the default with Double Underline would be cleared. Otherwise, functions may have more than one shortcut, and you can assign both ctrl+D and ctrl+T to Insert Date.
In addition to the customization of toolbars, menus and shortcuts the dialog contains of a tab to organize events like Open Document, Close Application etc. You can assign macros to those events and, for instance, backup the document on save. So events are rather part of the macro definition than the customization and will not be part of this proposal hence.
- Martin wants to be able to add/remove items to/from menu and toolbar in order to organize the menu or toolbar for his needs.
- Martin wants to be able to sort items up/down (including groups) in order to organize the menu or toolbar for his needs.
- Martin wants to (re-)assign shortcuts to functions in order to organize the workflow according his needs.
- Martin wants to be able to group items by using submenus/menu- or split buttons in order to organize the workflow for his needs.
- Martin wants to have multiple occurrences of functions (but not within the same level) to have access in more than one use cases.
- Martin wants to be able to create and organize new toolbars/menus to not override the system standard.
Navigation & Support
- Martin wants to search for functions (including fuzzy search) by
a) the function name (“Select the function xy quickly, with no need to know the right category.”),
b) the caption of menu item or toolbar button (“Into what toolbars/menus did I add the function xy?”), and
c) the default and the actual shortcut (“What function is usually assigned to shortcut xy?”, “What function do I have assigned with xy?”).
- Martin wants to be able to browse through functions including the usual behavior with jump to the first item on key press to find those functions he knows.
- Martin expects to have drag ‘n drop support when adding or sorting items.
- Martin wants to save/load the customization on the program level (but not application wide) as well as on a document level to share functionally restricted templates.
- Martin wants to have a description for items to learn about what it is used for.
- Martin wants to have immediately a preview on changes to get perfect feedback.
- Martin wants to be able to customize Libreoffice on his mobile device.
Premises of the mockup are:
- have all customization in one dialog without tabs
- use the well-known dual-list pattern
- consider mobile devices
The dual-list pattern consists of a view with all available functions on the left hand (similar to the current one), a button to add the selected function to the actual selection on the right hand. You have to choose first between menu and toolbar (tabs), and then which one should be changed (dropdown). The dropdown for both menus as well as toolbars contains of top level items only showing all submenus or menu-/split buttons below. Options that are not available in the current context should be disabled.
We will call the left view the functions list and the right view the positions list. The dropdown for toolbar selection is used similarly for menu selection.
Search operations are applied to the functions list in terms of a filter. In the example all items that contains the term “date” are kept and all other are hidden. Additionally, the toolbar selection is restricted to those items that contains a function with the search term. But the positions list itself should still show all surrounding items.
Filtering the toolbar selection makes it easy to find items you are looking for, which could be a shortcut as well, but is not handy if an item should be added. You can either clear the search to reset the complete dialog or use the small icon right of the toolbar selection that shows up when filtering is active to unfilter the dropdown content only.
If you want to change the property of an item, i.e. caption, icon, or shortcut, you have to open the details view by double click. In order to change the shortcut you have to focus the input field and accept the keyboard input as new the key combination. If this combination is being used for another item a warning should be shown. Since changes become not effective unless the dialog is closed with Ok this option should be safe to use. Some items have application-wide shortcuts and require at least an indication that is done by the checkbox (and by the bold font as shown figure 4).
All changes can be saved to or loaded from user defined templates.
To provide a preview all changes should be shown immediately. But in contrast to the current version the actual state is restored when the dialog is not closed with Ok.
In order to free toolbar space we introduced a lot of split buttons recently. Those controls have a default function but provide also a dropdown menu with extended features. For instance, Paste inserts the text from the clipboard but has a dropdown where you can select a different format (aka Paste Special).
To enable the customization of own split buttons we would need to enhance the UI from ground. The advantage is not to have just new buttons but as well the option to move existing functions into the button’s menu. For example, you could create the ‘clipboard button’ yourself and move Copy, Cut, and Paste into this new menu.
The only change needed for the customization dialog is another item in the Add menu, namely to add a new toolbar- or menu item. Eventually sorting an item up/down should move it also into or out of a submenu.
The mockups above renders the idea how the customization could look like in future. It reassembles the existing features and streamlines the dialog. But perhaps you never customized your UI and would rather suggest to remove this feature completely. Or, less radically, you might want to have the customization as simple as possible. It could be just the on/off feature for toolbar items that we have right now, perhaps with the option to drag ‘n drop items to arrange the toolbar (menus wouldn’t be customizable anymore). On the other hand you might prefer to have as much options available as possible. This could include the advanced features from Options > Advanced > Expert Options.
So what we need is your input. Do you have different requirements? Is the dialog too complex to your taste?.
Of course we appreciate your comments too. All ideas are welcome. If we get a positive feedback we can start to realize the project at the next GSoC. In case you are interested in coding you are very welcome, with all support from experienced Libreoffice programmers granted.