github KDAB/KDDockWidgets v2.5.0
Release v2.5.0

one hour ago
  • v2.5.0
    • LayoutSaver: New LayoutSaver::addWindowToSave(), to save and restore individual windows.
      Call it once per window, passing a main window, a floating window, or a dock widget to mean
      whichever window it currently sits in. Not calling it saves everything, as before.
      Restoring needs no counterpart call: a layout saved this way describes only the windows you
      picked, so it leaves every other window alone.
      Use this instead of affinities when you want to save one top-level window. Affinities filter
      dock widgets, and a main window's layout is saved whole or not at all, so an affinity set
      that cuts through a main window produces a layout that cannot be restored (issue #723).
      Such a save is now refused, with an error message naming both sides, rather than silently
      writing a broken file.
    • LayoutSaver: New RestoreOption_CloseUnknownDockWidgets. A dock widget docked in a main
      window being restored, but absent from the saved layout, is closed instead of floated.
    • LayoutSaver: A dock widget with no affinities is no longer dropped from its group when
      saving with an affinity filter. setAffinityNames() always documented that anything with an
      empty affinity is saved regardless of the filter, and every other code path honoured it.
    • Fix MDI not honouring initial size property
    • qtquick: Support setting floating window flags from QML
    • qtquick: Support dark mode
    • qtquick: In MDI, fix random splitters getting highlighted
    • ViewFactory: createGroup()/createTitleBar()/createTabBar()/createFloatingWindow() now have
      new overloads which also receive the userType() of the DockWidget that's initially covered
      by the created view (see DockWidget::setUserType()). Override these instead of the existing
      ones if you want to pick a different Group/TitleBar/TabBar/FloatingWindow sub-class
      depending on the dock widget's userType.
      • Potential source break: if your own ViewFactory subclass already overrides
        createGroup()/createTitleBar()/createTabBar()/createFloatingWindow() and you build with
        -Woverloaded-virtual (or -Wall -Wextra, which some compilers include it in), you'll now
        get a "hidden virtual function" warning/error, since your existing override hides the new
        overload. Workaround: add a using-declaration for the affected function(s) to your
        ViewFactory subclass, for example:
        class MyViewFactory : public KDDockWidgets::QtWidgets::ViewFactory
        {
        public:
        using KDDockWidgets::QtWidgets::ViewFactory::createTitleBar; // add this line
        Core::View *createTitleBar(Core::TitleBar *, Core::View *parent) const override;
        ...
        };
        This is a compile-time-only concern; code that doesn't enable -Woverloaded-virtual (or
        doesn't treat warnings as errors) is unaffected and needs no changes.
    • windows: ignore WM_NCHITTEST if dock widget is a native window

Don't miss a new KDDockWidgets release

NewReleases is sending notifications on new releases.