Hello everyone,


I am sending the short report for weeks 7-9 and the final report of the Mini
Project devoted to improving GUI, particularly the History browser pane. The
goal of this project was to provide a user with a better command history 
navigation and I think it was quite successful :-), you can have a look at
screenshots here: [1]





What did I complete during weeks 7-9?
I completed the PR ​(https://github.com/OSGeo/grass/pull/3421)[2] 
implementing time node branching in the history tree. Moreover, I also added
a button to update the current region based on the region used during
command execution (PR ​(https://github.com/OSGeo/grass/pull/3679)[3]).
Besides that, I introduced icons representing command status (success,
failed, running, aborted, unknown) and added them in front of history
entries (PR ​(https://github.com/OSGeo/grass/pull/3679)[4]).





Thanks Anna Petrasova for the valuable comments in the reviews!





Final report
Abstract

This project builds upon the work initiated during the OSGeo sprint in
Prague in the summer of 2023, which focused on creating a new History
Browser panel to facilitate access to the command history. Although the new
History Browser panel became available in the GRASS development version 
starting December 8th (refer to the PR [5]), initially it provided only a 
basic, single-level display of commands from the history log, with the
capability to relaunch commands but lacking detailed command information. 
This project aims to enhance the basic functionality by incorporating
several improvements.





The state of the art BEFORE the start of the Mini project:
The History Browser panel displayed a simple tree of command entries loaded
from a plain-text history log. It had only the capability to relaunch
commands.





The state of the art AFTER Mini project:
Implemented changes include:

   * Transitioning the plain text format of the history log (.wxgui_history)
   to JSON format, allowing more information to be stored for each executed
   command. Newly, the log stores information about the timestamp, command
   status, runtime duration, region settings, and mask usage.


   * Instead of implementing the initially planned context option "Show 
   Info" and displaying a small dialog with process information, the history
   pane was redesigned into two sections. The upper part features the
   history tree, while the lower part includes two static boxes presenting
   information stored in the history log. The first box contains general 
   details, and the second box displays the computational region during 
   command execution.


   * Adding a symbol in front of each command in the tree based on the
   command's status.


   * Branching the tree based on the date of command execution - tree is 
   branched into days and sorted from the Today node to older nodes. Command
   nodes are sorted from the oldest to the newest.


The task of filtering commands based on status was not addressed during the
project due to higher-priority issues that emerged:

   * Adding the "Update current region" button, which dynamically updates 
   the region based on the executed command and its information stored in 
   the JSON-formatted history log.
   * Introducing a new Delete option in the command tree
   * Rearranging the Export History button


Next Steps:
Possible improvements for the History browser pane:

   * Fixing of command status for nonsense entries (already noted here: 
   [6]):
   * Sorting the commands in the history tree from the newest to oldest 
   (seems more logical)
   * Implementing efficient refresh methods (currently all nodes are
   refreshed when adding a command)
   * Showing the complete error text if a command fails. (Now there is a “
   failed” status written but no clue what actually happened).
   * Adding the new combo box restricting the filtering based on the command
   status
   * Adding the Copy context menu option to command nodes





Permanent links to GitHub PRs and screenshots of the improved History
Browser pane can be found at [7] and [1].




[1] https://trac.osgeo.org/grass/wiki/wxGUIDevelopment/
EasyCommandHistoryNavigation#ScreenshotsofHistoryBrowserimprovements
(https://trac.osgeo.org/grass/wiki/wxGUIDevelopment/EasyCommandHistoryNavigation#ScreenshotsofHistoryBrowserimprovements)

[2] https://github.com/OSGeo/grass/pull/3622
(https://github.com/OSGeo/grass/pull/3622)

[3] https://github.com/OSGeo/grass/pull/3421
(https://github.com/OSGeo/grass/pull/3421)

[4] https://github.com/OSGeo/grass/pull/3679
(https://github.com/OSGeo/grass/pull/3679)

[5] https://github.com/OSGeo/grass/pull/3234
(https://github.com/OSGeo/grass/pull/3234https:/github.com/OSGeo/grass/pull/3234)


[6] https://github.com/OSGeo/grass/issues/3698
(https://github.com/OSGeo/grass/issues/3698)

[7] https://trac.osgeo.org/grass/wiki/wxGUIDevelopment/
EasyCommandHistoryNavigation#FinalReport
(https://trac.osgeo.org/grass/wiki/wxGUIDevelopment/EasyCommandHistoryNavigation#FinalReport)




Have a nice week.
Linda
_______________________________________________
grass-dev mailing list
grass-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/grass-dev

Reply via email to