Difference between revisions of "Lazarus 2.2.0 release notes"
From Free Pascal wiki
Jump to navigationJump to search (→TAChart: TSortedChartSource) |
|||
Line 41: | Line 41: | ||
:** It is much simpler to detect template files now that dotted unit names are allowed. | :** It is much simpler to detect template files now that dotted unit names are allowed. | ||
:* Remedy: You can safely remove .po template files from your project after you rebuild your project with the new IDE (at this point .pot files should be generated). | :* Remedy: You can safely remove .po template files from your project after you rebuild your project with the new IDE (at this point .pot files should be generated). | ||
+ | |||
+ | * Debugger Config: The IDE now provides the ability to set up different debugger-configs as named profiles. | ||
= IDE Interface Changes = | = IDE Interface Changes = |
Revision as of 01:35, 9 July 2019
Lazarus 2.2.0 is not yet released. This page is under construction!
Statistics:
- commits: xxx
- log: svn log -r xxxx:xxxx
- resolved bug tracker issues: xxx
LCL Interfaces Changes
LCL Changes
TLazIntfImage.Create with size and description flags need no CreateData anymore
- Old: After creating of a TLazIntfImage with size and flags CreateData has to be called
- New: Creating of a TLazIntfImage with size and flags internal calls CreateData
- Reason: Simplify, see Issue #35035
IDE Changes
- Added IDE macro $(OutputFile) for the outputfile of the project. This usually corresponds to $(TargetFile), except when having a host application, in which case $(TargetFile) is the host application, while $(OutputFile) is the project executable (or library).
- Codetools support for anonymous functions
- "Close tabs to the right" in Source-Notebook
- Extension of master PO files (a.k.a. templates) is changed from .po to .pot.
- Example for IDE translation:
- Previously we had:
- Template: lazaruside.po
- German: lazaruside.de.po
- Russian: lazaruside.ru.po
- Spanish: lazaruside.es.po
- Now we have (note extension of the template):
- Template: lazaruside.pot
- German: lazaruside.de.po
- Russian: lazaruside.ru.po
- Spanish: lazaruside.es.po
- Reasons:
- .pot is 'industry standard' extension for PO template files. As a consequence, PO editors can now open our templates 'out of the box' and automate creation of translations.
- It is much simpler to detect template files now that dotted unit names are allowed.
- Remedy: You can safely remove .po template files from your project after you rebuild your project with the new IDE (at this point .pot files should be generated).
- Reasons:
- Debugger Config: The IDE now provides the ability to set up different debugger-configs as named profiles.
IDE Interface Changes
Components
AnchorDocking
- New button to minimize a docked site.
Spotter
- New IDE addon, showing a search list of all IDE commands.
TAChart
- New chart tools "TAxisClickTool", "TTitleFootClickTool" and "TLegendClickTool": Create OnClick events when the user clicks on a chart axis or its title, the chart title or footer, or the chart legend, respectively. Good for creating an interactive GUI for formatting charts.
- New property "AllowPanning" to turn built-in panning on/off.
- New property "LimitToExtent" for zooming tools, avoids zooming out of the chart's full extent.
- Property editor for TSeriesPointerStyle.
- TBarSeries:
- New property "BarShape" for drawing alternative shapes (cylinder, hexagonal prism, pyramid or cone) instead of rectangular bar.
- TPieSeries:
- Impoved painting of 3D pie series due to new properties: "DepthBrightnessDelta" allowing to darken or brighten the sides of the pie slices, "Orientation" and "ViewAngle" for different views of the series
- New property "InnerRadiusPercent" allowing to draw a ring chart.
- New property "MarkPositionCentered" for attaching data point labels to the pie center instead of the pie perimeter.
- New property "StartAngle" to define the position of the first pie slice.
- TListChartSource can be sorted by X, Y, XList, YList, Color, Text, or in a user-specific way defined by the event OnCompare.
- New TSortedChartSource which, if inserted between original chart source and series, allows sorting of TUserDefinedChartSource or TCalculatedChartSource by the same criteria as TListChartSource.
Changes affecting compatibility
LazUtils
- Trailing lineendings are not forcibly added to multiline strings in PO files anymore. Now multiline strings in PO files match exactly corresponding resource strings.
- Reasons:
- PO format does not prohibit multiline strings without trailing lineendings (and e.g. recent versions of Poedit do not complain about them).
- New behavior unbreaks loading multiline translations from MO files.
- Note that all multiline strings with mismatching trailing lineendings will be marked as fuzzy during translation update.
- Reasons:
LCL incompatibilities
TMaskEdit: hexadecimal and binary characters
Mask support for hexadecimal and binary characters was added (this is a Lazarus extension, Delphi does not support this).
- Old behavior: the characters 'h', 'H', 'b' and 'B' had no special meaning in the EditMask property
- New behavior: these characters now are mask characters for hexadecimal and binary input respectively.
- Reason: nice to have feature (QT5 supports it natively).
- Remedy: if you need one of these characters as a literal in your EditMask: escape them with a '\'.
Components incompatibilities
TAChart: Chart.AllowZoom changed
The property AllowZoom of TChart is meant to give the user the chance to turn the builtin zooming feature on or off.
- Old behavior: AllowZoom operates also on an external toolset.
- New behavior: AllowZoom is effective only for the built-in toolset.
- Reason: More consistent handling of properties
- Remedy: Use the property Enabled of the external zoom tool to switch zooming off, or don't add a zoom tool at all.
TAChart: DataPointDrawTool.OnDraw deprecated
The event OnDraw of the data point draw tools (TDataPointCrosshairTool, TDataPointDistanceTool) will be removed and replaced by the new event OnCustomDraw.
- Old behavior: OnDraw uses the chart's Drawer for painting the crosshair or distance bars.
- New behavior: the Drawer to be used is passed as a parameter.
- Reason: When a chart is painted to an external file the chart's Drawer still refers to the screen; therefore, the datapoint cross hair or distance bars are missing in the external file.
- Remedy: Copy the old OnDraw event handler code to the new OnCustomDraw handler, but replace "Chart.Drawer" by the "ADrawer" given as a event parameter.
VirtualTreeViews: Renamed to "laz." prefix
VirtualTreeViews is essentially needed by OnlinePackageManager. Having this original package within the Lazarus installation makes is impossible for users to install a different version of this package.
- Old behavior: Projects with VirtualTreeViews required the "virtualtreeview_package" and had the unit "virtualtrees" in the uses clause. The registered component classes were named "TVirtualStringTree", "TVirtualDrawTree", "TVTHeaderPopup".
- New behavior: The package was renamed to "laz.virtualtreeview_package". All file names were changed to have a "laz." prefix, i.e. the uses clause will have to contain "laz.virtualtrees". The registered components are named "TLazVirtualStringTree", "TLazVirtualDrawTree", and "TLazVTHeaderPopup".
- Reason: Avoid naming conflicts when another version of VirtualTreeViews is installed
- Remedy: For existing projects requiring the VirtualTreeViews distributed with Lazarus,
- open the lfm file in an external editor and replace "TVirtualStringTree" by "TLazVirtualStringTree", as well as - if available - "TVirtualDrawTree" by "TLazVirtualDrawTree" and "TVTHeaderPopup" by "TLazVTHeaderPopup".
- open the project in the IDE, remove package "VirtualTreeView_package" from the project requirements and replace it by "laz.virtualtreeview_package"
- in the pas file's "uses" clause, replace "virtualtrees" by "laz.virtualtrees"
- in the pas file replace "TVirtualStringTree" by "TLazVirtualStringTree" (and accordingly for the other VTV components).