Sergio Martins
b7cb6afa49
Item: Also position the opposite position, not just the length
...
Fixes fuzzer test 20.json
2020-05-13 19:39:30 +01:00
Sergio Martins
0db40953ac
fuzzer: don't dump invalid operations to the JSON
2020-05-13 19:37:47 +01:00
Sergio Martins
137cf017c4
fuzzer: add a nice place to set a breakpoint
2020-05-13 19:37:47 +01:00
Sergio Martins
68acdaeb9a
Fix Items not being connected to their parent after a restore
...
Missing connectToParent() calls.
2020-05-13 12:24:46 +01:00
Sergio Martins
4dea453e7c
fuzzer: Trim failling test
2020-05-11 00:25:09 +01:00
Sergio Martins
ca52d6f760
fuzzer: Add a failing test
2020-05-11 00:05:00 +01:00
Sergio Martins
5eff4f8df8
fuzzer: fix dumping to JSON skipping some operations
...
Operations that don't have any parameters werent being saved
2020-05-11 00:04:26 +01:00
Sergio Martins
cc2aa13eb7
fuzzer: Fix dockByName() returning nullptr
...
dockStr() is just for printing purposes
2020-05-10 23:44:48 +01:00
Sergio Martins
c4df3600af
tst_docks|fuzzer: Use offscreen QPA by default too
2020-05-10 21:26:52 +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
7a2aa43b2d
Fuzzer: Add SaveLayout and RestoreLayout operations too
2020-02-19 14:12:44 +00:00
Sergio Martins
52e53c4fd9
fuzzer: Trim the failing test
2020-01-29 15:04:51 +00:00
Sergio Martins
07f9e9a0df
Fix fuzzer testcase failing/2.json
...
And renamed it to 17.json, as we already have an unrelated 2.json.
The removed check isn't needed, as we'll check again when we
finish restoring the placeholder. It was also a false-positive
warning sometimes because boundPositionForAnchor() would fail
since the "anchors following" wasnt initialized yet, as we do
a clearAnchorsFollowing while restoring the placeholder
2020-01-27 18:47:37 +00:00
Sergio Martins
195c8121c0
fuzzer: Simplify names for 2.json
2020-01-27 15:17:30 +00:00
Sergio Martins
2b1518b1c2
Fuzzer: Add a new failing testcase
2020-01-27 15:10:55 +00:00
Sergio Martins
ca98d376b7
fuzzer: Move 14.json from failing to ok
...
It passes now
2020-01-24 20:05:43 +00:00
Sergio Martins
16b564a005
Add a test which is failing on macOS
2020-01-24 20:02:26 +00:00
Sergio Martins
162bf0e828
Don't move anchors that are following others
...
Move the real ones instead. Fixes some bugs found with the fuzzer.
2020-01-24 16:19:42 +00:00
Sergio Martins
068eb7cc25
fuzzer: trim 15.json a bit
...
smaller and still repro
2020-01-24 11:52:51 +00:00
Sergio Martins
8c37c3a7ec
fuzzer: print the name of the failing test
2020-01-24 11:38:21 +00:00
Sergio Martins
e2d47001db
fuzzer: Move failing tests to a failing directory
...
So we can run the correct ones with *.json
2020-01-24 11:37:45 +00:00
Sergio Martins
4a6b73cae1
fuzzer: Decouple skipping last from no quitting
...
There's two separate options now, as it's useful to pause without
skipping the last test
2020-01-22 14:44:56 +00:00
Sergio Martins
d738fbd154
fuzzer: Fix description of skipped operation
...
Only generate the description after all other dockwidgets are placed
, as the state of the others will be in the last description too
2020-01-22 12:47:42 +00:00
Sergio Martins
7c10ab37f4
fuzzer: print description of skipped operation
...
involves making sure the description is generated
2020-01-22 11:54:09 +00:00
Sergio Martins
460d3f9ec1
fuzzer: Print the skipped operation
2020-01-22 11:48:04 +00:00
Sergio Martins
4c19ccade7
fuzzer: don't destroy the windows when we use -d
...
so we can debug the app
2020-01-22 11:36:49 +00:00
Sergio Martins
03cc8abd94
fuzzer: Add skipAndPause (-d) option
...
So we can pause before the last test and debug the app
2020-01-22 11:17:59 +00:00
Sergio Martins
8447cefc14
fuzzer: trim testcase 16
...
Now has the minimum to reproduce
2020-01-22 10:56:11 +00:00
Sergio Martins
141cbc55f4
add a failing testcase
2020-01-21 22:05:32 +00:00
Sergio Martins
873978a99e
Add some failing testcases
2020-01-21 22:05:03 +00:00
Sergio Martins
b8279633ac
fuzzer: add an -l option, so it loops until it crashes
2020-01-21 17:10:29 +00:00
Allen Winter
df692686e7
various - update copyright year
2020-01-07 11:36:56 -05:00
Sergio Martins
6a9b02ea63
Fix ensureMinSize_recursive
...
It doesn't make sense to only grow one side, as sometimes the item
must grow in both sizes, as the right side might now have enough
to acomodate its needs.
This also allows us to not use Anchor::ensureBounded(), as separators
being within their bounds doesn't imply min sizes being respected, while
the inverse is true
fuzzer testcase 10.json now passes
2019-10-20 16:57:52 +01:00
Sergio Martins
195390aa9e
Fix build with msvc2015, it doesn't have <optional>
2019-10-18 17:37:25 +01:00
Sergio Martins
38dc89818f
fuzzer: Move 10.json to failing/
...
So we can test the good ones easier, just fuzzer *json
2019-10-18 17:24:48 +01:00
Sergio Martins
a4b064945b
fuzzer: Add a failing test
2019-10-18 00:01:33 +01:00
Sergio Martins
bc1b511d86
fuzzer: Add a failing test
2019-10-17 18:45:03 +01:00
Sergio Martins
9d0a69c1a6
Relax warning about AnchorGroup being small
...
When adjusting the vertical separators we should only check if
the group has enough width. It's height is adjusted in ensureAnchorsBounded().
(And vice-versa)
Found via fuzzer's test-case 9.json. Passes now.
2019-10-17 18:12:51 +01:00
Sergio Martins
bb7f5e51c6
Relax warning in Anchor::setPosition()
...
Can happen with normal separators too.
They'll be fixed ensureAnchorsBounded() anyway.
2019-10-17 17:50:59 +01:00
Sergio Martins
1bd5f20309
fuzzer: Bail out if json to load doesn't exist
2019-10-17 09:06:30 +01:00
Sergio Martins
ea2a1ed0fd
fuzzer: simplify 8.json
2019-10-16 14:09:33 +01:00
Sergio Martins
8bdbe029ff
fuzzer: Add failing unit-tests
2019-10-16 14:04:16 +01:00
Sergio Martins
c57815a828
fuzzer: trim 2.json
2019-10-15 19:34:14 +01:00
Sergio Martins
8fec6a871e
fuzzer: minor simplification for 6.json
2019-10-15 17:13:34 +01:00
Sergio Martins
982e9828e8
fuzzer: regeneratete 6.json, fixes comments
2019-10-15 17:05:41 +01:00
Sergio Martins
68dba4c993
fuzzer: Add failing test-case
...
Another "Constraints not honoured"
2019-10-15 17:04:28 +01:00
Sergio Martins
af796f6e69
fuzzer: Only print tasks we're running
2019-10-15 16:40:38 +01:00
Sergio Martins
d0c7c9eb99
Fix Item and Frame geometry getting out of sync
2019-10-15 16:37:08 +01:00
Sergio Martins
c8d436d752
fuzzer: trim 4.json further
...
this is the minimal to reproduce now.
2019-10-15 13:04:23 +01:00
Sergio Martins
5bed380e21
fuzzer: trim testcase 4.json
2019-10-15 12:59:33 +01:00