Thursday, February 12, 2026

GTViewer version 20.0.0.25 is Available

 


This is a big update for GTViewer 20 with a lot of new features/fixes/changes:

  • Reorganization of  Toolbars and Menus (better groups, cleanup of lesser-used commands)
  • New features on the Right-Mouse menu:  Edit Properties (on session graphics), Measure from Point, GPS Reference Point (toggles to replace Set Reference Point and Clear Reference Point).
  • Allows reordering Tabbed Views
  • A new simplified set of Accelerator keys (shortcuts)
  • Support for .NET 8+ External Apps (and new template app)
  • API has several new methods to support automatically External App dialog boxes. Greatly simplifies the sizing of the dialogs, it and lets you set min and max sizes for the resizable ones.
  • API has a couple of new events:  View Changed and View Position Changed. This supports the View Sync app and allows external apps to follow the view.
  • External Apps can now use Follow Mode (to move with GTViewer)
  • Much better support for High DPI displays:  Better scaling, better images, better selection tolerances, etc.
  • This version also has the beginnings of SQLite support for tabular data and queries.  It is not complete, but it's getting there!


-----------------------

20.00.00.25 - 02/11/26
-----------------------

- FIX - #8847 - Fixed a problem with the View title after a File/Reload.  The new description was being appended every time, even when it was already present.

- FIX - #8848 - Closing a Toolbox from the Tools menu would not properly clean up the object and could crash when exiting GTViewer.

- FIX - #8849 - HDPI adjustments so resizable dialogs scale appropriately for different DPIs.

- FIX - #8850 - Magnify Windows was closing when it received focus (as when trying to move the window).

- FIX - #8851 - Selection Tolerance was not scaled to DPI, which made it hard to select features when using high DPI settings.

- FIX - #8852 - Added new method to DialogObject: RunDialogCommand, which can keep an External App at the top left of its View window.

- FIX - #8856 - The Large Toolbar Button Setting has been removed since the automatic HDPI adjustment should do a better job.

- FIX - #8857 - The View Scroll Bar Setting has been removed since scroll bars are no longer supported (they were necessary for simulating touch commands in the past).

- FIX - #8858 - Documentation update for delivery.


-----------------------
20.00.00.24 - 01/26/26
-----------------------

- NEW - #8754 - Added a View/Reset Toolbar Customizations to completely clear all custom settings.  The Reset Toolbar Locations will remain a separate command.

- NEW - #8755 - More keyboard shortcuts have been added to do the 3 Fits (Ctrl F for all, Shift-Ctrl F for session graphics).

- FIX - #8756 - Using the + and - keys (or , and .), the zoom in/out only worked if the window was close to the screensize.  It will now correctly zoom in/out from the view center when the keys are used.

- CHG - #8758 - Reorganized the main toolbar icons to be more similar to GTViewer 15 but have better groupings.

- CHG - #8759 - The Tool/Set Password was moved under the Extract Data pop-up menu.

- CHG - #8759 - Minor changes to Menus to better match reconfigured toolbar groupings.

- CHG - #8760 - On the Right Mouse menu, the Set/Clear Reference point items have been replaced with GPS Reference Point, which will toggle the point on (at mouse point) or off if on.

- NEW - #8761 - If a right mouse click happens on a Session Graphics, it will show an Edit Properties and Select item under its feature info item.  This eliminates the need for the Select option as a mode.

- CHG - #8762 - The Right Mouse menu items have been better organized into Groups.  The first group uses the right-mouse click point.  There is also a View Display group, a Mode group, and a Tools group.

- FIX - #8763 - If the Drawing Info dialog has focus, the Esc key will dismiss it, but not correctly.  Now, the Esc is forwarded to the view.

- NEW - #8765 - The Right Mouse menu now supports the "Measure from Point" command.

- FIX - #8766 - The Start Position for External Apps has been shifted down below the View Tabs.

- NEW - #8767 - The Drawing Info dialog for Measure mode now shows the Key commands instead of the Color/Weight/Style/Fill sections.

- NEW - #8768 - Updated all visual app styles to be current Windows 11 styles.

- NEW - #8769 - Allow View Tabs to be dragged to reorder.

- FIX - #8770 - The Where Am I functionality and ExpStateLoadElementData method did not work correctly since support for the extended GTI_ properties was added to the expressions.

- FIX - #8771 - The HighlightedSaveList API call was not handling the Active Dynamic Graphics list correctly (id = 100), but the other modes were fine.

- FIX - #8773 - The GetDataProperty API was not correctly formatting CoordinateReadoutPrecision, FeatureTooltipMaximumThreshold, and FeatureTooltipMinimumThreshold.

- FIX - #8774 - The XML Export properties for the Coordinate Factors and minor_per_major were not correctly formatting the values and may have lost some of the precision.

- NEW - #8777 - Upgraded C++ to version 17.

- FIX - #8778 – Fixed the Logging message for Hyperlink Details.

- NEW - #8781 - A new simplified set of Accelerator keys has been added, and can be used even when a mode using a non-modal dialog is present.   A=Attr Info, P=Pan, D=Disp Mgr, X = Prox Search, H=Hide Raster, E=Emphasize, S=Draw Select, M=Measure, L=Draw Line, T=Draw Text

- CHG - #8782 - Changed the Overview toolbar icon to look different from Fit.

- NEW - #8783 - The Magnify mode now behaves like the Drawing Info dialog and cancels if mode changes.

- CHG - #8784 - The View Tabs will now use 2 colors:  Blue for selected and Gray for all others.

- FIX - #8785 - Fixed a measure reference line refresh problem seen with Measure From.

- NEW - #8804 - Support for .NET 8 and 9 External Apps.

- CHG - #8805 - After a Draw/Import Data Import, the mode is not set to Attribute Info mode instead of no mode.

- NEW - #8817 - The UpdateAvailableInfo tokens are not case-insensitive, and currentVer and currentVerStr have been added to be more semantically equivalent to the other entries.  ver and verStr are still supported.

- FIX - #8820 - A problem where the toolbar held on to a mouse capture when pressing a button while a non-modal dialog was active.  Only non-mode commands were affected (fit, fit session graphics, refresh)

- NEW - #8821 - If the zoom level after a Fit Session Graphics or Fit Highlighted Elements is less than the default Zoom Level, it is adjusted up to the Default Zoom Level.

- NEW - #8822 - The Fit Highlightedtoolbar button was added.

- NEW - #8825 - Three new DialogObject methods have been added to the API: SetMinSize, SetMaxSize, SetUserControlSize.  These new methods greatly simplify setting the initial dialog size from the user control (using its own Height and Width) as well as being able to set a Min and Max for the sizeable dialog mode.

- FIX - #8826 - Automatically opening the last opened file when it is no longer available was not giving an informative error message.

- FIX - #8827 - The All On and All Off Buttons on the Feature tab in the Display Manager were not working correctly for all View types. 

- FIX - #8828 - Wait Cursor added to the All On and All Off buttons in the Display Manager.

- NEW - #8829 - A new EventMessage (604) is now sent through API to the External App to indicate that there was a view update.

- NEW - #8831 - External App will now use the top left corner of the Active View for its initial position.  It was the top left corner of the view area.

- NEW - #8832 - In the Display Manager, all icons in the Trees and Lists will show a tooltip for the item's status.

- NEW - #8833 - External App dialogs can now optionally follow GTViewer (instead of staying in the same spot even though GTViewer is moved).

- CHG - #8845 - The New Session dialog size has been enlarged.  Wider to show more of the path and taller to show the full 15-item history.

- FIX - #8846 - The Browse button will now use the base path of the path in the textbox.  This was broken at some point due to changes in Windows.


Wednesday, February 11, 2026

GTViewer View Sync Add-On App

 



The View Sync Add-On App works with GTViewer 20 and will synchronize the view location and zoom level across multiple views to help compare data, show different features, etc., in a side-by-side layout.

Thursday, January 08, 2026

GTViewer for iOS/Android Version 7 is now Available

 


 

 

Version 7 of GTViewer for iOS and GTViewer for Android is now available.


These new clients work with older versions of GTViewer Data Server, but some features are only available when using GTViewer Data Server version 7. 

  • Azure IdP Authentication Support: You can now manage access to GTViewer Data Server (Version 7) using Azure IdP. Previous authentication methods remain supported, but the Server Login flow will first ask for the Data Server URL. Depending on the server’s configuration, it will then direct you to the Azure IdP login or prompt for a standard Username/Password.

  • Query Prompt Pick Lists: Borrowing from GTViewer for Windows (Version 20), you can now assign a list of values to a Query Prompt. This allows users to select from a predefined list rather than typing text manually.
 

  • Custom Feature Names: Also, borrowing from GTViewer for Windows (Version 20), this powerful update allows you to define feature names using any associated attribute values. This is particularly useful when selecting feature in congested areas. By displaying attributes like Circuit Name, Phase, Pressure, or Feature ID, users can easily identify the correct feature. These custom names can also be applied to Attribute Info Titles, placing critical information at the top to save users from scrolling.
 

  • Customizable Category Lists: The Category Display Manager has been enhanced. Previously, categories were displayed in the order they appeared in the .GTM file (which also dictated rendering order). Now, you can define a custom display order and hide specific categories from the list entirely while maintaining the underlying GTM rendering order.
GTM Order


Customized Order


  • Hide Blank Attribute Values: You can now configure the .GTM file to hide attributes with blank values within the Attribute Info display. This can be applied independently to Data Collection forms as well, ensuring a cleaner, more relevant interface for users.

  • New Attribute Types for Data Collection Forms: Several new attribute types have been added to streamline data entry and tracking:

    • GTI_PROJECT and GTI_WEBAPP_PROJECT: Project-level identifiers.
    • GTI_ELEMENT_TYPE: Provides the type of session graphics selected to start Data Collection form.
    • GTI_DATE: Automatically records the date the data record was last modified.

  • General Fixes and Updates: This release includes numerous fixes for issues identified since the last major version, along with optimizations to ensure full compatibility with the latest updates to the iOS and Android operating systems.







 


 





Wednesday, October 15, 2025

GTViewer Data Server version 7.0.0.3 is Available

  

GTViewer Data Server version 7.0.0.3 is available for testing.   

All of the GUI Tools have been updated so that items like tabstrips are easier to see, and all of the tools have a more consistent look.  GTShareViewer has also had a significant performance increase when viewing large numbers of records.

-----------

07.00.00.03 - 10/15/25
-----------

- FIX - #8786 - GTVDS_Poster - Fixed some issues preventing error messages from being displayed if there was a problem during the post.

- NEW - #8787 - Added Hash checks on Synced data to ensure integrity.

- FIX - #8789 - Added more error checking to many of the AppSetting properties.

- FIX - #8790 - Error messages for Tracking were backwards (for mode 1 and 2).

- FIX 8791 - GTShareViewer - The State Filter was behaving like Radio Buttons instead of Checkboxes, so if you selected more than one, it would not correctly filter the records.  

- CHG 8792 - GTShareViewer - Several Labels changed on the Filter Tab to make the operations more intuitive.   Apply Filter buttons changed to Add Date Filter and Add State Filter.  Headers and Note also updated.

- NEW - #8793 - GTShareViewer - Significant change to the Record ListView to boost performance when there are a large number of records.

- FIX - #8794 - GTShareViewer - Fixed some Wait Cursors not turning of on certain states.

- CHG - #8795 - All tools with tabstrip (GTVDS_Reset, GTShareViewer, GTVDS_Poster, GTV_Reset) so they are easier to see and determine which tab is active.

- NEW - #8796 - GTShareViewer - Progress bar shown when downloading data from server and preparing data for display.

- CHG - #8797 - GTShareViewer - Cached data is no longer kept beyond the current session.

- NEW - #8798 - GTShareAdmin - Added Hash checks on Synced data to ensure integrity.

- NEW - #8799 - GTShareAdmin - Added support for ExportCsv mode.

- NEW - #8800 - All tools with a login (GTShareViewer, GTViewer Data Client, GTVDS_Reset, GTVDS_ReturnLicense, GTVDS_Poster) will now default to the Connect button when enter is pressed, and then to the Login button if non-IdP login is used on second step.


Wednesday, August 27, 2025

GTViewer version 20.0.0.23 is Available

 



GTViewer 20 version 20.0.0.23 is available.   



-----------------------
20.00.00.23 - 08/27/25
-----------------------
- CHG - #8745 - The Touch Panel has been removed.  It's functionality is redundant to the Toolboxes.  It may come back another day.

- CHG - #8747 - Adjusted the Titlebar color of most dialogs.

- CHG - #8748 - The View Tabs will now show the [opened file]:[Description]

- CHG - #8749 - View Tab tooltip now shows the full file name for session, source data, and description.

- NEW - #8750 - Added support for Jump Lists on the Taskbar icon.

- FIX - #8751 - The installation was not associating GTViewer File types (.gtm, .gtx, .gts) with GTViewer 20.

- NEW - #8752 - Upgraded Common Controls Library (ComCtrl32) from verion 5 to version 6.

- CHG - #8753 - Keystroke Summary under help is now Key and Mouse Summary and linked to its own document.

-----------------------
20.00.00.22 - 08/18/25
-----------------------

- FIX - #8736 - Several Changes/Updates to the Status bar.  The Element count wasn't displaying as it has in the past.  This has been fixes plus some other updates to the status bar.   Also, tooltip have been added to the panes to describe the information they show.

- FIX - #8737 - The Cancel button on the Draw Text dialog didn't work.

- FIX - #8738 - The Weight combo now disables for TrueType fonts since it doesn't affect them.

- FIX - #8739 - The Touch Panel was intercepting keystrokes if it had focus and you couldn't use some of the key command like panning, rotate, and scale.

- FIX - #8740 - Changes to the Touch Panel so it would auto hide if you double-clicked its titlebar (there was not way to get it back).

- CHG - #8741 - The Draw Symbol dialog will now clear an active placement if the dialog is cancelled (to match the Draw Text dialog).

- FIX - #8742 - Query Dialogs did not give the first Prompt or ComboBox focus when the dialog started or the prompt values were cleared with the clear button.

- NEW - #8743 - View Tab will now show the .GTM/GTX description as a tooltip.

- FIX - #8744 - Problem with Display Manager using DisplayPriority entries to reorder Categories.

Tuesday, July 22, 2025

GTViewer Data Server version 7.0.0.2 Beta is available for Testing

 

GTViewer Data Server version 7.0.0.2 Beta is available for testing.   

This update includes a few fixes and includes a new tool called GTShareAdmin which is a command-line version of GTShareViewer and is very similar to GTVDSAdmin except that it uses HTTP instead of Web Services to communicate with the server.

-----------

07.00.00.02 - Beta - 7/22/25
-----------

- FIX - #8721 - GTVDSAdmin - If the server is using IdP for user authentication, but the IdP information was not provided (with -idp or in parameter file), then it would give an exception instead of an Error message.

- FIX - #8722 - GTVDSAdmin - If a ServerURL is not provided, it will give an error message and  stop instead of trying with the autocompleted one.

- FIX - #8724 - GTVDSAdmin - The -RegIdp and -Idp were not using the correct entropy value for saving the encoding information.

- FIX - #8727 - GTShareViewer - The storage directory for Idp info was not correct.

- CHG - #8728 - GTShareViewer - When Exporting to GTG, the Project Info setting determines if a project is to be treated as a Redline webapp or a Data Collection webapp.  Previously, it looked for redlines transaction types to treat it as redlines.

- CHG - #8729 - The IdP_GTVDSAdmin_Groups entry in the App Settings has been changed to IdP_API_Groups.

- NEW - #8730 - The GTShareAdmin tool has been added to provide command-line access to GTShareViewer functionality.  It currently has just a subset and is very similar to GTVDSAdmin, but it connects to the server via HTTP and not Web Services.


Wednesday, July 09, 2025

GTViewer Data Serever Version 7 Beta is Available

 

GTViewer Data Server version 7.0.0.1 Beta is available for testing.   

Version 7 of the GTViewer Data Server has several updates.  The biggest new feature is that user authentication can now be handled by an Azure Identity Provider (IdP).   The default user authentication and Custom User Manager are still supported.  A new GTViewer for iOS Client version 7 is also available for testing (via Test Flight) and an Android Client will be available later.

-----------
07.00.00.01 - Beta - 6/27/25
-----------

- CHG - #8376 - The Documentation listed the GTViewer_LogfileLife being is Day units, but it is actually in Hour units.   The documentation has been updated rather than changing the application.

- NEW - #8703 - The GTI_UserManager will now send the Device Id to the CustomUserManager via the Session object, making it accessible to the custom code.

- FIX - #8704 - If a deviceId from client was not valid, it was not returning the correct error message.

- FIX - #8705 - If deviceId from client was not valid, it was not writing the correct Audit record.

- NEW - #8706 - GTManifest - Synced with GTViewer Data Server 7.0.0.1

- NEW - #8707 - GTViewer Data Client - Synced with GTViewer Data Server 7.0.0.1

- NEW - #8708 - GTViewer Data Client - Updated to support Azure IdP.   

- NEW - #8709 - GTShareViewer - Synced with GTViewer Data Server 7.0.0.1

- NEW - #8710 - GTShareViewer - Updated to support Azure IdP.   

- NEW - #8711 - GTVDSAdmin - Synced with GTViewer Data Server 7.0.0.1

- NEW - #8712 - GTVDSAdmin - Updated to support Azure IdP.   

- NEW - #8713 - All GUI Tools - All Message boxes now center on the app and not the screen.

- FIX - #8714 - GTVDS_ReturnLicense - Button status updates was not always correct.

- FIX - #8715 - GTVDS_Poster - Button status updates was not always correct.

- FIX - #8716 - GTViewer Data Client - Status list is not cleared on logout.

- CHG - #8717 - GTViewer Data Client - Return License removed from menu since it doesn't consume a license.

- NEW - #8718 - Support for Azure IdP User Authentication (in addition to the default method or Custom User Manager Assembly).

-----------
06.00.00.14 - 3/14/24
-----------

- FIX - #8457 - Some of the Usage Audit Log entries used local date/time format instead of an Invariant one.

- FIX - #8458 - If a Device Id is blank, it will no longer validate.

- CHG - #8465 - GTShareViewer - The initial Connect and Project change will now trigger a Refresh All instead of an Update.

- NEW - #8466 - GTShareViewer - If a Redline Project doesn't have any records in it, you will still be able to select the GTI_Redline Web App and import new data.

- CHG - #8467 - GTShareViewer - The Import tab now supports an Import GTG File feature.  All Displayable Elements will be imported into the Redline Project as new elements.  You will be able to specify a Note value placed on each element and it can be used to delete the elements later on.

- CHG - #8468 - GTShareViewer - If only one Web App is available for the Import Tab, it will be selected automatically.

- NEW - #8469 - GTShareViewer - Export XML now supports and Additional Info option to include original and angle info for Point and Text elements.

- FIX - #8471 - GTShareViewer - Changes to the Compact Status information to better reflect what is on the server.

- FIX - #8527 - Machine Name was called Machine ID in Logfile header.

- NEW - #8528 - Additional Logging added to PostImage.aspx, WebAppGet.aspx, and WebAppGetInfo.aspx.

- FIX - #8600 - Exception were for Image posting were only thrown if logging was on.  This is probably not an issue since it will always log error, but the changes were made.

- CHG - #8601 - When Posting an Image, if the image already exists, it will no longer give an error.  It will rename the existing file and save the new file name as the existing name.

- FIX - #8602 - Added more error checking to ensure that a complete image was uploaded before saving it on server.

- FIX - #8603 - Added more error checking to ensure a complete file was uploading before saving on server.

- CHG - #8604 - When Posting a File, if the file already exists, it will no longer give an error.  It will rename the existing file and save the new file name as the existing name.

- FIX - #8605 - Added check when posting Data Collection records to ensure all of the data was received from client before processing.


-----------
06.00.00.12 - 3/28/23
-----------

- FIX - #8434 - WebAppGet.aspx, GetRecs.aspx, and Post.aspx were not abiding by the PostMode=0 setting for Split Servers (Data Collection/Redlines on different server).

- FIX - #8435 - GTVDS_Reset - Resizing the Dialog didn't properly fit the result view to the new size.

- NEW - #8435 - Machine Name and Post Mode added to logfile header and GTVDS_Reset output.

-----------
06.00.00.11 - 2/16/23
-----------

- NEW - #8381 - Support for Machine Id in Registration Key.

- FIX - #8382 - GTShareViewer - The Project Info is now encrypted by the Server and GTShareViewer was not decrypting it.


GTViewer 20 version 20.0.0.21 is Available

 



GTViewer 20 version 20.0.0.20 is available.   


-----------------------
20.00.00.21 - 07/08/25
-----------------------

- FIX - #8701 - Fix in the cleanup when a Session is closed.

- CHG - #8702 - This Custom Raster now supports only GDI+ formats so it can support both x86 and x64 platforms.

- FIX - #8719 - Optional Categories that were not present would cause issues with the Display Manager when it was activated.

- FIX - #8720 - On the Display Manager's In View's tab, if a filter id was not defined, it would cause an error when updating the listview items.