Releases: KDAB/KDDockWidgets
Releases · KDAB/KDDockWidgets
KDDockWidgets 2.1.0
KDDW 2.1 has been released:
500 commits later, KDDW 2.1 offers stability over 2.0, without breaking changes.
2.0 users are advised to upgrade.
While not every modification is listed in the changelog, several notable changes include:
Bug fixes:
- Fixed dock widget float button when using main window nesting
- Fixed double-click on titlebar not floating it if auto-hide flag was enabled
- Fixed auto-hide overlay not updating its position when main window was resized
- Fixed crash when doing sequential open() and close() calls (#326)
- Fixed double-click the guest widget would make window float
- LayoutSaverOption::Skip now honours docked dock widgets
- Fixed DockWidget::addDockWidgetToContainingWindow() when using nested main windows (#386)
- Multiple fixes for save/restore when windows are maximized (#499, #477)
- Several fixes regarding nested main windows
QtQuick:
- Added API to set affinities via QML (#465)
- Allow to mix MDI with docking, as already done with QtWidgets
- Fixed DPI of icons in TitleBar.qml Looks better when using 150% and 200% scalling now.
- Fixed MDI widgets not raising when clicked on
- Fixed redock not working when mixing MDI with docking
- Fixed crash in KDDockWidgets::DockWidgetInstantiator::isFocusedChanged (#501)
- Fixed several crashes when deleting dock widgets in MDI mode (#472, #473)
QtWidget:
- Fixed crash when unpinning a window
- Honours overriding DockWidget::closeEvent() to prevent closing
- Introduced MainWindowOption_QDockWidgets and MainWindowOption_ManualInit
- Fixed crashes when restoring dock widgets
- Improvements for honouring preferred size when calling addDockWidget()
MDI:
- Don't show resize handles if widget is fixed size
- Fixed mouse cursor not being restored when dock widgets were overlapping
- Added Config::setMDIFlags() and MDIFlag_NoClickToRaise
Misc:
- Updated to nlohmann json v3.11.3, from v3.10.5. Only relevant if you're not using system nlohmann.
- Added standalone layouting example using Slint
- Many new configurations are being tested on CI now, in particular, we're running tests against an ASAN
built Qt and discovered some memory violations which are now fixed. - KDDW 2.1 is memory leak free now and it's being tested on CI under valgrind.
- Added Config::setLayoutSpacing(int)
KDDockWidgets 2.0.0
Highlights of the 2.0.0 Release
- Architecture rewrite to support more frontends besides QtWidgets and QtQuick.
2.0 isn't very interesting for users, but will allow developers to make KDDW
support other GUI frameworks more easily. Also QtQuick is now better integrated,
without being shoehorned with ifdefs into the QtWidgets implementation.- Split into a view/controller architecture
- Non-gui logic moved to controllers
- Each controller has a gui counter part, implemented for each supported frontend
- Uses nlohmann JSON library (MIT) instead of QJsonDocument, for saving/restoring layouts
- Added Config::setStartDragDistance()
- Removed Config::setTabbingAllowedFunc() which was already deprecated in favor of Config::setDropIndicatorAllowedFunc()
- Slint and Flutter WIP. Waiting for these frameworks to support multi-window before finishing.
KDDockWidgets 1.7.0
Highlights of the 1.7.0 Release
- Introduce DockWidget::setFloatingWindowFlags(flags). Allows for different
FloatingWindows to have different window flags. For example, some having
Qt::Tool while others having Qt::Window (#314). - Fixed fixed-sized windows being able to be resized on Windows (#345)
- Allow restoring layouts without touching floating dock widgets
- Fix setDropIndicatorsInhibited(false) not showing drop indicators (#334, #337)
- Fix relayouting when dock widget is deleted directly (#336)
- Minor performance improvement: Cache TitleBar icons
- Save side bar overlay geometry when frame is resized
- Fixed case of corrupt layout when using setDockWidgetFactoryFunc()
- Fix layout scaling factor when main window is native
- Fix moving floating windows to negative positions (#321)
- Fixed using normal geometry of platform window if fractional scaling is enabled
- Allow to specify Qt::Tool or Qt::Window per floating window
KDDockWidgets 1.6.0
Highlights of the 1.6.0 Release
- Minimum Qt6 version is now 6.2.0
- Minimum CMake version is now 3.12.0
- Fixed restoring of normal geometry when closing a maximized window (#259)
- Experimental support for docking into dock widgets which are in a MDI area.
- Fixed potential crash involving infinite loop between QWidget::create() and QWidget::createWinId()
- Moved DropIndicatorOverlayInterface::DropLocation enum to KDDockWidgets namespace scope
- Added Config::setDropIndicatorAllowedFunc() and corresponding example
(kddockwidgets_example --hide-certain-docking-indicators) - Fixed case where unfloating wouldn't restore to the main window (#44 and #96)
- Fixed MainWindow not propagating close events to docked widgets
- X11: Improved detecting which window is under the cursor, by using native X11 API
- X11: Fixed dragging a maximized floating window. Its size is now restored to normal size when the drag starts.
- Added DockWidgetBase::currentTabIndex()
- Added InitialVisibilityOption::PreserveCurrentTab
- Added MainWindow::internalLayout() for advanced customization
KDDockwidgets 1.5.0
Highlights of the 1.5.0 Release
- Minimum Qt version is now 5.15
- Install the Python bindings to "site-packages"
- The Python bindings for Qt6 use the "PyKDDockWidgetsQt6" namespace
- Co-installable with Qt6
- Adds support for non-detachable central widget, MainWindowOption_HasCentralWidget. (#225)
- Fix corrupt layout when restoring old JSON
- Fix "Unpin" button not showing up in overlayed widgets
KDDockwidgets 1.4.0
Highlights of the 1.4.0 Release
- No longer supports Qt versions less than 5.12
- Experimental MDI support. By using MainWindowMDI you can now have "docked" dock widgets
which are free to be arbitrarily positioned and even overlapped inside the main window. - TitleBar's height is now controlled by sizeHint() instead of hardcoded.
If you haven't overridden TitleBar or just inheriting from TitleBarWidget then there's nothing to do,
as TitleBarWidget already reimplements sizeHint. If you're inheriting directly from TitleBar then make
sure to provide a sizeHint. - Added MainWindow::closeDockWidgets()
- Fixed crash in MainWindow::layoutEqually()
- QtQuick: Added more declarative API
- FloatingWindow now honours the dockwidget's max-size, if there's a single
dock widget docked. Tabbed cases are more difficult since QStackedLayout doesn't
propagate size constraints. - Added MainWindowBase::frameCountChanged()
- Introduced Config::setDropIndicatorsInhibited(), which allows you to disable support
for drop indicators while dragging. - Fixed embedding the main window into a non-kddw main window (#204, #168)
- Fixed crash with an MFC application
- Allows to disable translucency via the KDDW_NO_TRANSLUCENCY env var, useful
in case running on weird Window Managers. - Added Flag_ShowButtonsOnTabBarIfTitleBarHidden, which can be used when using Flag_HideTitleBarWhenTabsVisible.
The close and float buttons will be shown directly in the tab-bar. - Fixes persistent central frame being invisible after closing all tabs (#220)
- Added python bindings for the InitialOption struct (#198)
- Generate and install camelcase forwarding headers (public, exported classes)
- Build in Release mode by default (in non-developer situations)
KDDockwidgets 1.3.1
Highlights of the 1.3.1 Release
- Improve restoring layout when RestoreOption_RelativeToMainWindow is used (#171)
- Improved dragging windows across screens in mixed hdpi setups
- Fixed Flag_NativeTitleBar not hidding the client title bars when restoring (#170)
- Double clicking a native title bar of a Qt::Tool window will now redock the window (#173)
- Size of FloatingWindow now accounts for the fact that it's using Flag_NativeTitleBar and
resizes its content accordingly (#174) - Fixed popups on overlayed dock widgets not working
- Don't restore maximized state when using RestoreOption_RelativeToMainWindow (#184)
KDDockWidgets 1.3.0
Highlights of the 1.3.0 Release
- Experimental QtQuick support (#49)
- Added static DockWidgetBase::byName() (#126)
- The enum KDDockWidgets::AddingOption has been deprecated, use
KDDockWidgets::InitialVisibilityOption instead - You can now pass a preferred initial size to MainWindow::addDockWidget() (#95)
- Added DockWidgetBase::Option_DeleteOnClose
- Added Config::Flag_CloseOnlyCurrentTab
- PySide6 support
- Layout restorer now restores maximzied/minimized state too (#81)
- Fixed dock indicators sometimes not appearing on Windows (#103)
- Fixed Flag_NativeTitleBar not working
- Fixed drag offset when dragging too fast with mouse
- Fixed bug where last tab index position wouldn't be remembered in case user
had manually reordered tabs (#154) - Fixed crash when hosting a QQuickWidget (#150)
- Fixed CMake Visual Studio generator not working
- Sidebar overlays now maintain their size when toggled (#155)
- Added DockWidget::setFloatingGeometry() (#144)
KDDockWidgets 1.2.1
Highlights of the 1.2.1 Release
- Support for resizing dock widgets when they are in overlay/popup mode (autohide/sidebar feature)
- Fixed title bar close button enabled state not being restored with Layout saver (#137)
- Installs a version header (kddockwidgets_version.h) that defines a version string and other useful versioning macros (#138)
- DockWidgetBase::eventFilter() is protected instead of private (regression vs v1.1) (#148)
It's recommended that you rebuild your application when updating KDDW, as MSVC encodes private/protected in the name mangling. - Fixed WASM build on Windows (#163)
- Fixed sidebar overlay not getting hidden when clicking on the main window docking area (#157)
KDDockWidgets 1.2.0
Highlights of the 1.2.0 Release
- Wayland support
- Added Flag_KeepAboveIfNotUtilityWindow, so you can have keep above even if floating window is shown in the task-bar
- Added DockWidget::windowActiveAboutToChange() signal
- Added support for Qt6 (PySide6 support is lacking)
- Added WASM support