Commit Graph

36 Commits

Author SHA1 Message Date
Sergio Martins
0155790b02 tests: add Test::clickOn() 2020-09-12 00:33:34 +01:00
Sergio Martins
961600fe74 qtquick: fix build
MainWindow.h is specific to QtWidgets
2020-08-22 19:19:59 +01:00
Sergio Martins
750f9b6142 tests: Add strong-focus to the widget 2020-08-14 23:00:14 +01:00
Sergio Martins
22f2975f3c tests: createMainWindow() works for qml now too 2020-08-13 00:46:55 +01:00
Sergio Martins
d3323d824a tests: Make createMainWindow return MainWindowBase
Instead of QMainWindow, so it works with qml too
2020-08-13 00:46:55 +01:00
Sergio Martins
fd56ab7932 qml: Introduce tst_common
Will be moving tests that are common to both QtWidgets and QtQuick
2020-08-02 22:16:03 +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
86e58dd8a7 Merge MultiSplitterLayout into MultiSplitter
No need to have two. It's a leftover from the old layouting engine
2020-06-11 16:34:28 +01:00
Sergio Martins
ecfa43f801 Decouple TabWidget from Frame
TabWidget is now an implementation detail of FrameWidget.
QQuick will roll their own stuff with similar api, but no need to
abstract QTabWidget and QTabBar
2020-06-03 22:18:44 +01:00
Sergio Martins
944138273f Tests: stabilize tst_embeddedMainWindow
Going 50px into the window was too short and didn't reach the embedded
window to show the indicators.

Also, it's the inner indicator we want, the other isn't visible as the
window is single frame
2020-05-25 20:11:01 +01:00
Sergio Martins
0df9943aa5 Fix fuzzer test 11.json and other tests that worked by luck
mapFrom/toRoot were wrong
2020-05-07 16:30:45 +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
eabcdfb945 Add unit-test for affinity 2020-03-01 15:03:29 +00:00
Sergio Martins
63e662323f Added unit-test for Flag_DoubleClickMaximizes 2020-02-27 15:13:01 +00: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
Sergio Martins
c1ea98825e Improve includes 2019-08-12 16:41:00 +01:00
Sergio Martins
daef0c470e Try to not expose the tab bar
It's an implementation detail of FrameWidget. Makes porting
to QtQuick easier
2019-08-08 10:08:38 +01:00
Sergio Martins
89757def76 Abstract TabWidget away from QtWidgets, so can be used for QtQuick 2019-08-08 00:41:48 +01:00
Sergio Martins
5613030fd3 Revert "Remove DOCKS_EXPORT_FOR_UNIT_TESTS to simplify things
Maybe let's keep it, since it's on very core classes that
users shouldn't change

This reverts commit db4167dd1f.
2019-08-06 22:08:00 +01:00
Sergio Martins
db4167dd1f Remove DOCKS_EXPORT_FOR_UNIT_TESTS to simplify things
And also to give more power to the user
2019-08-06 22:05:30 +01:00
Sergio Martins
49bd0b42be Add unit-test for dragging by tab widget directly 2019-08-06 21:12:34 +01:00
Sergio Martins
fc90d1e506 Move more code into tests/utils.cpp 2019-08-06 20:45:16 +01:00
Sergio Martins
1c7d0c0059 tests: refactor drag() to support dragging the TabWidget directly 2019-08-06 20:22:20 +01:00
Sergio Martins
fb837b7713 Move DockWidget.cpp into widgets/
As it's specific to QtWidgets. It's mostly empty now
and inheriting from DockWidgetBase, but we'll move a few stuff.
2019-08-05 23:35:44 +01:00
Sergio Martins
f5e72e7bed Fix available space calculation when there's placeholders
When layout is empty we don't need to account for the space
occupied by the new anchor. But neither when all the items
are placeholders
2019-07-25 23:15:12 +01:00
Sergio Martins
10c2b0fa77 Reenable layout storing 2019-07-23 17:08:54 +01:00
Sergio Martins
0243dd4ed4 Add a more complex test 2019-07-23 16:59:36 +01:00
Sergio Martins
7e02d2d953 Fix tests broken due to non-unique MainWindow/DockWidget names 2019-07-22 17:50:22 +01:00
Sergio Martins
ddb772d54f Fix clazy build 2019-07-22 09:34:15 +01:00
Sergio Martins
bb1a933137 Transform floating dock widgets into FloatingWindow
instead of waiting for the user to drag a window over it.
This makes it have better z-order, as the FloatingWindow is parented.
2019-07-20 22:15:24 +01:00
Sergio Martins
108cd96afe Save floating geometry before hidding
So it shows at the correct position when shown
2019-07-20 17:19:20 +01:00
Sergio Martins
8427cd7f5f tests: Don't spam so many qpa warnings
We don't care about these warnings so don't print them
2019-07-19 18:16:47 +01:00
Sergio Martins
24dfb34a6f Less DropArea qobject_casts 2019-07-17 22:05:12 +01:00
Sergio Martins
0abc315584 Share some tests code in utils.cpp 2019-07-16 22:13:22 +01:00
Sergio Martins
3c4dba77bf Add tests/utils.h
tst_docks.cpp is becoming too big
2019-07-16 21:38:45 +01:00