Commit Graph

350 Commits

Author SHA1 Message Date
Sergio Martins
63e662323f Added unit-test for Flag_DoubleClickMaximizes 2020-02-27 15:13:01 +00:00
Sergio Martins
6fb0694aab LayoutSaver: Replace saveToDisk() with saveToFile(jsonFilename)
Same for restore.
This is better API as LayoutSaver shouldn't be concerned about
QSettings. It also assumed the user only had a single layout, which
is normally not the case.

And finally, storing escaped json in .ini files is not very elegant.
2020-02-24 15:10:12 +00:00
Sergio Martins
579b222418 Make AddingOption_StartHidden also work for tabs
You can now pass that option to DockWidget::addDockWidgetAsTab().
2020-02-19 16:36:50 +00:00
Sergio Martins
7a2aa43b2d Fuzzer: Add SaveLayout and RestoreLayout operations too 2020-02-19 14:12:44 +00:00
Sergio Martins
aded290573 Don't save last position if the window was hidden already
Bug was happening when calling close() an closed dock widget, it
would then save the position of the invisible window. Next time it
was open it would appear in a bogus location. 0,0 in my case.
2020-02-06 15:01:58 +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
2ff2b78f5a Fix unit-tests on Windows with Qt 5.9
Our RAII class that ensures that each test leaves 0 top-levels behind
was being initialized with somthing bigger than 0 since the
rectForDrop() test wasn't doing proper cleanup.

Not sure why only repro with 5.9, but it's correct now.
2020-01-04 22:24:11 +00:00
Sergio Martins
6be2490c08 tests: When cleanup fails print the top-levels that we compared to
Since qApp->topLevels() contains buttons which will be deleted later
2020-01-04 21:15:39 +00:00
Sergio Martins
f37ecc0765 tests: Remove test with hardcoded values
It's flaky as the min sizes are varying with Qt versions. Also what
it tests is already tested in previous tests and elsewhere.
2020-01-04 18:33:43 +00:00
Sergio Martins
3b20f99092 tests: Add some missing window cleanup checks 2020-01-04 18:27:20 +00:00
Sergio Martins
9f5c7b5e6a tests: Use fusion style on all platforms
To make the tests more robust, as some widgets min size will
vary
2020-01-04 18:19:26 +00:00
Sergio Martins
4b0b11acee tests: Use QElapsedTimer instead of QTime::start()
The later is deprecated
2020-01-04 18:11:34 +00:00
Sergio Martins
e5df8db045 tests: Add some tests for double close 2019-12-29 18:29:27 +00:00
Sergio Martins
6be6aee56a Fix dock widgets not filling their complete available space
To repro:
 - stack 3 dock widgets vertically
 - close the top one
 - close the top one
 The remaining one should now fill the whole window but it wasn't.

Culprit was the code that makes sure that when a dock is closed that
the adjacent ones get to share their space
2019-12-23 14:28:40 +00:00
Sergio Martins
7452520662 Add DockRegistry::dockWidgetForGuest()
So you can find out the dock widget which hosts a widget
2019-12-20 10:57:05 +00: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
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
27cae066a6 Fix Anchor::cumulativeMinLength
We don't want to count the size of separators that are following
others, but we might be in the middle of an operation that will
change which separators are following, like when restoring a placeholder.

So query the actual separators that will follow.

Fixes fuzzer 8.json and 2.json
2019-10-17 13:30:31 +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