- regarding the ILINK_LibraryPath for Cfg_1_Win32 (Debug):
Win32\Debug (not only Win32c\Debug) needs to be before Win32c\Release, as win32c does not include debug builds of Pascal code - so without that VCL debugging won't work
- IDE insist on adding CC_Suffix to all projects once switched to Clang, although it is only used in WinSCP.cbproj
- UNICODE define: Not needed for build (it's implicit), but CodeInsight does not know it it somehow
Source commit: da06d73eb86caff5ca9cac0185bed54da0da8f07
- Once doing that, including more headers to PCH, not just vcl.h
- Clang won't need explicit include, but we will probably keep it anyway.
- #pragma hdrstop has no effect in Clang
Source commit: adc8a268b6907c5337ccaa430cca7526793a3019
Mostly
– explicit static global variables
– const, sign and down casts safety
– same-named variables in nested scopes
– incorrectly identified uninitialized variables
– semicolon after function implementation
– unused variables, fields, arguments and macros
– exact include filename case
– field initialization order
– typename use
– struct vs class declarations
– incorrectly identified uninitialized variables
– refactoring to solve Clang internal compiler error when using new variable in __finally block
Source commit: 3da995ff5169eefcfe3b3b7cc0d019c660096c07
Buttons done in c1ccbe1e
Might also revert the combobox Style changes in TLoginDialog from a90827e6, if they have some negative side effects.
The dark mode now works without the change, if system theme is dark.
Part of Issue 1696.
Source commit: 2ce0e4b4c87878113010a06de4d51e1caf20df86
https://winscp.net/tracker/2345
Comboboxes with csDropDownList style do not reflect the Color, but do with csOwnerDrawFixed.
csOwnerDrawFixed seems to behave the same, except for the height, which needs to be explicitly set slightly higher
Buttons are still white - they'd have to be custom-drawn (using "Windows10 Dark" custom style)?)
SetParentColor is probably obsoleted by 3a887624
Source commit: 851489ffff36845467f664a8a4a08d0556c1d2eb
– Control's Canvas does not have Font updated when painting, so it needs to be set explicitly in some places
– Page control drawing was not only incompatible, but broken in general, so it was refactored – giving up on trying to make it 100% mimic system drawing
– CM_DPICHANGED replaced with OnAfterMonitorDpiChanged for form-level scaling. Not really necessary, just for style. Though it is not called for initial resize (at least when starting on primary monitor with temporary non-system DPI)
– OnResize is not called for DPI change, so in some instances, some OnResize call was duplicated in OnAfterMonitorDpiChanged/CM_DPICHANGED
– Scaling of thirdparty box still does not work correctly (but Updates box works??)
– Scaling on primary monitor with temporary non-system DPI is bad
– TTreeView enabled DPI scaling when using Images that is not Scaled
– Discaring obsolete FSiteButtonsPadding workaround
– Controls programmatically added to form are automatically scaled to the form's DPI (relevant for message boxes)
Source commit: a86dddbfada30a5bc409687489bdcd12842050af
Comments:
- .res files seem to be linked automatically, so explicit entries in project files caused duplicates
- JCL updated for compatibility with BCB11 (jcld28win32.inc obtained by running JCJ installer [uninstalled afterwards])
Source commit: ec28d10a0bbb346ed2bb3940aed37e777342e663