Sergio Martins
d848d3e39a
MainWindow: Receive either QWidget or QQuickItem as parent
...
No need to receive the more complex adapters
2020-10-03 22:09:56 +01:00
Sergio Martins
2b234f313c
quick: Remove some QWidget specific code from MainWindowBase
2020-10-03 18:10:23 +01:00
Sergio Martins
c035df7e85
Improve the heuristics for auto-hide prefered side bar
...
Now it counts the number of borders it's touching to decide.
Then checks aspect ratio too.
Can still be improved, but it's a start. Will gather feedback
before changing it further.
2020-10-01 17:16:41 +01:00
Sergio Martins
9bf060af9a
SideBar: Support sending to West/East too
...
Algorithm can be made smarter, but this is good for now
2020-09-20 23:53:26 +01:00
Sergio Martins
ac7d06d4fe
When closing overlay, remove it from side bar too
...
Added test.
2020-09-20 23:46:37 +01:00
Sergio Martins
75e9137e3a
Increase a bit the side of the overlays
2020-09-20 23:18:46 +01:00
Sergio Martins
cdb8f85620
Fix overlay positions when on left/right
...
Was off by a few pixels, looks good now
2020-09-20 19:37:53 +01:00
Sergio Martins
f459dcb8b3
length of overlayed dockwidgets now accounts for open sidebars
...
For example, if we're showing a bottom overlay, but the left
sidebar is visible, then the bottom overlay can't be so wide
2020-09-20 19:20:35 +01:00
Sergio Martins
b303af738c
Improve position for north/south overlays
2020-09-20 16:56:57 +01:00
Sergio Martins
af5e11a265
Update the overlay's geometry when we resize the main window
2020-09-20 16:38:03 +01:00
Sergio Martins
8d7627069c
Factor out some code into updateOverlayGeometry()
...
So it's reusable
2020-09-20 16:30:43 +01:00
Sergio Martins
9e94c0d67d
The auto-hide button now works as expected
...
1st click it show the overlay and adds to sidebar
2nd click it hides the overlay, removes from sidebar and restores the dockwidget
2020-09-20 14:13:39 +01:00
Sergio Martins
005e0552b6
Delete SideBarButton when dock widget is removed from sidebar
2020-09-20 13:53:49 +01:00
Sergio Martins
54b28c42e2
Added DockWidgetBase::isOverlayed()
2020-09-20 13:48:17 +01:00
Sergio Martins
2659ddb76b
refactor: Decouple moveToSideBar from overlaying
...
overlaying just shows/hides the overlay, and not requires
the dock widget was added to the sidebar before
2020-09-20 13:44:04 +01:00
Sergio Martins
c85873c6ce
Added MainWindowBase::sideBarForDockWidget(dw)
...
Just a getter.
2020-09-20 13:24:18 +01:00
Sergio Martins
b8891a5727
Start implementing overlaying on top of main window
2020-09-20 12:56:31 +01:00
Sergio Martins
fcb6f5a6af
Use the top sidebar too
2020-09-19 12:16:51 +01:00
Sergio Martins
76e2ec6429
Add East, West and North sidebars too
...
Instead of just south.
Only south is used for now though.
2020-09-19 11:00:42 +01:00
Sergio Martins
e1085fb770
Add experimental support for minimization to side-bar
...
Auto-hide not working yet. Just minimization.
Internal for now. Will be public once finished.
2020-09-18 18:35:41 +01:00
Sergio Martins
1cfceb4d07
MainWindow: Move the drop area to the base class
...
QtQuick impl will also use it
2020-08-03 19:39:01 +01:00
Sergio Martins
9275432aea
Remove a couple of unneeded includes
2020-07-26 21:42:29 +01:00
Allen Winter
b4f49895c2
clarify: licensing is GPL2 or GPL3 or commercial licensed
...
follow the REUSE specs
2020-07-24 18:16:13 -04:00
Sergio Martins
86e58dd8a7
Merge MultiSplitterLayout into MultiSplitter
...
No need to have two. It's a leftover from the old layouting engine
2020-06-11 16:34:28 +01:00
Sergio Martins
d94263fce5
Allow each dock widget and main window to support multiple affinities
2020-05-25 14:14:17 +01:00
Sergio Martins
2527b39368
Moved the multisplitter wrapper outside of multisplitter/
...
As it depends on kddw framework, while multisplitter/ is the
agnostic layouting engine
2020-05-23 17:01:20 +01:00
Sergio Martins
af25af1259
Add MainWindow::layoutEqually()
...
Distributes the space equally between all dock widgets
2020-05-18 00:05:50 +01:00
Sergio Martins
ab0fc1e328
Add DockWidget::Option_NonDockable
...
A dock widget with this option will always be floating and not be
able to dock into anything. Other widgets can't dock into it either.
2020-04-13 13:23:38 +01:00
Sergio Martins
dedda6cb14
LayoutSaver: Also store the affinity in the JSON
2020-03-01 14:13:02 +00:00
Sergio Martins
950ef943b7
LayoutSaver: Save the top-levels screen number
...
So we can be smarter when restoring layouts with different screen
setups
2020-02-20 18:39:06 +00:00
Sergio Martins
efdd8f9f81
LayoutSaver: Also store the screen and layout size
...
So when restoring we can restore relative to that
2020-02-20 14:14:06 +00:00
Sergio Martins
d6997eaf7f
Introduce main window affinity
...
By default a dock widget can dock into any main window.
With affinities, we can now have a dock widget "belong" to a main window
and only be able to dock into it (or into other floating dock widgets
with the same affinity).
See DockWidgetBase::setAffinity() and MainWindowBase::setAffinity().
2020-02-09 21:02:21 +00:00
Allen Winter
df692686e7
various - update copyright year
2020-01-07 11:36:56 -05:00
Sergio Martins
68a536bb67
Minor renaming, deserialize() no matches serialized()
2019-09-21 16:18:19 +01:00
Sergio Martins
c80a16d2c1
Also use the intermediate representation when serializing
2019-09-21 15:15:44 +01:00
Sergio Martins
65c9693a62
Restoring now reads from the intermediate representation
...
Only the intermediate representation is filled in from the stream
now. TODO: GUI->intermediate.
2019-09-20 17:24:22 +01:00
Sergio Martins
abbc79f0e0
Progress with the QtQuick port
2019-09-07 16:20:22 +01:00
Sergio Martins
3b041c3145
quick: Fix the base class of MainWindowBase
...
Should only inherit from QMainWidget in QtWidget mode.
2019-09-04 15:55:04 +01:00
Sergio Martins
cad7486907
Introduce MainWindowBase
...
MainWindow is widgets only. MainWindowBase will be used by QtQuick too.
2019-09-04 15:31:55 +01:00