Sergio Martins
d0daff6771
vscode: Add an entry to run the mdi with dock widgets example
2022-01-29 20:15:29 +00:00
Sergio Martins
721795b113
Remove LastPosition struct, move its members to Position
...
It was an unneeded indirection that didn't provide added semantics
2022-01-29 19:29:03 +00:00
Sergio Martins
40231b7fae
Minor coding style
2022-01-29 19:02:17 +00:00
Sergio Martins
1d0300ecc8
Fix another unused variable
2022-01-26 00:14:01 +00:00
Sergio Martins
ce20628555
Remove unused variable - fixes Werror build
2022-01-25 23:23:54 +00:00
Sergio Martins
d0dcac6b03
Make DockWidgetBase::setMDIPosition|setMDISize support nesting
...
They now honour Option_MDINestable.
Before they would bail out assuming they weren't in a MDI area.
Now they look further up the hierarchy to find our MDIArea, if any.
2022-01-25 20:14:04 +00:00
Sergio Martins
2b1aa44eff
Fix crash when floating nested mdi
2022-01-24 19:18:55 +00:00
Sergio Martins
ae42dffcb1
Update Changelog regarding new nested MDI feature
2022-01-24 18:48:00 +00:00
Sergio Martins
21adfe06ad
Add an example for nested docking within MDI
2022-01-24 18:31:10 +00:00
Sergio Martins
7de26139a2
Restore source-compat for TabWidgetWidget()
2022-01-24 15:47:06 +00:00
Sergio Martins
894ff9fea0
Minor: Fix overridden signature
2022-01-24 15:34:37 +00:00
Sergio Martins
942c462586
Fix release build
2022-01-24 15:27:24 +00:00
Sergio Martins
128645693c
nested_mdi: Fix DnD over dock widgets docked in MDI
...
Dragging was always detecting the main window's drop indicator
overlay. Make it transparent for mouse events, so that
QWidget::childAt() doesn't pick it, and we can see the inner
drop areas.
2022-01-23 23:31:50 +00:00
Sergio Martins
86bceb4c48
nested mdi: Fix detaching inner dock widgets
...
Only the outter-most MDI frame is dragged in MDI mode. The inner ones
are dragged in normal docking mode, they become real floating windows.
2022-01-23 21:46:37 +00:00
Sergio Martins
ea64aae861
tests++
2022-01-23 21:46:37 +00:00
Sergio Martins
d1645dff73
tests: Remove unneeded sleep
2022-01-23 21:46:37 +00:00
Sergio Martins
a72e018f3b
nested mdi: Also test floating a nested MDI
2022-01-23 21:46:37 +00:00
Sergio Martins
66b0ba8902
Added MDIArea::frames()
2022-01-23 21:46:37 +00:00
Sergio Martins
18457d80aa
nested mdi: Get rid of unneeded drop area mdi wrapper when floating
...
When floating, the FloatingWindow has its own DropArea for nesting.
We delete the redundant level of wrappers when floating.
2022-01-23 21:46:37 +00:00
Sergio Martins
95c12dbd4c
nested mdi: Fix floating picking the wrong title bar
...
Use DockWidget::titleBar() which will always travel the hierarchy
and pick the first visible title bar. We have more nesting now.
2022-01-23 21:46:37 +00:00
Sergio Martins
c7682a3524
Use QScopedValueRollback, it's more expressive
2022-01-23 21:46:37 +00:00
Sergio Martins
4922363e71
Simplify expression
2022-01-23 21:46:37 +00:00
Sergio Martins
9f6ec0244f
nested mdi: More tests for closing docks
2022-01-23 21:46:37 +00:00
Sergio Martins
747e987f28
test++
2022-01-23 21:46:37 +00:00
Sergio Martins
68e01c70ee
nested mdi: Delete wrappers once we close the last nested DW
2022-01-23 21:46:37 +00:00
Sergio Martins
296b2a3370
nested mdi: Fix MDI's frame title not being updated
...
Before we didn't need to update it because there was only 1
dock widget. But now, if there's more than one we need to set the
application's name instead of the dock widget's name as title.
2022-01-23 21:46:37 +00:00
Sergio Martins
074bc26be9
Added DropArea::mdiDockWidgetWrapper()
2022-01-23 21:46:37 +00:00
Sergio Martins
f8e6ecf821
Remove DropArea::setIsMDIWrapper(), use ctor instead
...
This propery is meant to be set only once, so enforce it via
compiler.
2022-01-23 21:46:37 +00:00
Sergio Martins
3e70a2cc71
nested mdi: Added DockWidgetBase::Private::isMDIWrapper
2022-01-23 21:46:37 +00:00
Sergio Martins
65ced9604f
nested mdi: Fixed title bar visibility
...
When there's only one docked widget we only show 1 title bar.
Just like happens with a FloatingWindow
2022-01-23 21:46:37 +00:00
Sergio Martins
45b0536c6a
Added DropArea::hasSingleFrame()
...
For readability
2022-01-23 21:46:37 +00:00
Sergio Martins
8c8f5a8fda
Introduce Option_MDINestable
...
Should allow MDI dock widgets to also accept drops.
Befor, each MDI "window" only had 1 dock widget, but now each
MDI "window" a layout of dock widgets.
This is implemented by nesting the actual dock widget inside
a wrapper drop area. This drop area gives the drop support.
There's still bugs and more tests to fix before merging.
2022-01-23 21:46:37 +00:00
Sergio Martins
22a9ce2596
Merge branch '1.5'
2022-01-21 12:01:38 +00:00
Sergio Martins
93b664414b
X11: Add support for robust z-order detection
...
Qt doesn't provide any way to know which window is directly
bellow the cursor. Generally this is fine since floating windows
are always on top of the main window. However, if Qt::Tool is removed,
then they can be behind, and KDDW can't know which window to overlay
the drop indicators onto.
This patch uses XLib's XQueryTree to solve this.
This is still experimental, hence disabled by default.
For now it's disabled by default, since it's experimental.
You can turn it on by passing -DKDDockWidgets_XLib=ON
Fixes bug #256
(cherry-picked from b20ce0895b as it's safe enough)
2022-01-21 11:56:48 +00:00
Sergio Martins
866788674f
Minor: Added Utils::isXCB()
2022-01-21 11:56:48 +00:00
Mauro Persano
f13f0129d4
Add API to set center widget margins on MainWindow
...
We can't change the margins by subclassing MainWindow and overriding
centerWidgetMargins, since the margins are initialized in MainWindow's
constructor. This adds public API to MainWindow to allow us to change
the margins later on.
2022-01-20 22:37:36 +00:00
Sergio Martins
22ffc6c7ea
Fix QtQuick build
2022-01-20 22:37:36 +00:00
Mauro Persano
d1767b5534
Don't render frame for central persistent widget
...
When the main window has a central persistent widget, make sure the
containing tab widget doesn't render a frame around it.
2022-01-20 22:08:17 +00:00
Allen Winter
2fbe4f872e
Merge branch '1.5'
2022-01-20 08:15:23 -05:00
Allen Winter
93e60a743e
update copyright year
2022-01-20 08:05:26 -05:00
Allen Winter
328a14b46a
src/private/FloatingWindow.cpp - fix compile with mingw
...
NOMINMAX should only be defined with MSVC on Windows.
2022-01-20 07:50:24 -05:00
Allen Winter
9c17b44ad7
Merge branch '1.5'
2022-01-19 16:23:47 -05:00
Allen Winter
cf40cadce8
cmake/KDAB/modules/KDQtInstallPaths.cmake - sync to upstream
2022-01-19 16:23:28 -05:00
Sergio Martins
16c43b8c24
Make cmake config file honour KDDockWidgets_X11EXTRAS
2022-01-12 09:55:02 +00:00
Allen Winter
8391d85d48
appveyor.yml - add libxkbcommon on ubuntu for qt6
2022-01-09 10:17:39 -05:00
Allen Winter
e59e5d7a71
appveyor.yml - add builders for Qt6
2022-01-09 09:50:58 -05:00
Sergio Martins
aa3c3272ee
Fix examples build on macOS and Windows
...
For some reason a X11 dependency was commited by mistake.
2022-01-08 18:39:16 +00:00
Sergio Martins
1d8fad245a
Fix build with 5.12
...
This is a special request from a customer who can't upgrade right
now.
Min is still 5.15 in CMakeLists.
2022-01-07 17:55:53 +00:00
Sergio Martins
789c531f3d
Fix parent of the MDIArea layout
...
Fixes tests on QtQuick. On QtWidgets it would get reparented
so tests already passed.
2022-01-07 17:45:37 +00:00
Sergio Martins
5b87fb4435
Add an examples/mdi_with_docking/ example
2022-01-07 17:31:20 +00:00