Sergio Martins
9fba1e9799
Rename Controller::DockWidgetBase to Controller::DockWidget
...
As done for other controllers
2022-03-25 10:53:02 +00:00
Sergio Martins
8656108e81
Renamed MainWindowBase to MainWindow
...
As done for other controllers
2022-03-25 10:47:20 +00:00
Sergio Martins
63b5109113
Rename Views::MainWindow to Views::MainWindow_qtwidgets
...
As done for other views
2022-03-25 10:41:46 +00:00
Sergio Martins
264b08a731
Move MainWindow view into Views namespace
2022-03-25 10:40:16 +00:00
Sergio Martins
0c686c1339
Renamed MainWindowBase.h to MainWindow.h
...
As done for other controllers
2022-03-25 10:30:07 +00:00
Sergio Martins
27007184aa
Rename MainWindow.h to MainWindow_qtwidgets.h
...
Just like the other views.
2022-03-25 10:27:25 +00:00
Sergio Martins
7e2f448ae1
Moved MainWindowBase/MainWindow into controllers/view folder
...
This is just the move, not ported yet
2022-03-25 10:21:07 +00:00
Sergio Martins
90a9159748
Introduce ViewWrapper - a non-owning view
...
In many cases we need to access widgets that weren't created by
KDDW, in that case we have no View. Since all our APIs want to
deal in View and not in QWidget, we need a way to wrap stuff like
QWidget::window() and windowHandle()
All methods are unimplemented. Will only implement those that
are required/used.
2022-03-25 10:03:46 +00:00
Sergio Martins
e0e6d1fd3e
Merge both Logging_p.cpp into the same one
...
the multisplitter abstraction is no longer the way we want to
abstract the framework
2022-03-24 16:59:50 +00:00
Sergio Martins
123fcdde1f
Remove unused backend_temp_includes/ folder
2022-03-24 16:53:27 +00:00
Sergio Martins
15956ab222
Move all the QtQuick files to views_qtquick/
...
It's not ported yet, bet at least they are in their final folder
and not polutting the rest
2022-03-24 16:43:27 +00:00
Sergio Martins
c6d95c42a8
Split most widgets into a Controller and a View
...
Controllers don't have any GUI and don't depend on the frontend
technology.
Views are implemented in a specific GUI tech (QtWidgets, QtQuick, etc).
For now only QtWidgets work. There's still a lot to decouple.
This will make it easier to introduce non-Qt backends.
2022-03-24 16:05:37 +00:00
Sergio Martins
ca3fe4070a
Port layouting signals to KDBindings
2022-02-12 16:15:07 +00:00
Sergio Martins
bef7aab7f6
Move kdbindings to src/3rdparty
2022-02-12 14:45:12 +00:00
Sergio Martins
d4bcc96f2f
Add KDBindings to 3rdparty
...
To replace Qt in the backend.
2022-02-12 14:45:12 +00:00
Sergio Martins
b5003f8fb8
Make sure the layouting builds standalone
...
Goal will be for it to be C++ only, eventually.
backend_temp_includes/ is to be removed, but required to build currently.
2022-02-12 14:45:12 +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
54bf24d5d4
Added Config::setDropIndicatorAllowedFunc()
2022-02-11 19:49:23 +00:00
Sergio Martins
76cbb760ed
Minor refactoring before introducing DropIndicatorAllowedFunc
...
Deals with all the false case first
2022-02-11 19:07:28 +00:00
Sergio Martins
4824a398ab
Move DropIndicatorOverlayInterface::DropLocation enum to namespace scope
...
It's public now
2022-02-11 18:14:26 +00:00
Sergio Martins
a502a8250b
Fix possible nullptr dereference
2022-02-11 17:42:09 +00:00
Sergio Martins
85fb4ff671
indicators: Prepare the visibility to be more granular
...
Currently either all or none inner indicators can be hidden/shown,
and same of the outter.
We'll soon allow some of them to be hidden, selectively, by the
client app.
2022-02-11 17:37:26 +00:00
Sergio Martins
5811cab164
segmented indicators: Fix potential bugs due to decoupled drop types
...
The returned QVector was indexed by the enum values, but the enum
is flag based now, no longer sequential. Instead of depending
on ordering of the enum, let's instead return a QHash where the
type is coupled with the corresponding QPolygon already
2022-02-11 17:08:30 +00:00
Sergio Martins
1387c2f573
segmented indicators: Use the base class logic
...
Instead of repeating it
2022-02-11 16:58:12 +00:00
Sergio Martins
79cc347cd8
Refactor: Move indicator visibility logic into base class
2022-02-11 16:42:07 +00:00
Sergio Martins
e62bde3152
Improve documentation for MainWindowOption_HasCentralWidget
...
Fixes issue #272
2022-02-11 14:36:19 +00:00
Sergio Martins
ecd3c20adf
Fix build with Qt5+C++20
...
Error was:
qvector.h:532:18: error: use of overloaded operator '!=' is ambiguous (with operand types 'int *' and 'QTypedArrayData<int>::iterator')
while (i != d->begin())
2022-02-10 11:01:14 +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
e00a552bf8
Add DragController::currentStateChanged() signal
2022-02-04 17:52:54 +00:00
Sergio Martins
faf93fe597
Add DragController::isIdle()
2022-02-04 17:48:42 +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
4f8b174a8d
Fixed Frame::isFloating() for the nested MDI case
2022-02-04 15:17:11 +00:00
Sergio Martins
b13ba1e42e
Fix crash due to use of native widgets on Windows
...
Qt has corner cases when all of its widgets are native widgets.
This particular crash was a loop between QWidget::create()
and QWidget::createWinId().
2022-02-02 13:21:14 +00:00
Sergio Martins
481dae64c3
nested_mdi: Fix floating windows not going back to their previous location
...
When floating a mdi window that was nested in a drop area, clicking the
float button should put it back to the MDI area.
2022-01-30 02:55:02 +00:00
Sergio Martins
6b04e20a7e
Add some doxygen
2022-01-30 02:40:53 +00:00
Sergio Martins
8a3ee35993
Fix firstParentOfType() going through different windows
2022-01-30 02:15:58 +00:00
Sergio Martins
146c656e29
Minor: Use OOP, add ItemRef::isInMainWindow()
2022-01-29 21:43:41 +00:00
Sergio Martins
a190e2dfbf
Fix -Wshadow warning
2022-01-29 20:57:19 +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