Commit Graph

26 Commits

Author SHA1 Message Date
Sergio Martins
a6598d4607 Fixed build with -Wextra-semi 2023-01-06 17:14:58 +00:00
Sergio Martins
4691f9bfa5 Ran clang-format over the codebase 2022-07-12 11:28:05 +01: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
79cc347cd8 Refactor: Move indicator visibility logic into base class 2022-02-11 16:42:07 +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
fc028ec0be Minor refactoring 2021-05-18 17:49:14 +01:00
Giuseppe D'Angelo
a5dbab096b More build fixups 2021-01-04 15:17:47 +01:00
Allen Winter
a2f4c972a6 update copyright year 2021-01-02 09:27:50 -05:00
Sergio Martins
66f447ad3f qtquick: Fix crash when hovering over titlebar
It would think we were over a drag indicator, because during an instant
the overlay window has 0x0 size but the indicators are still visible.

Fix by only showing the overlay window (visible property) when it has
the correct size
2020-11-28 17:11:46 +00:00
Sergio Martins
75db599142 tests: Make DropArea::hover() return the chosen drop location
Just for tests.
2020-11-28 16:47:19 +00:00
Sergio Martins
a5c65ae039 Introduce NullIndicators and a Config option for it
Mostly for debugging purposes, but also useful if anyone doesn't
want to display indicators
2020-11-28 14:11:39 +00:00
Sergio Martins
156dad6e03 qtquick: Fix IndicatorWindow::posForIndicator()
Wasn't even implemented. Should make some tests pass.
2020-11-18 12:06:20 +00:00
Sergio Martins
5cedfab82c Make DropIndicatorOverlay::posForIndicator() pure virtual 2020-11-18 11:44:02 +00:00
Sergio Martins
c2cc914b5c indicators: Depend less on FloatingWindow
Deal in terms of WindowBeingDragged instead, as wayland won't have
a floating window being dragged
2020-10-14 19:39:51 +01:00
Sergio Martins
283d814dc6 indicators: Also install the headers
So that the example app can show how to switch style type
2020-08-23 16:43:54 +01:00
Sergio Martins
034dc25483 indicators: Remove type()
There's no point in using it
2020-08-23 16:22:21 +01:00
Sergio Martins
00b4dbc821 Add a Segmented Indicator
Just a POC of a new indicator style
2020-08-23 13:24:27 +01:00
Sergio Martins
7fdca76a4c indicators: Use enum class for the type 2020-08-22 19:16:24 +01:00
Sergio Martins
0aee56114b qml: Dropping a dragged window now works 2020-08-11 23:40:07 +01:00
Sergio Martins
b3ec7423e8 qml: The inner indicators are now centered 2020-08-11 22:19:51 +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
4b05d4ddd7 Remove unused Item_p.h include 2020-05-08 17:02:58 +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
787f7802be Move the private code into a private/ folder
It's nice to have a similar include hierarchy at build time and install
time.

It also makes things more explicit
2019-10-20 19:24:54 +01:00