= Mini project 2023: Improving Single-Window GUI user experience = || Title: || '''Improving Single-Window GUI user experience''' || || Student Name: || Linda Kladivova || || Organization: || [http://www.osgeo.org OSGeo - Open Source Geospatial Foundation] || || Mentor Name: || Anna Petrasova, Martin Landa, Vaclav Petras || || !GitHub Repository: || [https://github.com/lindakladivova view repository] || || Budget: || 1000 € (via GRASS GIS [https://grasswiki.osgeo.org/wiki/Student_Grants Student Grants]) == Abstract == The project builds on the discussion with users and the usability testing of a new and old GUI, which took place in April 2022. The proposed work can be divided into two main topics - the reorganization of the Console pane and the implementation of the ability to undock a map window. Additionally, the project plans to address the topic of saving Single-Window GUI layouts to workspaces. == Goal == The core part of the work will be devoted to reorganizing the Console pane and implementing the ability to undock a map window. The first topic lies in ensuring a better visual separation of Console output and Command prompt functionality. Today, it is not clear which buttons belong to the Command prompt and which to the Output window. Moreover, in the Single-Window GUI layout, the widget with buttons managing the Command prompt is partly hidden after the GRASS launch. The graphical proposal for separating Console output and Command prompt functionality is included in https://github.com/OSGeo/grass/issues/2585 . Besides visual separation, accessing the command history with the Log File button is not intuitive and will be replaced by a button for simply exporting the entire command history. Based on the results from usability testing, undocking and docking map windows is also essential functionality for users. This project aims to add a button to the map display toolbar enabling undock and dock map display windows. Adding this functionality will allow users to achieve a similar layout as in Multi-Window GUI if desired. The last topic develops the idea that users should be able to save user-defined layouts in a Single-Window GUI within the workspace. This functionality is the first step for managing user-defined layouts in GRASS. == Timeline == {{{#!th style="background: #ddd" rowspan=2 '''Time Period''' }}} {{{#!th style="background: #ddd" colspan=2 '''Milestones''' }}} |----------------------- {{{#!th style="background: #ddd" Tasks }}} {{{#!th style="background: #ddd" Status }}} |----------------------- {{{#!td November 21 - November 25 \\ ''Week 1'' }}} {{{#!td '''Undock and dock Map Display panel (enable using Single-Window as Multi-Window)''' - https://github.com/OSGeo/grass/pull/2667 }}} {{{#!td \\ WIP \\ }}} |----------------------- {{{#!td November 28 - December 2 \\ ''Week 2'' }}} {{{#!td '''Undock and dock Map Display panel, Export history button in Console''' - https://github.com/OSGeo/grass/pull/2667 - https://github.com/OSGeo/grass/pull/2682 }}} {{{#!td \\ WIP WIP \\ }}} |----------------------- {{{#!td December 5 - December 9 \\ ''Week 3'' }}} {{{#!td '''Undock and dock Map Display panel, Export history button in Console''' - https://github.com/OSGeo/grass/pull/2667 - https://github.com/OSGeo/grass/pull/2682 }}} {{{#!td \\ WIP DONE \\ }}} |----------------------- {{{#!td December 19 - December 23 \\ ''Week 4'' }}} {{{#!td '''Undock and dock Map Display panel, Adding input <-- to command prompt''' - https://github.com/OSGeo/grass/pull/2667 - https://github.com/OSGeo/grass/pull/2718 }}} {{{#!td \\ WIP WIP \\ }}} |----------------------- {{{#!td December 19 - December 23 \\ ''Week 5'' }}} {{{#!td }}} {{{#!td \\ \\ }}} |----------------------- {{{#!td January 2 - January 6 \\ ''Week 6'' }}} {{{#!td }}} {{{#!td \\ \\ }}} |----------------------- {{{#!td January 9 - January 13 \\ ''Week 7'' }}} {{{#!td }}} {{{#!td \\ \\ }}} |----------------------- {{{#!td January 16 - January 20 \\ ''Week 8'' }}} {{{#!td }}} {{{#!td \\ \\ }}} |----------------------- {{{#!td }}} |----------------------- == Weekly reports == == Week 1 == '''1) What did I complete this week?'''\\ At the beginning of this week, I was a bit stuck on the Console reorganization topic (see Issue https://github.com/OSGeo/grass/issues/2585). As it is probably the most important topic of the project, for the next weeks we better clarified how the result should look like. To fully use the time between, I changed the timeline a bit and first started to work on the issue of map display page (un)docking. I set up the PR ​https://github.com/OSGeo/grass/pull/2667 for that topic and plan to continue on it next week. Moreover, I noticed a bug appearing when a user moves a map display notebook page (or wants to pull it out of a map display notebook). '''2) What am I going to achieve for next week?'''\\ After more testing and fixing I would like to merge the above-mentioned PR dealing with Map Display page (un)docking - please see ​https://github.com/OSGeo/grass/pull/2667. Specifically, I need to test the behaviour of undocked map display panel when switched to 3D mode. In the meantime, I am going to prepare locally the branch dealing with Console panel reorganization. I would also like to address some small bugs I have revealed when working in Single-Window. '''3) Is there any blocking issue?'''\\ No, it isn't. == Week 2 == '''1) What did I complete this week?''' I was mainly working on PR https://github.com/OSGeo/grass/pull/2667 dealing with dock/undock map display functionality. This PR is finished and waits for the final review. Further, I started to work on the Console reorganization topic, specifically, I have set up the new PR https://github.com/OSGeo/grass/pull/2682 replacing the togglable "Log file" button with the "Export history" button. This first step is going to better steer the direction of Console reorganization. '''2) What am I going to achieve for next week?''' I plan to merge both above-mentioned PRs and proceed to work on the Console reorganization topic according to Issue https://github.com/OSGeo/grass/issues/2585. Not only it involves the widget reorganization itself, but it also improves user experience by adding >>> to the command prompt window. '''3) Is there any blocking issue?''' No, it isn't. == Week 3 == '''1) What did I complete this week?''' I returned to the PR https://github.com/OSGeo/grass/pull/2667 dealing with dock/undock map display functionality because although the PR was finished in terms of functionality I am satisfied with the code. I have started with refactoring and created a new MapNotebook class in a separate file. I think for future maintenance it is an important step. I am still working on it. This week I also finished PR https://github.com/OSGeo/grass/pull/2682 implementing the Export history button in the Console pane and I am waiting for the final mentor review. '''2) What am I going to achieve for next week?''' I hope I will finally start working on the Console reorganization issue. This topic should not be such time-consuming as docking functionality. On Thursday I am going on holiday (till Sunday) so I am going to extend a bit my project timeline. '''3) Is there any blocking issue?''' No, it isn't.