Commit Graph

1157 Commits

Author SHA1 Message Date
Sergio Martins
a29a33a46d Abstract starting a drag
So draggables can give their opinion on when to start a drag.
So we can support movable tab-bars.
2019-12-24 10:18:20 +00:00
Sergio Martins
53238e4f29 Add a comment about isPositionDraggable 2019-12-24 10:02:59 +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
cdc70ec34b Support MainWindow being embedded into a widget on Linux/macOS too
Dragging indicators weren't being shown.

Suprisingly we already had a test for this: tst_embeddedMainWindow
But it passed on offscreen, just failed with xcb, which we don't
usually run
2019-12-18 18:00:11 +00:00
Sergio Martins
4a2a718f78 Add .cmake to .gitignore 2019-12-18 17:51:08 +00:00
Sergio Martins
617bfa4801 Add DockRegistry::topLevels() 2019-12-18 17:50:35 +00:00
Allen Winter
71160b38c6 various - use secure urls 2019-12-10 15:10:30 -05:00
Allen Winter
41d07ef8c6 examples - include guards. use qrand() 2019-12-10 14:48:10 -05:00
Allen Winter
1723f001c9 src/private/quick/QmlTypes.h - add include guard 2019-12-10 14:47:32 -05:00
Allen Winter
f2123ffb41 src/private/quick/qml/*.qml - add license+copyright header 2019-12-10 14:46:30 -05:00
Allen Winter
572a5cc6b5 .krazy - add more EXCLUDEs and SKIPs 2019-12-10 14:45:43 -05:00
Allen Winter
04d91863c6 README.md - add github url 2019-12-10 12:03:49 -05:00
Sergio Martins
89dbd20e1d Honour the widget's initial size when adding it to the layout
In MultiSplitterLayout::lengthForDrop(), we use frame's size
as the suggested size to use when add a dock widget. So give
the frame the size of the dock widget.

User can now do:
    dockwidget->resize(foo);
    mainwindow->addWidget(); and it will respect the size
2019-12-08 17:24:30 +00:00
Sergio Martins
7bb0a29aea Fix resizing height not preserving correct relative sizes
Because the percentage code was always using widths. It should
use height when the anchor orientation is horizontal.
2019-12-08 16:39:43 +00:00
Sergio Martins
af1a26ef59 Debug++ 2019-12-08 16:37:53 +00:00
Sergio Martins
2d0b7f1bee Add Frame::isInMainWindowChanged() signal 2019-12-03 19:53:50 +00:00
Sergio Martins
f351e5ed9c README: Mention that Qt >= 5.9 is required
Fixes: #17
2019-12-01 13:47:30 +00:00
Sergio Martins
945dbc1f27 Fix build with namespaced Qt
Fixes #18
2019-11-27 16:17:48 +00:00
Sergio Martins
5ce5c5ed41 Merge pull request #16 from KDAB/readmegif
Optimize screen capture
v0.1
2019-10-29 13:27:27 +00:00
Jean-Michaël Celerier
f8a77d3b4f Optimize screen capture 2019-10-29 11:30:26 +01:00
Sergio Martins
10330a2edf Revert "README: Use a screenshot of the new demo instead of the old"
This reverts commit f5442ddc52.

The new screenshot has too much resolution and shows very small
on github. Restoring the old one.
2019-10-23 10:44:57 +01:00
Sergio Martins
f5442ddc52 README: Use a screenshot of the new demo instead of the old 2019-10-23 10:42:07 +01:00
Sergio Martins
c534efdb95 Minor readme fixes 2019-10-22 16:52:23 +01:00
Sergio Martins
a3556e3f78 Explain in README how to test the example 2019-10-22 16:51:09 +01:00
Sergio Martins
8e437f598b Remove old readme from the example, it's no longer relevant 2019-10-22 16:44:18 +01:00
Sergio Martins
afbe092f7c readme improvements 2019-10-22 16:03:39 +01:00
Sergio Martins
9f01261f9a Update README 2019-10-22 16:02:06 +01:00
Sergio Martins
83f6bb8daf Remove some sanity checks, no longer needed
Silenced a false-positive warning about anchor visibility.
It was invisible because we're within a main window show()

It will be checked by the unit-tests and fuzzer anyway. No need to
do it in production.
2019-10-22 15:28:50 +01:00
Sergio Martins
e4eac7a688 demo: Fix startup delay 2019-10-22 14:17:57 +01:00
Sergio Martins
44bcfdf53c Simplify the demo, make it more verbose
So people see how the API is used.
using vectors of structs with parameters is very compact but
is harder on the reader of a new API
2019-10-22 13:39:41 +01:00
Sergio Martins
a9f5917a54 demo: Make it look nice
Logo now scales better
2019-10-22 13:10:01 +01:00
Sergio Martins
fa8aaeff50 Use KDAB artwork for the dockwidgets example
Work in progress but already looks good.
2019-10-21 23:08:59 +01:00
Sergio Martins
38949fac2a Fix build without find_package()
Some of our projects have kddockwidgets directly in their build
2019-10-21 14:30:04 +01:00
Sergio Martins
de42a4a33c Remove some asserts that aren't needed anymore
They were useful during development.
They have a warning anyway, so the tests and fuzzer will still fail
if something bad happens
2019-10-20 20:32:35 +01: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
a3bb7e6b4b Remove examples/CMakeLists.txt
Examples are standalone now
2019-10-20 17:55:27 +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
9ce22848f4 Factor out some code into a Item::ensureMinSize_recursive() function
So we can reuse this function in other places.
2019-10-19 19:43:33 +01:00
Sergio Martins
d189506a8c Fix separators sometimes not being visible
When a separator is following other it becomes invisible. But if the
followee is deleted we weren't detecting that.

Connect to the followee's QObject::destroyed() signal so we stop following
and show this separator
2019-10-18 18:31:09 +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
71287fb916 Improve debug 2019-10-17 23:58:36 +01:00
Sergio Martins
f9c2283ff5 Dont shift separator if there's other visible items still
When hidding a dockwidget we shift the left separator 50% and the right one
50%, instead of left 100%, so it's fair. But if the separator has other
visible dock widgets then no shifting should happen.
2019-10-17 23:57:13 +01:00
Sergio Martins
00ae23d80b Add Anchors::followers() 2019-10-17 23:53:27 +01:00
Sergio Martins
bc1b511d86 fuzzer: Add a failing test 2019-10-17 18:45:03 +01:00
Sergio Martins
ffa61abeb8 Debug++ 2019-10-17 18:29:41 +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