-
Notifications
You must be signed in to change notification settings - Fork 171
/
Changelog
235 lines (218 loc) · 12.9 KB
/
Changelog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
* v2.3.0
- qtquick: Add QtQuick::IndicatorWindow::setQuickWindowCreationCallback
* v2.2.1
- Fix linking against static KDDW (#557)
* v2.2.0
- qtquick: Add support for MainWindowOption_HasCentralWidget
- qtquick: Add QtQuick::FloatingWindow::setQuickWindowCreationCallback
- Add Config::setDockWidgetTabIndexOverrideFunc() (#165)
- Allow to redock back to a floating window (#280)
- Add KDDockWidgets::controllersToViews (#526)
- Add Config::setTabsAtBottom()
- Fix case where persistent central widget would detach when dragged
- Fix windows having transparency when drop indicators inhibited
- Fix case where persistent central widget would detach when dragged
- Allow to build against external KDBindings
- Fix restore layout of nested main windows (#508)
- Fix restore maximized window corner case (#553)
* v2.1.0 (08 May 2024)
- Added standalone layouting example using Slint
- Fixed DPI of icons in TitleBar.qml Looks better when using 150% and 200% scalling now.
- QtQuick: Fixed redock not working when mixing MDI with docking
- QtQuick: Allow to mix MDI with docking, as already done with QtWidgets
- QtQuick: Fixed MDI widgets not raising when clicked on
- QtQuick: Added API to set affinities via QML (#465)
- MDI: Don't show resize handles if widget is fixed size
- MDI: Fixed mouse cursor not being restored when dock widgets were overlapping
- MDI: Added Config::setMDIFlags() and MDIFlag_NoClickToRaise
- QtWidgets: Introduced MainWindowOption_QDockWidgets and MainWindowOption_ManualInit
- QtWidgets: Honours overriding DockWidget::closeEvent() to prevent closing
- QtWidgets: Fixed crash when unpinning a window
- Fix crash when doing sequential open() and close() calls (#326)
- Fix double-clicking the guest widget would make window float
- 3rdparty: Update to nlohmann json v3.11.3, from v3.10.5. Only relevant if you're not using
system nlohmann.
- Fixed dock widget float button when using main window nesting
- Fixed auto-hide overlay not updating its position when main window was resized
- Fixed double-click on titlebar not floating it if auto-hide flag was enabled
- Added Config::setLayoutSpacing(int)
- LayoutSaverOption::Skip now honours docked dock widgets
- Fixed DockWidget::addDockWidgetToContainingWindow() when using nested main windows (#386)
* v2.0.0 (05 December 2023)
- 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.
- Blacklisted Qt 6.6.1 and 6.5.3 on Windows due to QTBUG-117704
* v1.7.1 (unreleased)
- Fixed pin button appearing by mistake when using Flag_TitleBarNoFloatButton (#359)
- Added Config::Flag_AutoHideAsTabGroups, which allows all tabs to go to/from sidebar at once.
- Fixed resize gap of auto-hide overlay resize on its left border
- Blacklisted Qt 6.6.1 and 6.5.3 on Windows due to QTBUG-117704
* v1.7.0 (03 May 2023)
- 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
* v1.6.0 (14 September 2022)
- 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
* v1.5.0 (24 November 2021)
- 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
- Minimum Qt version is now 5.15
* v1.4.0 (16 July 2021)
- 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::groupCountChanged()
- 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)
* v1.3.1 (7 June 2021)
- Improve restoring layout when RestoreOption_RelativeToMainWindow is used (#171)
- Improved dragging windows across screens in mixed hdpi setups
- Fixed Flag_NativeTitleBar not hiding 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)
* v1.3.0 (8 February 2021)
- 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)
* v1.2.1 (6 February 2021)
- 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)
* v1.2.0 (17 December 2020)
- 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
* v1.1.1 (11 December 2020)
- Windows: Fixed a crash when clicking on the close button for floating windows in some situations (#110)
- Don't show dock/undock icon when dockwidget is not dockable (#99)
* v1.1.0 (26 October 2020)
- New drop indicator style type: Segmented Indicators
- Windows: Drop Shadow for floating windows
- Added AutoHide / SideBar support
- Added FocusScope support
- Added DockWidget::isFocused() and DockWidgetBase::isFocusedChanged()
- Added Config::Flag_AlwaysTitleBarWhenFloating, which complements Flag_HideTitleBarWhenTabsVisible
- Added Config::Flag_DontUseUtilityWindowsForFloating
- Added Config::Flag_TitleBarHasMinimizeButton
- Added Config::Flag_TitleBarNoFloatButton
- Added Config::Flag_AutoHideSupport
- Added Config::setTabbingAllowedFunc(TabbingAllowedFunc func)
- HDPI improvements, new high-res icons
- Bugfixes:
- Windows: Fixed windows not having proper minimum size.
- Windows: Fixed moving windows across screens with different DPI (#72)
- Don't center floating windows if the user set a custom position (#75)
- Fixed floating window's title not being correct (#74)
- Fixed focus scope not reacting when clicking on current tab (#71)
- Fixed floating window borders not being rendered correctly on HDPI due to rounding errors.
- cmake/Python - don't require pkg-config, only use if available (#68)
* v1.0.0 (2 September 2020)
- PySide2 bindings
- Rewrote the layouting engine, resulting in a huge stability gain and makes it easy to add new features
- Honour min/max sizes and some QSizePolicy heuristics
- Lazy resize (resize only when dropping the separator)
- Native Windows dragging (supporting Aero-snap)
- Allow to hide TitleBar and just show tabs. Allow dragging via the tab bar.
- Reordering tabs with mouse
- Partial layout save/restore (affecting only a subset)
- Double-click on title bar to maximize
- Maximize button on the title bar
- HDPI: Relative layouting restore
- Allow to make a dock widget non-closable and non-dockable
- Show close button on tabs
- Multiple Main Window support
- Allowing to dock on different parents
- Support for affinities, making some dock widgets only dockable on certain main windows
- 200 unit-tests
- Fuzzer which found plenty of crashes in the old layouting engine
- ASAN fixes
- Double click on separator to distribute equally
- Hovering over an indicator returns the true size that the dropped widget will get
- Static build support
- Namespaced Qt support
- Dozens of crash fixes, bugs and much more...
* v0.1 (4 November 2019)
- Initial Release and blog