Sergio Martins
4f5ffa2370
Add DropArea_qtwidgets stub
2022-04-23 14:42:03 +01:00
Sergio Martins
860a1a1bb0
Move DropArea into Controllers namespace
...
In preparation for View/Controller split.
2022-04-23 12:14:30 +01:00
Sergio Martins
ec0e841bb8
Introduce qtwidgets/FrameworkWidgetFactory_qtwidgets
...
It doesn't scale to support all platforms with ifdefs, instead, use one
file per platform
2022-04-10 21:15:10 +01:00
Sergio Martins
d5700d94e6
MainWindow controller now receives View parent instead of QWidget
2022-04-03 21:23:03 +01:00
Sergio Martins
79f9f72ef4
DockWidget: decouple more from QtWidgets
2022-04-03 20:06:31 +01:00
Sergio Martins
f2aaf65674
Added TabBar view interface
...
Removes some dependencies to QtWidget
2022-04-02 22:38:33 +01:00
Sergio Martins
f2957e35d5
Moved MainWindow into Controllers namespace
...
All renamings and movings are done, next step is to make the controller
a proper controller, and same for the view.
2022-03-25 11:30:40 +00:00
Sergio Martins
8656108e81
Renamed MainWindowBase to MainWindow
...
As done for other controllers
2022-03-25 10:47:20 +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
894ff9fea0
Minor: Fix overridden signature
2022-01-24 15:34:37 +00:00
Mauro Persano
d1767b5534
Don't render frame for central persistent widget
...
When the main window has a central persistent widget, make sure the
containing tab widget doesn't render a frame around it.
2022-01-20 22:08:17 +00:00
Allen Winter
93e60a743e
update copyright year
2022-01-20 08:05:26 -05: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
19fd1635e6
Remove userType() from public API for now
...
If added, will need to be through overloads, to not break source
compat. Will add them once there's a need.
2021-03-01 16:34:22 +00:00
Sergio Martins
e37c1f0e8c
qtquick: Pass the userType all the way to titleBarFilename()
2021-02-28 20:33: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
482757b1cc
qtquick: Don't hardcode "FloatingWindow.qml"
...
Allow the user to specify their impl
2021-02-26 19:21:42 +00:00
Sergio Martins
c143f832c6
qtquick: Don't hardcode "Frame.qml"
...
Allow the user to specify their impl
2021-02-26 19:12:53 +00:00
Sergio Martins
67a173ef53
qtquick: Don't hardcode "DockWidget.qml"
...
Allow the user to specify their impl
2021-02-26 18:57:31 +00:00
Allen Winter
875544a449
Merge branch '1.2'
2021-01-02 09:32:20 -05:00
Allen Winter
a2f4c972a6
update copyright year
2021-01-02 09:27:50 -05:00
Sergio Martins
771bf10951
Merge branch '1.2'
2020-12-22 18:48:22 +00:00
Sergio Martins
f8d0ffe7ba
Fix a few clazy warnings
2020-12-22 16:02:55 +00:00
Sergio Martins
b15afa9231
Move TabWidget instantiation to base class Frame
...
Instead of being instantiated by both FrameQuick and FrameWidget
2020-12-20 14:21:39 +00:00
Sergio Martins
6e0898a31e
Remove some methods from TabWidgetQuick
...
Reuse more from base class.
2020-12-20 13:19:07 +00:00
Sergio Martins
143c82291d
qtquick: The user can now choose another titlebar file
2020-12-02 22:43:01 +00:00
Allen Winter
ece7b22bec
apidox - fix doc for enum KDDockWidgets::Config::Flag
...
doxygen likes "///<" (not "///>")
Issue#106
2020-11-22 12:17:38 -05:00
Sergio Martins
48a75b2450
Fix namespaced build
2020-10-05 10:21:20 +01:00
Sergio Martins
f062ab7a64
TitleBar: Move button construction into the FrameWorkWidgetFactory
...
So it can be more easily overridden by the user.
A virtual in TitleBarWidget is not good enough as we can't call virtuals
when in the ctor
2020-10-03 14:52:44 +01:00
Sergio Martins
a6c4730c44
SideBar is now constructed by the framework widget factory
...
Means it can be overridden by the user
2020-09-20 18:08:23 +01:00
Sergio Martins
113e6453ea
example: Show usage of segmented indicators
2020-08-23 16:57:48 +01:00
Sergio Martins
64791eec82
qml: decouple ClassicIndicator from QRubberBand
...
the rubber band is now returned from the factory, meaning it can
be a QQuickItem when QtQuick is being used
Still need to remove the QtWidget'isms from IndicatorWindow
though
2020-08-09 18:39:56 +01:00
Sergio Martins
1d032abb72
Fix some doxygen bugs
2020-07-30 16:15:25 +01:00
Allen Winter
fc633f2547
various minor documentation fixes for doxygen
2020-07-29 18:58:17 -04: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
c33c7ab450
Don't leak Layouting::Widget
...
Don't create it directly, instead of multi-inheritance
2020-05-24 18:45:44 +01:00
Sergio Martins
c5d9b38fc2
Disable copy of polymorphic types
2020-05-17 19:11:45 +01:00
Sergio Martins
0595448bba
Replace Anchor with Separator
...
We don't have the concept of Anchors anymore. Code is now simpler
2020-05-04 13:10:38 +01:00
Sergio Martins
97c1ca30fd
Layouting engine rewrite
...
The layouting was becoming too complex to maintain and to introduce
new features. Was even buggy, the fuzzer was constantly finding
bugs, which took hours to workaround.
Problem with the old layout engine is that there was a catch 22, between
Items driving the separators, and separators driving the anchors.
The new layout is much simpler, both in implementation and conceptually.
There's simply a recursive hierarchy of Item elements. An Item can either
have a QWidget to show, or be a ItemContainer, which contains Item children,
and so forth. Each ItemContainer is either vertical or horizontal. That's enough
to represent the "nested multi-splitter" concept which KDDW uses.
After each item insertion/deletion/resize, the separators are regenerated. They
are essentially dumb now.
TODO:
- Separators are drawn, but are not interactive yet
- There's 5 tests failing
- LayoutSaver scalling functionality
2020-05-04 00:02:03 +01:00
Sergio Martins
37fe065bcf
FloatingWindow: Receive MainWindow as the parent
...
Better for readability
2020-02-09 18:14:36 +00:00
Allen Winter
df692686e7
various - update copyright year
2020-01-07 11:36:56 -05:00
Sergio Martins
a0d05b4e2b
Move Frame::Options enum to KDDockWidgets.h
...
So we can forward declare Frame and not include private headers
in FrameworkWidgetFactory.h
2019-10-07 13:43:48 +01:00
Sergio Martins
b5fad9a601
docs++
2019-10-05 12:54:25 +01:00
Sergio Martins
3dd9d48f57
Add more stubs for QtQuick
2019-08-24 21:28:00 +01:00
Sergio Martins
a97759ab46
Install Frame_p.h too, as its needed due to the enum
2019-08-12 20:12:44 +01:00
Sergio Martins
020571b6f5
The QtQuick stuff compiles now
2019-08-08 12:52:18 +01:00
Sergio Martins
2a0c228733
Abstract the indicator style, now comes from the factory
2019-08-08 11:37:14 +01:00
Sergio Martins
89757def76
Abstract TabWidget away from QtWidgets, so can be used for QtQuick
2019-08-08 00:41:48 +01:00
Sergio Martins
266e683f98
Abstract Separator too, it inherits from QWidgetAdapter
2019-08-06 23:17:08 +01:00