Sergio Martins
d5797a3aea
Honour QSizePolicy::Fixed too
...
Some widgets, for example QPushButton, instead of having an explicit max size,
they communicate the need for a max size through their size policy
2020-06-07 19:53:06 +01:00
Sergio Martins
ab8545e2c2
Bound the item max size just in case
2020-06-06 20:27:36 +01:00
Sergio Martins
5fc16954f5
Fix max-size only working in one orientation
...
ItemContainer::maxSizeHint() algo was wrong.
Add unit-test too.
2020-06-06 20:11:09 +01:00
Sergio Martins
6610e48cb3
Fix qDebug for child items going out of scope before the parents
...
Made the child debug lines appear before
2020-06-06 18:12:44 +01:00
Sergio Martins
dabfeeaf3b
Honour max-size when floating a window
2020-06-05 15:35:55 +01:00
Sergio Martins
9601f57050
example: Don't show the dock widgets immediately
...
It's not needed, as they are going to be added to the layout.
Saves us from flicker and also the temporary floating position
being saved
2020-06-05 13:43:35 +01:00
Sergio Martins
7c442dce85
Fix another place that should use setSuggestedGeometry
2020-06-04 21:47:47 +01:00
Sergio Martins
07ea3ff1a6
cleanup: Replace some qobject_casts with a function
2020-06-04 21:37:01 +01:00
Sergio Martins
874fd7d69f
Don't set the FloatingWindow geometry directly
...
Let's have an indirection, so FloatingWindow can do some adjustments
and use a smaller rect incase of max-size.
Since we don't want to enforce max-size, just when showing the window.
2020-06-04 21:21:11 +01:00
Sergio Martins
69a737e286
FloatingWindow: Remove cruft
2020-06-04 21:16:22 +01:00
Sergio Martins
ddc49c9358
Don't warn when restoring and there's no last pos info
...
We now restore floating windows to their previous position too
when toggling float. If there's no last info it's fine
2020-06-04 18:21:52 +01:00
Sergio Martins
2b3c3b75bf
Fix build with older cmake
...
Error was:
"install TARGETS given target "kddockwidgets_multisplitter" which does not
exist in this directory."
Fixes : #47
2020-06-04 15:29:34 +01:00
Sergio Martins
296889cace
Move TabWidget usage to FrameWidget
...
Frame is abstract and doesn't care about such implementation details.
QQuick will role out their own QTabWidget equivalent. No need to
abstract tab widget too, it's overkill.
2020-06-04 09:57:59 +01:00
Sergio Martins
4ebe8ed631
harden Frame's pure virtuals
...
Too many paths to control, so protect against calling the pure
virtuals in ctor/dtor
2020-06-03 22:31:03 +01:00
Sergio Martins
ecfa43f801
Decouple TabWidget from Frame
...
TabWidget is now an implementation detail of FrameWidget.
QQuick will roll their own stuff with similar api, but no need to
abstract QTabWidget and QTabBar
2020-06-03 22:18:44 +01:00
Sergio Martins
f5f39a37a1
Decouple DockWidget from TabWidget
...
TabWidget will be an implementation detail of FrameWidget, and not
shared by QtQuick
2020-06-03 21:38:47 +01:00
Sergio Martins
0a75d89848
Add Frame::detachTab()
...
The tab widget will be an implementation detail of FrameWidget and
not accessed by anyone
2020-06-03 21:18:38 +01:00
Sergio Martins
e418725c13
Don't create Frame directly, but FrameWidget, depending on the factory
2020-06-03 21:18:13 +01:00
Sergio Martins
180fb96ecc
quick: Implement separator support
...
you can now drag separators in the QML example
2020-06-01 22:22:33 +01:00
Sergio Martins
83af55a592
quick: Refactor QQuickItem creation
...
So it can be reused
2020-06-01 20:58:02 +01:00
Sergio Martins
fe6d80ae89
vscode: Add Qt source mapping
2020-06-01 18:13:54 +01:00
Sergio Martins
103a0e514a
quick: Use the original kddw indicators instead of yellow rectangles
...
looks nicer
2020-06-01 15:25:34 +01:00
Sergio Martins
7cc302c977
Rename Config.h to MultiSplitterConfig.h
...
So it doesn't clash with KDDW's Config.h
2020-06-01 15:14:34 +01:00
Sergio Martins
c2d51bddc8
quick: Some style improvements to the example
2020-06-01 14:53:18 +01:00
Sergio Martins
443f80cdab
qtquick: Improve the multisplitter example
...
you can now drop relative to
2020-06-01 13:42:47 +01:00
Sergio Martins
9af3740d86
fix memory leak
2020-06-01 12:28:35 +01:00
Sergio Martins
567b61c9ec
Allow separator to have pos=0
...
Can happen if widget has min-size 0
2020-06-01 12:16:35 +01:00
Sergio Martins
df8511b3dc
Add an example of how to use the multisplitter with QtQuick
2020-06-01 12:16:00 +01:00
Sergio Martins
1dad16bb63
vscode: Build kddockwidgets in developer mode
2020-05-31 23:01:33 +01:00
Sergio Martins
4e88b3742d
Honour max-size when docking
...
Layout will choose a suitable size for the dock widget when
addDockWidget() is called
2020-05-29 09:53:51 +01:00
Sergio Martins
a086713bb6
Implement FrameWidget::maxSizeHint()
2020-05-29 08:11:42 +01:00
Sergio Martins
0c0a232e07
Add vscode launch file for the example
2020-05-28 23:47:48 +01:00
Sergio Martins
a66e750f7d
Add Frame::biggestDockWidgetMaxSize()
2020-05-28 23:47:03 +01:00
Sergio Martins
3697814141
Add Frame::dockWidgetsMinSize()
...
Like Frame::minSize() but smaller due to the tab widget overhead
2020-05-28 20:51:06 +01:00
Sergio Martins
d8af06a7ee
Rename Item::maxSize to Item::maxSizeHint
...
It will more of an hint than really enforced in all cases
2020-05-28 20:20:24 +01:00
Sergio Martins
6797d291b6
Propagate max-size from the guest widget to DockWidget
...
Next step is propagating from DockWidget->Frame
2020-05-28 18:40:55 +01:00
Sergio Martins
798c808790
example: Set the max-size on the guest widget not on the dock
...
the size constraint will propagate up
2020-05-28 17:48:10 +01:00
Sergio Martins
4e3197388e
Add a failing TestDocks::tst_maxSizePropagates
2020-05-28 17:47:57 +01:00
Sergio Martins
6cd5254779
Add a .vscode directory
...
Has some presets for debugging launching and configuring intellisense
via cmake
2020-05-26 22:07:22 +01:00
Sergio Martins
f770e768b8
example: Add option to load a layout from file
2020-05-26 21:53:58 +01:00
Sergio Martins
d07f715ed7
updateTitleBarVisibility after deserializing
...
Fixes floating window having two title bars
2020-05-26 21:53:51 +01:00
Sergio Martins
87c7a8ad65
Add unit-test for the previous commit
2020-05-26 20:17:37 +01:00
Sergio Martins
05f93a98f0
LayoutSaver: Only close dock widgets that would be restored
...
It can happen that the JSON layout knew about less dock widgets
than there are, as there can be new ones now
2020-05-26 19:49:02 +01:00
Sergio Martins
bab10c8d65
Add overloads to DockRegistry::clear()
...
So we can specify what to close
2020-05-26 19:13:34 +01:00
Sergio Martins
5e3a305a7c
Add some useful DockRegistry overloads
2020-05-26 18:58:04 +01:00
Sergio Martins
c9fa637ae7
Add some helper methods to LayoutSaver::Layout
...
To retrieve the list of main windows and dock widgets present
in the loaded layout
2020-05-26 18:29:30 +01:00
Sergio Martins
79064b539a
Another amalgamation fix
2020-05-26 16:16:31 +01:00
Sergio Martins
aa7107bde2
Silence some warnings on Windows
2020-05-26 16:13:56 +01:00
Sergio Martins
704e6d0182
Fix the amalgamation build a bit
...
As Config is already in another namespace
2020-05-26 16:12:25 +01:00
Sergio Martins
7634438f6c
Add unit-test to previous commit
2020-05-25 23:30:31 +01:00