Commit Graph

4483 Commits

Author SHA1 Message Date
Sergio Martins
36931e7c45 Allow DragController views to have access to its controller
For consistency
2022-07-20 13:12:52 +01:00
Sergio Martins
013e390428 Don't create unneeded controllers
ViewWrappers don't actually have a controller
2022-07-20 12:39:34 +01:00
Sergio Martins
91821901e3 Override Group::setParentView() instead of listening to QEvent::ParentChanged
The latter is a Qt'ism
2022-07-20 10:35:27 +01:00
Sergio Martins
6e3524f9b2 Fix another two cases of View::setParent() being called directly 2022-07-20 10:16:57 +01:00
Sergio Martins
26acf4dab4 Add Controller::setParentView()
Controllers need to know when the view changes parent. Until know
they listen to event filter's QEvent::ParentChange, which isn't portable
to non-Qt platforms. Instead, always go through the controller.
Then each controller can override setParentView(), which is virtual,
to intercept parent changes without any Qt specific events.

In a followup will inherit from setParentView() in a few controllers
2022-07-19 18:54:45 +01:00
Sergio Martins
d99b842ae1 Always instantiate a controller even if nullptr is passed
During the multisplitter tests we create dummy views without
an associated controller. Let's create the controller anyway, as
more logic is moving into them, even if just for tests.
2022-07-19 18:53:38 +01:00
Sergio Martins
84f0c45cbd qtquick: Add tabs to the customtabbar example
So the user doesn't need to add tabs manually to see them
2022-07-18 10:46:54 +01:00
Sergio Martins
ee59ad5e4b qtquick: Port customtabbar example to TabBarBase.qml
It's now fully functional and styled.
2022-07-18 10:39:53 +01:00
Sergio Martins
82ad2242dd qtquick: Don't assume in the C++ that the tab bar has a list view
Getting the tab index by QPoint is now done in QML, so it can
be overridden by the user.
2022-07-18 10:21:05 +01:00
Sergio Martins
dd1363de6c qtquick: Minor refactoring of getTabAtIndex()
Moved the listview code into a separate function, so it
can be reused soon.
2022-07-18 09:20:32 +01:00
Sergio Martins
92d4922077 qtquick: tabAt(index) now supports non-QtQuickControls TabBar
The C++ had hardcoded looking for the list view. User can now
override and write their own function to get to their custom
tabbar.
2022-07-17 23:53:40 +01:00
Sergio Martins
b8acc8614c qtquick: Split TabBar.qml into two
In general, the kddw logic that shouldn't be touched should go to
TabBarBase.qml while TabBar.qml has customizable bits.

For example, somone might not want to use the tab bar from
QtQuickControls but still inherit some logic from TabBarBase.qml
2022-07-17 22:24:51 +01:00
Sergio Martins
48bac96c71 qtquick: Add example of custom tabBar
Will do some styling in a follow up
2022-07-17 20:11:18 +01:00
Sergio Martins
9b4ac4738a qtquick: Use a Loader to load the TabBar
It now loads the qml file specified in the ViewFactory.
Which by default is the TabBar.qml we ship, but could be something
else.
2022-07-17 20:11:09 +01:00
Sergio Martins
8a2eac8bcb qtquick: Fix "current tab index changed" not being emitted
suppose tab number 5 is current and you remove tab 0. The current
dock widget didn't change but its index is now 4.
2022-07-17 20:11:09 +01:00
Sergio Martins
de40629094 Remove duplicate signal "currentDockWidgetChanged"
Because they were not equivalent, one was emitted in situations
where the other wasn't. Use a single signal to avoid that.
2022-07-17 19:30:28 +01:00
Sergio Martins
3cfc4c484f tests: test that Group::currentIndex is correct 2022-07-17 18:52:18 +01:00
Sergio Martins
a900f73f7b qtquick: Factor out TabBar usage into TabBar.qml
So the user can customize it soon.
2022-07-17 14:27:19 +01:00
Allen Winter
18253c467c Merge branch 'master' into 2.0 2022-07-14 15:30:38 -04:00
Allen Winter
71c221981e Merge branch '1.6' 2022-07-14 15:30:24 -04:00
Allen Winter
579cd3a201 python/examples[-qt6] - minor pylint fixes 2022-07-14 15:29:51 -04:00
Allen Winter
fae03328f6 codespelling fixes 2022-07-13 09:12:36 -04:00
Allen Winter
a113a428e7 README.md, docs_devel - markdown linting 2022-07-13 09:08:50 -04:00
Allen Winter
d4e020eb4a reuse compliance 2022-07-13 08:50:25 -04:00
Allen Winter
53c65c6129 Merge branch 'master' into 2.0 2022-07-13 08:42:44 -04:00
Allen Winter
b60e3ef4c9 Merge branch '1.6' 2022-07-13 08:41:26 -04:00
Allen Winter
3764feaf89 Minimum Qt6 supported version 6.3.0 2022-07-13 08:40:59 -04:00
Allen Winter
f1959e5e16 Revert "CMakeLists.txt - set QT_MAJOR_VERSION for ECM"
This reverts commit 084947612b.
2022-07-13 08:37:38 -04:00
Allen Winter
084947612b CMakeLists.txt - set QT_MAJOR_VERSION for ECM 2022-07-13 06:19:28 -04:00
Sergio Martins
7f71efd5f8 Fix build on older gcc
Error was:
    undefined reference to `KDDockWidgets::Views::View_qtwidgets<QTabBar>::childViewsFor(QWidget const*)'
    (Repeated for QLineEdit and others)
2022-07-13 07:19:37 +01:00
Sergio Martins
fc04dc77c4 Install EventFilterInterface.h too
DockWidgetRegistry.h depends on it. Copy it to private/ instead, don't want people
do use it directly

Fixes issue #302
2022-07-13 07:10:45 +01:00
Sergio Martins
c960673de4 Fix build of standalone applications
add_definitions only had an effect when build kddw itself, not
when applications were using it. Use target_compile_definitions
instead.
2022-07-13 06:59:18 +01:00
Sergio Martins
7d08925ea2 Add missing license to View_qt.cpp 2022-07-12 23:02:23 +01:00
Sergio Martins
688139cd38 Merge branch 'master' into 2.0 2022-07-12 22:48:09 +01:00
Allen Winter
ab40c02b56 Merge branch '1.6' 2022-07-12 16:03:53 -04:00
Allen Winter
710f71e7f0 CMakeLists.txt - fix LIB_NAME for ECMGeneratePriFile for Qt6 2022-07-12 16:03:17 -04:00
Allen Winter
02847c74bd Merge branch '1.6' 2022-07-12 12:54:25 -04:00
Allen Winter
4e6b49f876 CMakeLists.txt - ECMGeneratePriFiles supports Qt6 now 2022-07-12 12:53:50 -04:00
Allen Winter
d12def7baa Merge branch '1.6' 2022-07-12 12:11:04 -04:00
Allen Winter
d28dc745bc buildsystem - InstallLocation.cmake -> KDInstallLocation.cmake 2022-07-12 12:09:55 -04:00
Allen Winter
ad8e14ceff .reuse/dep5 - full project reuse licensing 2022-07-12 12:09:39 -04:00
Allen Winter
f9debe5f09 .pre-commit-config.yaml - add reuse lint checking 2022-07-12 12:08:45 -04:00
Allen Winter
ed52e6a955 Merge branch '1.6' 2022-07-12 11:13:35 -04:00
Allen Winter
b52b1335a6 Markdownlint the project 2022-07-12 11:12:33 -04:00
Sergio Martins
eaa474e76f Merge branch '1.6' 2022-07-12 15:31:36 +01:00
Sergio Martins
fedce40883 Workaround for EGLFS not supporting per window mouse cursor shape
When hovering over the floating window edges our mouse cursor
changes to resize shape, but when leaving and entering the main window
the mouse cursor wasn't unset.

Workaround by using a global event filter and detecting the leave.

Not using QEvent::Leave as we still allow for some margin outside
the floating window to count as a resize cursor
2022-07-12 15:29:43 +01:00
Sergio Martins
5894fd54f5 WidgetResizeHandler: Remove no-op code
We already bail out if o != mTarget a few lines above
2022-07-12 14:09:16 +01:00
Sergio Martins
d788cde263 minor: Improve readability
Mouse cursor setting is directly related to it being global or local
event filter.
2022-07-12 12:50:31 +01:00
Sergio Martins
1051e859f4 minor: Separate "toplevelness" with filter being local/global
It's too separate concepts
2022-07-12 12:22:39 +01:00
Sergio Martins
2fa9c06f9a minor: Pass a dedicated enum instead of bool to WidgetResizeHandler ctor
bool is opaque and needs a comment, the enum is expressive just by itself.
2022-07-12 11:49:58 +01:00