GUI Toolbox - Inconsistent behavior on activation of former selected option (tool).
Version
Commit 0997887d
Description
The toolbox is a set of buttons for creating diagram objects located to the left in the main GUI windows. The toolbox consists of an upper part with fixed options and a lower part with selectable options such as UML or Network.
Pressing "space" reactivate the last used diagram option. This enable the user to quickly insert multiple diagram objects of the same type. For instance multiple UML class objects.
Issue
The behavior is inconsistent from a user perspective. The diagram option reactivated by pressing "space" is the last active diagram option not the last option selected by the user.
The difference is that some options is composite actions consisting of multiple programmatically activated options. The UML class object is a single action, create object while the UML note object consists of create object followed by text edit.
On reactivation after creating a UML note object the last option is the test edit option but the last option selected by the user is the create note. Thus test edit option is activated not the create note option as the user would expect.
Code flow:
--- Select UML note -------------------------- ** Message: 23:54:09.138: Tools::tool_free::modify ** Message: 23:54:09.138: Tools::tool_select::modify ** Message: 23:54:09.138: Tools::tool_select: Button GtkRadioButton
** Message: 23:54:09.138: Tools::tool_free::modify ** Message: 23:54:09.138: Tools::tool_select::create_object ** Message: 23:54:09.138: create_object::create_create_object_tool ** Message: 23:54:09.139: Tools::tool_select: Button GtkRadioButton --- Apply object ------------------------
** Message: 23:54:45.537: create_object::create_object_button_press ** Message: 23:54:45.681: create_object::create_object_button_release
** Message: 23:54:45.681: Tools::tool_free::create_object ** Message: 23:54:45.681: create_object::free_create_object_tool ** Message: 23:54:45.681: Tools::tool_select::create_object ** Message: 23:54:45.681: create_object::create_create_object_tool ** Message: 23:54:45.681: Tools::tool_select: Button GtkRadioButton
** Message: 23:54:45.684: Tools::tool_free::create_object ** Message: 23:54:45.684: create_object::free_create_object_tool ** Message: 23:54:45.684: Tools::tool_select::text_edit ** Message: 23:54:45.687: Tools::tool_select: Button GtkRadioButton
--- Deselect, clicking on diagram background ------------
** Message: 23:55:53.679: Tools::tool_reset
** Message: 23:55:53.679: Tools::tool_free::text_edit ** Message: 23:55:53.679: Tools::tool_select::text_edit ** Message: 23:55:53.679: Tools::tool_select: Button GtkRadioButton
** Message: 23:55:53.684: Tools::tool_free::text_edit ** Message: 23:55:53.684: Tools::tool_select::modify ** Message: 23:55:53.684: Tools::tool_select: Button GtkRadioButton --- Reactivate, pressing ----------------------------
** Message: 23:56:19.255: Tools::tool_select_former
** Message: 23:56:19.255: Tools::tool_free::modify ** Message: 23:56:19.255: Tools::tool_select::modify ** Message: 23:56:19.255: Tools::tool_select: Button GtkRadioButton
** Message: 23:56:19.256: Tools::tool_free::modify ** Message: 23:56:19.256: Tools::tool_select::text_edit ** Message: 23:56:19.256: Tools::tool_select: Button GtkRadioButton
Effects
User experience, inconsistent behavior.
Setup
Extra log lines added to the tool component.
Test case
Manual Create UML class
- Select UML as diagram type.
- Select option class
- Apply class on canvas
- Press , class is reactivated
- Apply class on canvas
Expected result: Class option is reactivated - Passed
Create UML note
- Select UML as diagram type.
- Select option note
- Apply note on canvas
- Test input is activated
- Deselect note to exit test input
- Press , text input is reactivated
Expected result: Note option is reactivated - Failed