<html><body>Hello everyone,<p style="margin-bottom:0pt;line-height:normal"><br></p><div>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]</div><div><br></div><div>
<p>
<strong>What did I complete during weeks 7-9?</strong><br>
I completed the PR <a class="-wm-ext-link" href="https://github.com/OSGeo/grass/pull/3421"><span class="-wm-icon"></span></a>[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 <a class="-wm-ext-link" href="https://github.com/OSGeo/grass/pull/3679"><span class="-wm-icon"></span></a>[3]).
Besides that, I introduced icons representing command status (success,
failed, running, aborted, unknown) and added them in front of history
entries (PR <a class="-wm-ext-link" href="https://github.com/OSGeo/grass/pull/3679"><span class="-wm-icon"></span></a>[4]). <br></p><p><br></p><p>Thanks Anna Petrasova for the valuable comments in the reviews! <br></p><p><br></p><p><b><span style="font-size:20px">Final report</span></b><br>
<b>Abstract</b></p><p>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. <br></p><p><br></p>
<p>
<strong>The state of the art BEFORE the start of the Mini project:</strong><br>
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. <br></p><p><br></p>
<p>
<strong>The state of the art AFTER Mini project:</strong><br>
Implemented changes include:
</p>
<ul><li>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.
</li></ul><ul><li>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.
</li></ul><ul><li>Adding a symbol in front of each command in the tree based on the command's status.
</li></ul><ul><li>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.
</li></ul><p>
The task of filtering commands based on status was not addressed during the project due to higher-priority issues that emerged:
</p>
<ul><li>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.
</li><li>Introducing a new Delete option in the command tree
</li><li>Rearranging the Export History button
</li></ul><p>
<strong>Next Steps:</strong><br>
Possible improvements for the History browser pane:
</p>
<ul><li>Fixing of command status for nonsense entries (already noted here: [6]):
</li><li>Sorting the commands in the history tree from the newest to oldest (seems more logical)</li><li>Implementing efficient refresh methods (currently all nodes are refreshed when adding
a command)
</li><li>Showing the complete error text if a command fails. (Now there is a “failed” status written but no clue what actually happened).
</li><li>Adding the new combo box restricting the filtering based on the command status
</li><li>Adding the Copy context menu option to command nodes
</li></ul><p></p></div><p>Permanent links to GitHub PRs and screenshots of the improved History Browser pane can be found at [7] and [1].</p><p><br></p><p>[1] <a href="https://trac.osgeo.org/grass/wiki/wxGUIDevelopment/EasyCommandHistoryNavigation#ScreenshotsofHistoryBrowserimprovements">https://trac.osgeo.org/grass/wiki/wxGUIDevelopment/EasyCommandHistoryNavigation#ScreenshotsofHistoryBrowserimprovements</a></p><p>[2] <a href="https://github.com/OSGeo/grass/pull/3622"><span>https://github.com/OSGeo/grass/pull/3</span>622</a></p><p>[3] <a href="https://github.com/OSGeo/grass/pull/3421"><span>https://github.com/OSGeo/grass/pull/3</span>421</a></p><p>[4] <a href="https://github.com/OSGeo/grass/pull/3679"><span>https://github.com/OSGeo/grass/pull/3679</span></a></p><p>[5] <a class="-wm-ext-link" href="https://github.com/OSGeo/grass/pull/3234https:/github.com/OSGeo/grass/pull/3234">https://github.com/OSGeo/grass/pull/3234</a> </p><p>[6] <a class="-wm-ext-link" href="https://github.com/OSGeo/grass/issues/3698">https://github.com/OSGeo/grass/issues/3698</a></p><p>[7] <a href="https://trac.osgeo.org/grass/wiki/wxGUIDevelopment/EasyCommandHistoryNavigation#FinalReport"><span>https://trac.osgeo.org/grass/wiki/wxGUIDevelopment/</span>EasyCommandHistoryNavigation<span>#FinalReport</span></a></p><p><br></p><p>Have a nice week.</p>Linda</body></html>