Skip to content

Release 6.0.0

Compare
Choose a tag to compare
@kirill-grouchnikov kirill-grouchnikov released this 02 Sep 15:29
· 381 commits to sunshine since this release

πŸ’” marks an incompatible API / binary change
🎁 marks new features
πŸ”§ marks bug fixes and general improvements

Dependencies for core libraries

  • Gradle: 7.2 ➑ 7.5.1
  • Kotlin: 1.5.31 ➑ 1.7.10
  • Kotlin coroutines: 1.5.2 ➑ 1.6.4

General

  • πŸ”§πŸ’” A new direct rendering model for all core and custom components in Radiance
    • Instead of rendering components as multi-layer combinations of cached offscreen images, Radiance now uses direct rendering to the Graphics objects passed to the relevant UI delegates and painting methods
    • Use RadianceCommonCortex.paintAtScale1x for visuals that need to "fall" on exact pixels, line single-pixel borders, separators, etc
  • πŸ”§ Remove all usages of java.security APIs (that are deprecated in Java 17 going forward)

Animation

  • 🎁 New default animation pulse source that is based on the display refresh rate

Component

  • πŸŽπŸ’” Unify fire action trigger logic for command buttons by replacing CommandButtonPresentationModel.isFireActionOnRollover and CommandButtonPresentationModel.isFireActionOnPress with a single actionFireTrigger enum that has three values:
    • OnRollover to fire action on rollover
    • OnPressed to fire action on press
    • OnPressReleased to fire action on press release (the default)
  • πŸŽπŸ’” Unify text action/popup click logic for command buttons by replacing CommandButtonPresentationModel.isTextClickAction and CommandButtonPresentationModel.isTextClickPopup with a single textClick enum field that has two values:
    • Action to activate action on text click
    • Popup to activate secondary content on text click
  • πŸŽπŸ’” Revisit breadcrumb bar APIs
    • Remove exception propagation APIs (they were no-op in any case since it wasn't wired)
    • Remove index tracking in BreadcrumbItem (not wired to anything)
    • Switch BreadcrumbBarCallBack APIs from StringValuePair to BreadcrumbItem
    • Also rename getLeafs to getLeaves
    • Rename BreadcrumbBarCallBack to BreadcrumbBarContentProvider`
    • Rename BreadcrumbBarModel to BreadcrumbBarContentModel
    • Add BreadcrumbBarPresentationModel and support icon filtering
    • Remove StringValuePair from the API surface altogether
    • Revisit the API surface of BreadcrumbItem
  • πŸŽπŸ’” Switch presentation models to use BackgroundAppearanceStrategy across all components. This applies to
    • CommandButtonPresentationModel.setFlat
    • CommandButtonPresentationModel.Overlay.setFlat
    • CommandStripPresentationModel.setFlat
    • CommandPresentationModel.setFlat
  • 🎁 Add single row resize policy to ribbon flow bands
  • πŸ”§ Fix lost breadcrumb bar path after skin change
  • πŸ”§ Fix separator drawing over the last text character in MEDIUM command buttons that don't display icons
  • πŸ”§ Command menus now toggle open and close on clicks
  • πŸ”§ Fix issues with command popup menus not closing in certain scenarios

Theming

  • πŸ’” Simplified visuals of tabbed panes
    • Remove SINGLE_FULL and DOUBLE_FULL from TabContentPaneBorderKind. Apps that wish to draw border around the content area will need to do so explicitly.
    • Remove RadianceSkin.setTabFadeStart and RadianceSkin.setTabFadeEnd and do consistent indication for the selected / rollover tab with no alpha fade gradient.
    • Consistent corner radius of tabs across all skins.
  • πŸ’” Clean up the signature of fill painters, removing isFocused (not used anywhere, and shouldn't be since the focus indication is painted separately) and hasShine (specific to StandardFillPainter visuals).
  • πŸ”§ Fix issues with various color chooser panels, including the correct wiring of the "Reset" button across all the panels
  • πŸ”§ Fix incorrect bounds of maximized decorated frames on Windows
  • πŸ”§ Fix inverted logic of ComponentOrParentChainScope.setExtraWidgetsPresence
  • πŸ”§ Fix null pointer exception in rollover button listeners

SVG transcoder

  • πŸ”§ Simplify generated code by not emitting identity affine transforms
  • πŸ’” Remove plain templates