Commit Graph

79 Commits

Author SHA1 Message Date
Sergio Martins
f0ac455ec1 Allow the window being dragged to be transparent 2020-08-23 17:44:57 +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
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
79064b539a Another amalgamation fix 2020-05-26 16:16:31 +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
e28f82dcad Make Item::hostWidget be a Layouting::Widget instead of QWidget
Just an abstraction preparing for QQuickItem support
2020-05-24 17:31:37 +01:00
Sergio Martins
9ad6eefa7a Add Layouting::Config
To host many of the scatered static member variables which
held some settings that rarely change
2020-05-23 18:40:20 +01:00
Sergio Martins
01112779b0 Add a Config::mainWindowFactoryFunc
Analog to the dock widget factory func.
To be used by the linter.
2020-05-20 19:06:54 +01:00
Sergio Martins
6c2a29968a Fix include 2020-05-18 21:51:26 +01:00
Sergio Martins
3742e5ef9a example: No persistent central frame by default
This is old style, which we don't use anymore by default
2020-05-07 19:32:32 +01:00
Sergio Martins
e298667351 Remove dead code about static separators
Before we had separators on the left,top,bottom,right margins
with 0 width. Now we don't have this concept anymore
2020-05-04 14:28:59 +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
Allen Winter
df692686e7 various - update copyright year 2020-01-07 11:36:56 -05:00
Sergio Martins
21579f2743 Minor method renames 2019-10-07 00:16:16 +01:00
Sergio Martins
35b67a2cd3 Don't use 0 width/height static anchors on Windows yet.
It doesn't like 0 sized widgets
2019-09-24 17:23:48 +01:00
Sergio Martins
abbc79f0e0 Progress with the QtQuick port 2019-09-07 16:20:22 +01:00
Sergio Martins
5aab3251ca Make static separators have 0 thickness instead of 1
The static separators are the left,right,bottom,top ones. Since
they don't move, they don't need to be visible nor occupy space.
They only exist to make the algorithms easier
2019-09-02 11:37:05 +01:00
Sergio Martins
1bf2cef26f Allow static anchor thickness equal to 0 in the Config 2019-09-01 19:29:26 +01:00
Sergio Martins
8ebf7aa085 Actually fix the leak instead of crashing 2019-08-13 22:27:54 +01:00
Sergio Martins
c2ca75966a Fix mem leak 2019-08-13 16:51:12 +01:00
Sergio Martins
c1ea98825e Improve includes 2019-08-12 16:41:00 +01:00
Sergio Martins
3ef2cef7b7 Allow to configure separator thickness 2019-08-06 13:56:57 +01:00
Sergio Martins
2ce50c01ef Remove wrong assert, the variable is set to the default 2019-08-05 15:23:39 +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
Sergio Martins
1849010e3e Relax check, allow to set Config flags after QApplication 2019-08-01 10:05:25 +01:00
Sergio Martins
06e58c2225 Add a factory func to Config
So dock widgets can be created on demand while being restored
2019-07-31 22:52:35 +01:00
Sergio Martins
921d090461 Centralize the OS ifdefs in Config 2019-07-31 22:27:14 +01:00
Sergio Martins
08c858ba6e Add a Config.h public header, to configure behaviour
Like enabling aero snap or native title bar
2019-07-31 22:16:25 +01:00