Sergio Martins
e63a34a4a5
Rename DockRegistry_p.h -> DockRegistry.h
...
People use it.
2022-06-18 09:28:03 +01:00
Sergio Martins
a4d337e891
Fully qualify header paths when including controllers
...
so this still works when private headers are installed
2022-06-13 23:24:43 +01:00
Sergio Martins
55620a5d10
TODO cleanup
...
Removed stale TODOs and promoted some to TODOm2 , as they should
be tackled next
2022-06-12 16:07:29 +01:00
Sergio Martins
07fc7d0437
tests: Move waitForDeleted() into Platform
...
So each platform can implement their own.
Meaning old Testing.cpp can be deleted too.
2022-05-20 16:41:59 +01:00
Sergio Martins
9f7c4cb217
Removed the DockWidgetBase typedef
...
That existed only to ease porting
2022-05-10 22:53:16 +01:00
Sergio Martins
c6d95c42a8
Split most widgets into a Controller and a View
...
Controllers don't have any GUI and don't depend on the frontend
technology.
Views are implemented in a specific GUI tech (QtWidgets, QtQuick, etc).
For now only QtWidgets work. There's still a lot to decouple.
This will make it easier to introduce non-Qt backends.
2022-03-24 16:05:37 +00:00
Allen Winter
93e60a743e
update copyright year
2022-01-20 08:05:26 -05:00
Allen Winter
875544a449
Merge branch '1.2'
2021-01-02 09:32:20 -05:00
Allen Winter
a2f4c972a6
update copyright year
2021-01-02 09:27:50 -05:00
Sergio Martins
5582f37a18
Introduce InitialOption struct
...
addDockWidget() received a AddingOption enumerator. But that
enum isn't enough, as we also want to be able to specify an initial
QSize.
So, instead of adding yet another parameter to addDockWidget(), we
create a struct to old those "initial settings".
Implies a minor source break, but trivial to fix in user code,
just rename the enumerator.
Honouring preferredSize will be a followup.
Needed for issue #95
2020-12-27 20:22:02 +00:00
Sergio Martins
d2da07508a
Replaced an include with a fwd decl
2020-12-15 22:58:10 +00:00
Sergio Martins
7bfac091ae
Rename DockRegistry::nestedwindows() to DockRegistry::floatingWindow
...
which is the naming we use everywhere else
2020-10-10 20:41:42 +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
19d5467f4d
fuzzer: Also generate max-size constraints
2020-06-21 23:28:35 +01:00
Sergio Martins
137cf017c4
fuzzer: add a nice place to set a breakpoint
2020-05-13 19:37:47 +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
8c37c3a7ec
fuzzer: print the name of the failing test
2020-01-24 11:38:21 +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
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
Allen Winter
df692686e7
various - update copyright year
2020-01-07 11:36:56 -05:00
Sergio Martins
af796f6e69
fuzzer: Only print tasks we're running
2019-10-15 16:40:38 +01:00
Sergio Martins
60de4fd6a0
fuzzer: Generate the descriptions before running the operations
...
Because we want to print the state before running stuff, not how
the dockwidgets end up
2019-10-15 11:59:30 +01:00
Sergio Martins
5da338c185
fuzzer: Run MultisplitterLayout::checkSanity() after each operation
2019-10-14 23:22:45 +01:00
Sergio Martins
ad4c77e15a
fuzzer: Add -f option to force dumping json
...
When loading from json we don't dump. But it's useful to regenerate
the old json in case the format was upadted with more fields.
2019-10-14 22:46:12 +01:00
Sergio Martins
50b8c91014
fuzzer: Print description when running operations
...
Even easier than reading json
2019-10-14 22:18:17 +01:00
Sergio Martins
c63e4a3d38
fuzzer: Also write the MainWindow name to json
...
Same reason as previous commit
2019-10-14 21:55:08 +01:00
Sergio Martins
9738fbddc6
fuzzer: Write the DockWidgets name to the json too
...
This way it's easier to read the json and remove unneeded dock widgets
while trimming the test-case
2019-10-14 21:49:36 +01:00
Sergio Martins
3895af14ea
fuzzer: add a slowdown option
2019-10-13 22:05:20 +01:00
Sergio Martins
dd580a0f2f
fuzzer: Don't generate random params when replaying
...
When replaying we want to replay with the params we read from json
2019-10-13 21:32:43 +01:00
Sergio Martins
d23eb035b9
fuzzer: Don't add dock widget to tabwidget already containing it
2019-10-13 18:51:41 +01:00
Sergio Martins
e278d0108a
Add OperationBase::newOperation() to avoid duplicated code
2019-10-13 18:41:27 +01:00
Sergio Martins
ae439e0dad
fuzzer: Add new operation: AddDockWidgetAsTab
2019-10-13 18:34:51 +01:00
Sergio Martins
e5b5885892
fuzzer: Add a 50ms delay, make the window manager happier
2019-10-13 18:09:13 +01:00
Sergio Martins
0ca0ad492b
fuzzer: don't require dock widgets to exist when loading json
...
They'll be created later. So use their name instead of a pointer
to them.
2019-10-13 17:50:50 +01:00
Sergio Martins
b82977d9ee
fuzzer: minor refactor to share code
2019-10-13 17:06:41 +01:00
Sergio Martins
28d0aa25ae
fuzzer: Loading from json now works
2019-10-13 17:01:08 +01:00
Sergio Martins
069a9654aa
fuzzer: Don't dump json when we're loading from json
2019-10-13 17:00:53 +01:00
Sergio Martins
acf6cfb327
Add QCommandLineParser support
2019-10-12 10:13:32 +01:00
Sergio Martins
954fb271d3
fuzzer: Also serialize the AddDockWidget operation
2019-10-11 17:04:26 +01:00
Sergio Martins
38619e734f
fuzzer: dump to json when it fails
2019-10-11 14:18:20 +01:00
Sergio Martins
005e811eaa
fuzzer: Fix hidding/showing operations
...
They werent receiving a dock widget name.
Normalized them, they now receive Fuzzer* via ctor
2019-10-11 13:33:13 +01:00
Sergio Martins
4d7da1e6f3
tests: Fix build
...
Fuzzer.cpp was filtered out by .gitignore
2019-10-11 13:27:13 +01:00