ITrack/AX/Changelog Version 2024
From ISoft Wiki
Jump to navigationJump to search
Revision 23112-24206
General
- Added: new product-level versioning system. All dlls are now built with a version # that can be seen in windows explorer. This information can be seen in the help->about box.
- Changed: all usage of libcURL from version 7.61.1 to 7.88.1. This update allows all of our HTTPS operations (including connecting to the auto-updater) to support TLS 1.3.
- Changed: all usage of libMySQL from version 6.1.11 to 8.0.27. This update allows connection to the newest versions of MySQL server, as well as supporting TLS 1.3.
- Changed: all usage of openSSL from version 1.0.2 to 1.1.1w. This is used both by the new version of libcURL as well as the new version of libMySQL to handle newer security.
- Changed: all usage of zlib 1.2 to 1.3. This handles compression in mysql and libcURL.
- Fixed: many queries have been updated to escape certain column names that will cause issues when using MySQL 8.
- Fixed: (case 51708) an issue where dropdowns in a list control on windows 11 might not look quite right. In addition, dropdowns in the first item might flicker unnecessarily.
- Fixed: a rare issue where, when a list edit/dropdown/date picker/etc disappears, the list cell behind it might not draw correctly.
- Fixed: date/time controls in list controls would 'revert' their input when the user hit escape, but would not hide correctly. Now the date control will be hidden correctly.
- Added: ability to override font for specific subitems in a list control, not just entire columns.
- Fixed: (case 52080) an issue where data saved from mobile might not display line-breaks correctly. Now ITEdits turn '\n' into '\r\n' as data is pushed into the field.
- Added: some performance improvements to speed up list text rendering.
- Added: single field multi-line cells now support both windows and web linebreaks (\r\n and \n).
- Added: support for ITFooterCtrl to return the space needed to render the current text content. This is useful for resizing to fit.
- Added: ITListCtrl now considers the footer contents (if any) when resizing a column to fit content.
- Added: now that subitems can have different fonts, the resizing code will consider that when finding the 'largest' size required to fit data.
- Fixed: ITStatusBar was not adding an ellipsis when cutting off text. Also, the string was not properly copied before drawn, so the original data could've been modified.
- Added: the concept of 'accessible' columns in the ITListCtrl separately from hidden/visible columns. Inaccessible columns are hidden in the list, but also they are not shown in the right click menu to unhide hidden but accessible columns.
- Added: ResizeColumnToFitData to ITColumnTreeCtrl like ITListCtrl.
- Fixed: an issue where some members were not initialized in list control constructors, causing inconsistent behavior in release mode. This was leading to release mode issues when calling ResizeColumnToFillList or GetTotalColumnWidth and was breaking column resizing.
- Added: some (probably unnecessary) protection in ResizeColumnToFillList in situations where values could be driven negative, causing issues.
- Fixed: ITDateRangeCombo::Clear now properly resets the associated pickers to the newly selected range string.
- Added: new date range span options "Next Month", "Next Quarter", "Last 6 Months", "Next 6 Months"
- Changed: when parsing column widths saved in the database, if values outside of a rational range (currently -1500 to 1500) will be ignored, and the default will be used instead. This is important because there was a short period in which random values were being saved as user column width preferences, which could make some lists hard to view/use when those preferences were loaded.
- Added: if a list column with "inline icons style" is either centered or right aligned, the icon/text content will attempt to center or right align correctly.
- Added: slightly better handling of situations where items failed to add to a list because of out of memory issues.
- Changed: users with very large list controls were finding it very slow to drag and drop items. To improve this behavior without removing precision, the longer the user drags a row in a list in the same direction, the faster the scroll will be.
- Fixed: a corner case where, if the first control on a property page was a control that gets destroyed before first render (common with ITAdvancedComboBoxes), the property page would be forever stuck in a mode where it would not remember the last focus on that page.
- Fixed: there was a report that tooltips were not working inside ITDialogs. I found that this was because tooltips hide if the 'topmost parent' is inactive, which is true when a popup is present. So the tooltips would only show if you alt+tabbed away and back, forcing the main window to be focused instead of the popup. I fixed this by always returning TTN_ALWAYSTIP which is a style to show tooltips even on an inactive window. I don't think this will disrupt anything.
- Fixed: several improvements made to ITView based tooltips have been ported to the ITDialog based tooltips, including piercing through transparent overlapping windows.
- Added: all top level windows in the application will now respect the windows user's 'darkmode' vs 'lightmode' setting with regards to the title bar.
- Added: the ITIconButton and ITSplitButton now properly render if the user has windows high-contrast themes on.
- Added: (case FB-55284) support for copy and paste right click options in all list controls. Copy is always allowed, paste is only allowed if the user right clicks on a cell that they can edit.
Database
- Fixed: some historical updates have been made MySQL 8.0 compatible.
- Fixed: several stored procedures and functions have been modified to be MySQL 8.0 compatible.
Administration
- Added: the edit auction popup now has a field for host yard name.
- Changed: the edit auction popup has been cleaned up.
- Added: the auction list now resizes with the user's window size for more space. The auction name, host name, and location all resize to fit the data in it.
Crystal Reports
- Changed: to avoid confusion, the "Favorite" checkbox in the "Choose report to print" popup has been replaced with a star icon. This dialog appears if there is more than one report option when performing a print job. This will make it clearer that the user is simply choosing a favorite, not checking which report to print.
Inventory
- Changed: (case 51352) temporarily removed the email button on the advanced tab of the inventory screen because it was only partially built in 2007. It will be disabled until it gets fully implemented.
ITMySQLConnection
- Added: some explicit memory management to attempt to circumvent mysql client running out of memory.
- Fixed: (case 53807) an issue where, if a mysql connection was closed due to inactivity or server shutdown, the connection would silently auto-reconnect, but the first query run on the fresh connection would return no results.
- Changed: minor updates to avoid features being deprecated by MySQL.
- Changed: previously, if "usessl" in the configuration was set to False, the connection would stay in "SSL Preferred" mode, which would still attempt to negotiate an SSL connection, if possible, falling back on unencrypted connections. Now, if usessl is off, the connection will not even attempt to establish a secure connection.
Master
- Added: the help->about box now shows the database version as well as the product version.
- Added: the help->about box now shows the product version each file in the application were designed for and ones that don't match the product version are shown in red with an attention icon.
- Changed: the Help->About dialog no longer looks for a file called ITrack.exe and instead reads the product version from the main module itself in memory, in case the application ever uses a renamed entry point file.
- Changed: if the user closes the application or it fails to load before its visible, the application will no longer overwrite the 'last' size/position of the application in settings.
- Added: during loading extension modules, the product version of each file is now checked. If the major version of a loaded module does not match the master module, it will be put in a popup for the user to alert them to this (potentially) erroneous state.
- Added: so that users can avoid seeing this popup on every launch, the popup has a "don't show this message in the future" checkbox. If checked, all those *specific* files at those versions will be remembered for that user. If any new files (or existing files at new versions) are seen later, they will be shown to the user again. The user can choose to continue loading all modules (previous behavior) despite the version mismatch, load only those modules whose version matches (skip bad files), or close the application.
- Fixed: an issue where clicking the 'close application' box would prevent change detection messages from appearing for any open screens.
- Removed: an old "Are you sure you want to close" confirmation popup on application close that had been broken for awhile.
- Added: if the user has windows dark mode turned on, the application title bar will now show dark.
- Fixed: an issue where the logout vs close value wasn't being sent correctly. This was causing weird popups in some screens.
Updater
- Added: the Updater.exe is now built with the same manifest settings as ITrack.exe, namely assembly identity and explicit operating system compatibilities.
- Added: (case 59196) the updater now detects the current windows operating system version as part of updating to detect available windows features.