Sergio Martins
3454b67a45
Refactor: Move close event logic from FloatingWindow to DropArea
...
So main window can use it too
2022-03-09 14:39:20 +00:00
Sergio Martins
2eeb4aac27
Fix Item_p.h being exposed in public API
...
Forward declare Item instead
2022-02-12 14:37:19 +00:00
Sergio Martins
755d53432b
Fix "drag to detach" MDI windows when in nested MDI mode
...
We were deleting the draggable, causing the drag to stop
2022-02-04 17:54:43 +00:00
Sergio Martins
4f8aac7df3
Fix floating windows not restoring to previous position
...
The dock widget wrapper that we deleted had that info. We need
to preserve it.
2022-02-04 16:57:44 +00:00
Sergio Martins
2b1aa44eff
Fix crash when floating nested mdi
2022-01-24 19:18:55 +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
c7682a3524
Use QScopedValueRollback, it's more expressive
2022-01-23 21:46:37 +00:00
Sergio Martins
45b0536c6a
Added DropArea::hasSingleFrame()
...
For readability
2022-01-23 21:46:37 +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
0adb130d4b
src/private/FloatingWindow.cpp - on Windows, define NOMINMAX
...
else windows.h will define the max() macro which doesn't
play nice with the std::numeric_limits::max()
Issue #266
2021-12-27 08:09:09 -05:00
Allen Winter
92d0d74641
src/private/FloatingWindow.cpp - on Windows, define NOMINMAX
...
else windows.h will define the max() macro which doesn't
play nice with the std::numeric_limits::max()
Issue #266
2021-12-27 07:56:00 -05:00
Sergio Martins
4d4f2a0183
Merge branch '1.5'
2021-12-22 17:07:24 +00:00
Alistair Baxter
f1e19ec59c
Ensure that floating windows are not positioned off-screen when they are shown
...
At points when a Rect is to be used to position a floating widget,
test to see if it overlaps any of the system's screens.
If it does not, adjust the Rect to within the closest screen edges.
2021-12-22 16:48:45 +00:00
Eism
336f1146d3
Fixed the restoration of geometry when user closed maximized window
2021-12-22 15:31:26 +00:00
Sergio Martins
fafc0b7946
Fix "normal geometry" not being restored
...
When restoring a maximized window, calling QWidget::showNormal()
on it wouldn't set it's previous non-maximized size.
QWidget::normalGeometry() doesn't have a setter, so use private API.
2021-09-04 19:59:03 +01:00
Sergio Martins
25b48920bb
Make FloatingWindow::normalGeometry() virtual
...
So it can be overridden by QtQuick, since there's no "normal geometry"
for QWindow.
Also useful to workaround window manager bugs in a class derived from FloatingWindow.
2021-09-03 15:33:46 +01:00
Sergio Martins
3b9773f872
Add support for restoring minimized/maximized floating window state
2021-09-02 18:32:35 +01:00
Sergio Martins
3e3cf10fff
Allow to override FloatingWindow maximization/minimization
...
So users can workaround bugs in window managers / Qt, such as QTBUG-95478
The custom behavior needs to be done in a FloatingWindow sub-class,
as a generic workaround which doesn't break other window managers isn't
possible
2021-09-02 18:08:13 +01:00
Allen Winter
7001aa58ce
clang-format on code base
2021-07-12 17:05:37 -04:00
Sergio Martins
6f031e3c33
Windows: Fix initial FloatingWindow size in HDPI
...
When:
- Screen A (100%), B (150%)
- MainWindow on screen B
- Trying to open a floating window on screen A (via setGeometry())
The Qt Windows QPA would error out when setting the geometry and it
would be too small.
The solution is to call setGeometry() before we create the QWindow.
Too much of an edge case to risk putting this on 1.3 branch.
Will be in 1.4.0.
Fixes #191
2021-06-22 23:09:38 +01:00
Sergio Martins
d2db92f1e7
Remove private/multisplitter/ from private include path
...
It's not needed.
Even wrong since then ../LayoutSaver_p.h would work
2021-06-15 16:46:07 +01:00
Sergio Martins
536e048f1c
Fix build with Qt 5.9
...
The needed overload was introduced in Qt 5.10 only
2021-04-21 19:08:30 +01:00
Sergio Martins
2266f4a75c
Fix FloatingWindow max size when there's tabbed dock widget
...
We don't support this case yet
2021-04-20 22:56:26 +01:00
Sergio Martins
06b680f603
Also update FloatingWindow's max size when children change constraints
...
A dock widget can change its max size later in life, so we need
to react to that
2021-04-20 22:52:08 +01:00
Sergio Martins
ec6be7d1a5
Fix potential crash
2021-04-20 22:51:43 +01:00
Sergio Martins
37040bfc9e
Also update FloatingWindow max-size when adding nested dock widgets
...
We only support FLoatingWindow max-size when there's 1 frame.
When adding more, we need to remove the max size
2021-04-20 22:34:36 +01:00
Sergio Martins
1f4f7ec0e5
FloatingWindow now honours max size of the docked widget
...
Only if there's a single dock widget though.
Tabbed cases are more complicated as QStackedLayout doesn't
propagate size constraints
2021-04-20 21:00:33 +01:00
Sergio Martins
a31571ab2c
Bound FloatingWindow::maxSizeHint()
...
Can't be bigger than Qt's hardcoded limit
Fixes a warning emitted by Qt
2021-04-20 20:57:14 +01:00
Sergio Martins
6ae8a203d9
qtquick: Fix build
2021-04-20 19:43:26 +01:00
Sergio Martins
1dbd491738
Minor: Move a comment to another place
2021-04-20 19:16:14 +01:00
Sergio Martins
e8693edb33
Minor refactoring: Factor out the FloatingWindow max size code
...
Created FloatingWindow::maxSizeHint()
2021-04-20 19:13:32 +01:00
Sergio Martins
5cbad00cb5
Minor coding style: bail out early
2021-04-20 18:47:34 +01:00
Sergio Martins
15e63381a9
Added DockWidgetBase::setUserType(int)
...
This is an opaque value which KDDW won't try to interpret or do
anything with it other than forward it to the FrameworkWidgetFactory.
Which if specialized by the user he can have different title bars
for different said "dock widget types"
2021-02-28 18:57:35 +00:00
Sergio Martins
ff67b9bcbc
Merge branch '1.3' into master
2021-02-26 15:20:32 +00:00
Sergio Martins
7c3f06f98f
When using a native title bar make floating window geometry smaller
...
When undocking a dock widget, the size of the dock widget should
be maintained
Fixes #174
2021-02-26 15:12:43 +00:00
Sergio Martins
6ac77a7662
Use the flags instead of the enum
2021-02-26 14:36:22 +00:00
Sergio Martins
610b85d01a
Minor readability improv: replace bool with enum
...
CC issue #174
2021-02-26 14:32:55 +00:00
Sergio Martins
acdf03fc84
Merge branch '1.3' into master
2021-02-24 13:56:28 +00:00
Sergio Martins
a6f19e07c4
Fixed Flag_NativeTitleBar not hidding the client title bars
...
When restoring the layout the native title bar would be visible
Fixes #170
2021-02-24 13:52:44 +00:00
Milian Wolff
91ad74e3ad
Relay status tip events to the parent of FloatingWindow
...
That allows the status bar of the main window - if available - to
show the event contents.
2021-02-17 20:36:37 +01:00
Sergio Martins
b128d25fbe
Added convenience FloatingWindow::mainWindow()
2021-02-17 19:35:54 +00:00
Sergio Martins
13f84ab518
Fix QtQuick build
2021-02-17 18:14:57 +00:00
Sergio Martins
f75c3a123e
Merge branch '1.3' into master
2021-02-17 17:44:05 +00:00
Sergio Martins
a6f3f21b70
Added Draggable::isWindow()
2021-02-17 16:54:15 +00:00
Sergio Martins
f500791ba3
FloatingWindow: This setup code is windows only
2021-02-15 22:15:26 +00:00
Sergio Martins
4ebc4e9546
Fix Linux build
2021-02-15 22:09:27 +00:00
Sergio Martins
94ee2e55fd
Move FloatingWindow::setupWindow() into a reusable function
...
So other QWindow can use this
2021-02-15 22:03:44 +00:00
Sergio Martins
e3c370eb6b
Revert "Move FloatingWindow::setupWindow() into a reusable function"
...
This reverts commit 6fea5af585 .
Need to fix the windows build first
2021-02-15 10:43:15 -08:00