Commit Graph

22 Commits

Author SHA1 Message Date
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
c63c713bea Move SeparatorWidget into multisplitter/
multisplitter/ is to be a reusable component without needing KDDW
2020-05-24 19:13:39 +01: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
d1d1c983f1 Remove "using namespace Layouting" out of the layouting lib
Fixes windows build due to ambiguous symbols
2020-05-14 22:02:27 +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
f3eb032eff Move the Flag_TabsAlwaysVisible logic into Frame.cpp
So it works with custom framework factories too
2019-09-12 18:06:06 +01:00
Sergio Martins
7abe7fffa2 Introduce Flag_AlwaysShowTabs
Makes the tab bar always show tabs
2019-09-12 15:21:24 +01:00
Sergio Martins
3dd9d48f57 Add more stubs for QtQuick 2019-08-24 21:28:00 +01:00
Sergio Martins
d7d47be5ac Add a stub for the QtQuick counterpart of Frame: FrameQuick 2019-08-22 23:42:49 +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
Sergio Martins
eafc00657b Separator: Decouple the QWidget dependency
There's no Separator and SeparatorWidget. The former only with
state/logic. To be reused by QtQuick.
2019-08-06 13:32:06 +01:00
Sergio Martins
ae7934dd47 Abstract FloatingWindow too, introducing FloatingWindowWidget 2019-08-05 02:41:34 +01:00
Sergio Martins
d8c689316d Moved SeparatorWidget into widgets/
It's now abstracted by the FrameworkWidgetFactory, allowing
the user to provide his own
2019-08-05 02:13:42 +01:00
Sergio Martins
a17465158d Introduce FrameworkWidgetFactory
The framework uses a few QWidgets (FrameWidget, TabbarWidget, TabWidget
TitleBarWidget). This factory allows the user to provide his own,
to achieve different appearence.
2019-08-05 01:35:42 +01:00