Sergio Martins
4691f9bfa5
Ran clang-format over the codebase
2022-07-12 11:28:05 +01:00
Sergio Martins
a743eafca1
Added DockWidgetBase::currentTabIndex()
2022-05-05 10:45:55 +01: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
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
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
4922363e71
Simplify expression
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
3e70a2cc71
nested mdi: Added DockWidgetBase::Private::isMDIWrapper
2022-01-23 21:46:37 +00:00
Allen Winter
93e60a743e
update copyright year
2022-01-20 08:05:26 -05: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
Sergio Martins
0e866079da
qtquick: Fix parentChanged() passing the wrong argument
...
QQuickItem::parentChanged(QQuickItem *parent) passes the *new*
parent, not *this*
Fixes #243 which is actually invalid, but uncovered this bug.
For #243 you can just use sender(), or connect to a lambda that
captures the dock widget.
2021-10-12 11:46:16 +01:00
Sergio Martins
0cc0972eea
Don't allow to close/float/tab persistent central widget
...
Fixes corner cases with MainWindowOption_HasCentralWidget
2021-09-02 10:30:34 +01:00
Sergio Martins
77b5d1630d
Added DockWidget::isPersistentCentralDockWidget()
2021-09-02 10:24:43 +01:00
Allen Winter
7001aa58ce
clang-format on code base
2021-07-12 17:05:37 -04:00
Sergio Martins
02c17e59dd
relax a warning about not finding dock widget to restore
...
If the user provided a factory and it returns nullptr on purpose
then don't warn, it's intentional by the user
2021-07-06 23:12:49 +01:00
Eism
02d4611501
Fixed toggling dock widgets
2021-06-29 00:16:14 +01: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
79fe9c2875
cmake: Remove private/ from our PRIVATE include path
...
Because some build systems don't support public/private includes,
and would require us to add private/ to the public include path.
This allows for an easier integration with some more exotic
build systems
2021-06-15 19:53:05 +01:00
Sergio Martins
bbbce6f694
qtquick: Fix close() not hidding the widget
...
QtQuick will emit a "visibleChanged(true)" when setting nullptr,
which we need to inhibit so it behaves like QtWidgets.
2021-05-02 11:22:26 +01:00
Sergio Martins
d5b2336b69
refactoring: Move the dockWidgetFactoryFunc() call
...
It's now an impl-detail of DockRegistry::dockByName().
Just pass DockByNameFlag::CreateIfNotFound.
Allows this functionality to be used in other places
2021-04-29 21:29:58 +01:00
Sergio Martins
3f012a2ef1
Remove a bogus setWindowTitle()
...
Setting a widget would change the top-level window title!
By luck people set the widget before docking, but doesn't have
to be that way.
2021-04-29 16:23:22 +01:00
Sergio Martins
83c744041e
Merge branch '1.3'
2021-04-27 23:52:17 +01:00
Sergio Martins
c4d3ba71b2
Fix crash due to MainWindow not clearing m_overlayedDockWidget
...
When we close the overlayed widget we need to clear this variable
Added 1 real fix and a prophylactic check too.
2021-04-27 23:49:26 +01:00
Sergio Martins
aa76dfba02
LayoutSaver: Support the user's factory func doing remapping
...
While restoring a layout, we expect all widgets to exist already,
but we allow the user to create them delayed, by providing
us a factory function.
What we're supporting in this commit is the ability of the user's
factory function returning a dock widget with an ID different
than the one that was requested. We then save that mapping so the
rest of the layout restore works with the new ID.
2021-04-23 14:55:01 +01:00
Sergio Martins
95317a7336
Add signal DockWidget::aboutToDeleteOnClose()
...
It's emitted when the dock widget is going about deleted due to
the DeleteOnClose functionality
2021-04-14 15:24:15 +01:00
Allen Winter
75c7744e59
move the class private header up in the include order
2021-03-23 08:36:24 -04:00
Sergio Martins
e3b333aca8
Make DockWidget::raise() raise the frame in MDI mode
2021-03-18 15:08:54 +00:00
Sergio Martins
447b4337dd
Add DockWidget::frameGeometry()
2021-03-09 17:55:36 +00:00
Sergio Martins
633daf124e
Fix some warnings about shadowing methods
2021-03-09 15:43:36 +00:00
Sergio Martins
446560931b
MDI: Fix docked widget geometries not being remembered when floating
...
We shouldn't move the Frame directly. Instead, do it through the
layout, which will then remember the last docked geometry
2021-03-07 16:56:37 +00:00
Sergio Martins
2f212031b3
qtquick|MDI: Don't set a size smaller than its min
2021-03-03 17:03:06 +00:00
Sergio Martins
4d428d42f6
Added DockWidgetBase::setMDIZ(int z)
...
Sets the Z order of the dockwidget within the MDI layout
2021-03-02 10:43:07 +00:00
Sergio Martins
cf0665c9b6
Added DockWidgetBase::setMDISize()
...
Only for dock widgets in MDI layout, where they are freely resizable
2021-03-02 10:21:29 +00:00
Sergio Martins
93c011c69d
Added DockWidgetBase::setMDIPosition(QPoint pos)
...
Moves the window within the layout.
Only applies to MDI layouts.
2021-03-01 23:41:53 +00:00
Sergio Martins
d01228d9ff
Fixes cases where actualTitleBarChanged() wasn't emitted
2021-03-01 23:02:56 +00:00
Sergio Martins
1614d5702c
Allow to call DockWidget::setWidget(nullptr)
...
In case you need to change ownership
2021-03-01 19:56:46 +00: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
610b85d01a
Minor readability improv: replace bool with enum
...
CC issue #174
2021-02-26 14:32:55 +00:00
Sergio Martins
3bcfcc40c0
Minor decoupling between DropArea and DockWidgetBase
2021-02-09 16:23:49 +00:00
Sergio Martins
e3b0feb967
DockWidgetBase.cpp uses MultiSplitter's base class now
2021-02-09 15:54:47 +00:00
Sergio Martins
51dc666181
Added DockWidget::setFloatingGeometry()
...
Closes #144
2021-02-07 17:26:01 +00:00
Allen Winter
a421cb0b01
various - include private header first, remove header dupes
2021-02-07 07:07:49 -05:00
Sergio Martins
44bf1ef322
qtquick: Move dummy QAction class into the pimpl header
...
No need for it to be in the public header
2021-02-06 18:20:44 +00:00
Sergio Martins
863691c313
Remove some private API from DockWidgetBase.h
...
Moved it into the pimpl
2021-02-06 16:32:13 +00:00
Sergio Martins
38443048b8
Merge branch '1.2'
2021-02-05 16:42:07 +00:00
Sergio Martins
621c3dbeca
Also clear the overlay internals when floating an overlay
...
Fixes a crash.
Relates to #162
2021-02-05 16:32:41 +00:00