Commit Graph

1610 Commits

Author SHA1 Message Date
Sergio Martins
60b5eb00a3 Move IndicatorWindow to its own file
As it's the part that will be different with QtQuick.
ClassicIndicators can be shared.
2020-08-09 19:19:31 +01:00
Sergio Martins
0705b4da72 qml: Make Indicator class a implementation detail of QtWidgets
No longer accessed by ClassicIndicators
2020-08-09 18:57:23 +01:00
Sergio Martins
09b3e685a9 IndicatorWindow: Make some members private 2020-08-09 18:53:30 +01:00
Sergio Martins
64791eec82 qml: decouple ClassicIndicator from QRubberBand
the rubber band is now returned from the factory, meaning it can
be a QQuickItem when QtQuick is being used

Still need to remove the QtWidget'isms from IndicatorWindow
though
2020-08-09 18:39:56 +01:00
Sergio Martins
dc3aa354ec Minor code styling: Remove unneeded indentation 2020-08-09 18:13:23 +01:00
Sergio Martins
890784ba5a Finish FocusScope support
When clicking on a TitleBar the focus will be redirected to either:
- Last widget that had focus inside the scope
- To the DockWidget. Implies the user setting a guest widget that
accepts focus

Fixes: #56
2020-08-08 17:34:06 +01:00
Sergio Martins
c9468bef8a example: Add some helper code to debug focus 2020-08-08 17:34:06 +01:00
Sergio Martins
0b4c017f22 qml: Add subs regarding focus 2020-08-08 17:34:06 +01:00
Sergio Martins
6de558773f Merge branch '1.0' into master 2020-08-08 17:33:53 +01:00
Sergio Martins
2fdb85f3fb Fix build with 5.9 2020-08-08 17:32:26 +01:00
Sergio Martins
94258abf43 Decouple title bar icon from tab bar icon
You can now use different icons, or even just set an icon for the
title bar but not tab bar

Fixes #57
2020-08-08 14:05:42 +01:00
Sergio Martins
10026ba191 Add FocusScope behaviour to TitleBar
Github issue #56 is not a KDDW bug, it's how Qt works. QtWidgets don't
have focus scope. But let's workaround and handroll our own FocusScope.

Now the title bar can be colored differently if the dock widget it controls
contains any focused children.

This just implements half of the story. You have to focus a child
for the title bar to change color. Clicking the title bar directly
isn't done yet. Needs to be figured out. What do we focus when clicking it?
TitleBars usually don't care about keyboard focus. Probably we
just use the user's widget as a focus proxy.
2020-08-08 12:33:23 +01:00
Sergio Martins
0a6f760100 Fix a couple of clazy warnings 2020-08-07 22:23:08 +01:00
Sergio Martins
8db40d368c pass QStringList by const-ref 2020-08-07 22:00:44 +01:00
Sergio Martins
96a3eea108 Silence some clazy warnings which are benign in this context 2020-08-07 21:56:17 +01:00
Sergio Martins
47b20f03f9 Fix -Wclazy-copyable-polymorphic 2020-08-07 21:52:20 +01:00
Sergio Martins
bdcd8c1e20 Fix -Wclazy-range-loop 2020-08-07 21:50:46 +01:00
Sergio Martins
eaff83251c Fix -Wclazy-fully-qualified-moc-types 2020-08-07 21:47:46 +01:00
Sergio Martins
1cdd1a1b74 Fix static build on Windows
The STATICBUILD macros should:
- Be PUBLIC, so anyone linking against kddw gets them
- Not needed to be included in all targets, just link other targets and
they'll inherit

fixes linker errors
2020-08-07 21:24:43 +01:00
Sergio Martins
21938e4b3f Fix Windows build
The "BUILDING_*" macros are only to be defined on the dll that's
being build, so that the export macros expand to QT_EXPORT

The kddockwidgets target had the BUILDING_MULTISPLITTER macro, so
it included multisplitter.dll's symbols with QT_EXPORT, instead of
import, so couldn't work, resulting in linker errors
2020-08-07 21:12:52 +01:00
Allen Winter
95710d9e5e README.md - add more info links 2020-08-07 12:41:03 -04:00
Allen Winter
8a3252473f buildsystem - support static library build 2020-08-07 12:26:27 -04:00
Allen Winter
c52c8922dc add OBS files 2020-08-07 12:19:27 -04:00
Sergio Martins
80dcd57d91 qml: warn instead of crashing 2020-08-06 23:39:50 +01:00
Sergio Martins
37590b44d7 qml: DragController now compiles with the QtQuick frontend 2020-08-06 23:31:44 +01:00
Sergio Martins
051f8ab3a6 qml: Implement widgetForWindow 2020-08-06 23:17:28 +01:00
Sergio Martins
78dcb0f7f3 qml: Abstract some methods that QQuickItem doesn't have
geometry(), isMinimized(), etc.
2020-08-06 23:10:08 +01:00
Sergio Martins
6bb0d7ab08 Silence debug noise 2020-08-06 18:34:50 +01:00
Sergio Martins
c7afbf0803 qml: make qtTopLevelUnderCursor_impl() receive QWindow
QWindow works for both QtWidgets and QtQuick
2020-08-06 18:30:53 +01:00
Sergio Martins
bbea17b81b Make DockRegistry use QWindow to represent top-levels
Not QWidget/QQuickItem, since QtQuick uses QWindow (QQuickWindow),
not QQuickItem. Unlike QtWidgets, where QWidget can be used for both
purposes.
2020-08-06 18:03:25 +01:00
Sergio Martins
769d34d746 qml: implement childAt
Added a namespace-level parentWidget() helper, so it works for
both widgets and quick
2020-08-06 17:51:49 +01:00
Sergio Martins
64020568d6 Remove unused topLevel() method 2020-08-06 17:51:49 +01:00
Allen Winter
b7df2fb5f5 examples/qtquick - add license+copyright header 2020-08-05 17:52:49 -04:00
Allen Winter
ddc6da5894 add conanfile 2020-08-05 17:34:20 -04:00
Sergio Martins
6502ee5071 DragControl: Remove some dead code paths
Neither DockWidget nor DropArea are ever a top-level
2020-08-04 18:23:55 +01:00
Sergio Martins
22a13c7c9c Fix widgets example
Committed some things I shouldn't have during the qml port
2020-08-04 18:23:22 +01:00
Sergio Martins
a29f80f90b qml: set a transient parent to the floating QQuickWindow
so when it's frameless it get shown when we show the main window
(depending on the window manager)
2020-08-04 16:44:44 +01:00
Sergio Martins
0ccd4b8afa qml: Fix warnings and crash when closing windows 2020-08-04 14:56:12 +01:00
Sergio Martins
48433a05fb qml: Fix stray windows not being deleted 2020-08-04 14:13:42 +01:00
Sergio Martins
c6a455a059 qml: Fix anchoring
There's situations where neither title bar or tab bar are visible
2020-08-04 13:54:45 +01:00
Sergio Martins
3e3df799e6 qml: Deliver the close event 2020-08-04 13:53:31 +01:00
Sergio Martins
912f2de1ee qml: Fix close 2020-08-04 13:16:49 +01:00
Sergio Martins
1ad8a67caf qml: Fix Frame's title bar not being visible
It was being covered by the stack layout
2020-08-04 12:17:26 +01:00
Sergio Martins
a0588cd312 qml: Make floating window follow its QWindow
Means if you resize the window then FloatingWindow resizes too
2020-08-03 20:43:21 +01:00
Sergio Martins
40f0c0f322 qml: Fix guest not filling its DockWidget 2020-08-03 20:31:49 +01:00
Sergio Martins
52626b1874 qml: Add support for the MainWindow
Not really a MainWindow in the sense of toolbars and all.
For qml it's just the drop area, acepting drops
2020-08-03 20:05:36 +01:00
Sergio Martins
1cfceb4d07 MainWindow: Move the drop area to the base class
QtQuick impl will also use it
2020-08-03 19:39:01 +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
Sergio Martins
4fd28f9577 qml: Implement more QtQuick API 2020-08-02 22:10:54 +01:00
Sergio Martins
fd6d9654bc qml: Start running some tests for the QtQuick version too
tst_multisplitter for now.
tst_docks will have to be split into common and widgets
2020-08-02 20:16:07 +01:00