Allen Winter
d9ba67dee7
Fix SPDX headers that were broken by clang-format line break
2022-10-25 12:44:25 -04:00
Sergio Martins
fd9858f1aa
Windows: Fix artifacts when moving window to another screen
...
We had a workaround for this Qt bug, but Window::screenChanged
wasn't being emitted, since Window is a temporary object, not the
actual QWindow.
Fix by connecting directly to QWindow
Fixes issue #320
2022-10-21 15:58:47 +01:00
Sergio Martins
4e3f4e3073
More replacing of show() with open()
...
This time on DockWidgetViewInterface
2022-09-10 12:40:54 +01:00
Sergio Martins
cf44110033
Rename DockWidget::show() to DockWidget::open()
...
Since non-current tabs are open but not visible.
2022-09-10 12:26:30 +01:00
Sergio Martins
b5a9c03c21
Don't handle QEvent::Hide anymore
...
Update the buttons in DockWidget::setIsOpen() instead.
This makes the controllers self-contained and not depending
on the "view technology". Other frameworks might not even
have the concept of show/hidden events
2022-09-10 11:37:32 +01:00
Sergio Martins
932a80e73b
Export SideBarButton
...
This allows code to link to subclasses of SideBarButton.
(cherry-picked from commit daebe9e680 )
2022-09-08 00:15:34 +01:00
Sergio Martins
1998800883
Remove unneeded "spontaneous" argument from onShown/hidden
2022-08-21 22:55:45 +01:00
Sergio Martins
763ad1ae6b
Wrapper views now also get a dummy controller
...
Now we can finally make all setVisible/isVisible calls go
through the controller
2022-08-20 19:24:21 +01:00
Sergio Martins
91f0a250e7
Workround Qt bug when reordering tabs
2022-08-15 21:25:11 +01:00
Sergio Martins
63ae96a919
Re-add support for reordering tabs
...
And this time, implement the state in the controllers.
2022-08-15 21:22:53 +01:00
Sergio Martins
65b0b7e140
Remove TabViewInterface::numDockWidgets()
...
The controller knows how many. Frontends no longer need to
implement this
2022-08-15 21:02:44 +01:00
Sergio Martins
a11414ed8d
insertDockWidget() now returns void instead of bool
...
It doesn't fail.
Furthermore, the views shouldn't dictate anything. The controller
is in charge. Views don't get to say a tab failed to be added.
2022-08-15 20:56:21 +01:00
Sergio Martins
376202c3f8
Remove more logic from tabbar view into controller
2022-08-15 14:33:33 +01:00
Sergio Martins
2a37813409
Remove more TabBarViewInterface related to indexes
...
That's in the controller now, shared by all frontends
2022-08-15 14:14:15 +01:00
Sergio Martins
bbef108e32
Override QTabBar::tabInserted insted of QTabWidget::tabInserted
...
Since we're moving logic to tab bar instead of tab widget.
Otherwise calling count() on the tab bar while QTabWidget::tabInserted
is running can give the wrong value. So settle with a single class.
2022-08-15 13:47:03 +01:00
Sergio Martins
7f072366ed
Remove now unneeded TabBar::currentTabChanged(int)
...
It's all in terms of current dock widget now, not indexes.
2022-08-14 18:31:50 +01:00
Sergio Martins
0b5e9bc6c1
Remove unneeded emissions of currentDockWidgetChanged
...
It's now wrapped with a setter, so it's emitted at the right
times always
2022-08-14 17:45:33 +01:00
Sergio Martins
8834f7d75b
TabBar controller now stores the current dock widget
...
It's no longer stored in the view.
This makes it easier for new frontends.
2022-08-14 17:34:01 +01:00
Sergio Martins
30955b5f5b
Remove more pure-virtuals from GroupViewInterface
...
In this case, made them non-pure, as the default impl is enough
for most frontends. Only qtquick does something different
2022-08-13 22:32:49 +01:00
Sergio Martins
7a4c969b86
Removed a lot of unneeded GroupViewInterface methods
...
These are already implemented in TabViewInterface
2022-08-13 22:17:56 +01:00
Sergio Martins
3ffe116a02
Move more methods away from StackViewInterface
...
Let's just have TabBarViewInterface, which is similar
2022-08-13 20:35:09 +01:00
Sergio Martins
fb59e30c59
Move more code away from Stack and into TabBar
2022-08-13 16:04:32 +01:00
Sergio Martins
8955ec8bcb
Remove unused StackViewInterface::currentIndex()
2022-08-13 14:54:59 +01:00
Sergio Martins
1868ad7bd4
Move more code out of Stack and into TabBar
...
The signals are more about the tabs.
2022-08-13 14:50:19 +01:00
Sergio Martins
1abebef40b
Move move code from StackViewInterface.h to TabBarViewInterface.h
...
Phasing out the former, so frontend writers don't have to implement
two duplicate interfaces
2022-08-13 14:11:33 +01:00
Sergio Martins
fb6175c4b3
Move the old ViewWrapper to qtcommon
...
Since it's Qt specific
2022-08-10 19:28:56 +01:00
Sergio Martins
69c7d3fd57
Remove View::maximumSize() as we already have View::maxSizeHint()
...
Having both was due to QWidgets having both. For QtQuick and other
frontends we only want the latter.
2022-08-07 14:49:32 +01:00
Sergio Martins
d8189e3e03
.clang-format: wrap at column 100
2022-08-05 16:49:00 +01:00
Sergio Martins
84ec64fade
unnest CreateViewOptions so we can create dart bindings for it
...
Our binding generator doesn't support nested classes yet
2022-07-26 15:03:21 +01:00
Sergio Martins
36931e7c45
Allow DragController views to have access to its controller
...
For consistency
2022-07-20 13:12:52 +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
Allen Winter
fae03328f6
codespelling fixes
2022-07-13 09:12:36 -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
6ebb680c92
Re-ran clang-format 14 over the source
...
Fixes some differences with clang 13
2022-07-11 11:40:38 +01:00
Sergio Martins
640ef58553
Allow to pass View* to qDebug
2022-07-10 18:36:35 +01:00
Sergio Martins
9a8539fa42
qtquick: Add support for "Always show tabs" option
...
Shows the tab even if the group only has 1 dock widget
2022-07-07 18:05:33 +01:00
Sergio Martins
019692fd2f
Store the "tab auto hide" state in the controller, not the view
...
Added a signal for the QtQuick view too
2022-07-07 13:52:03 +01:00
Sergio Martins
b1605cc58b
Rename Group::tabWidget() to Group::stack()
...
Matches its class name now
2022-07-07 11:37:47 +01:00
Sergio Martins
cd41697ee6
Added Config::startDragDistance()
...
Allows the user to change the drag threshold without having
to inherit from Platform
2022-07-07 11:11:02 +01:00
Sergio Martins
7d21516f6d
Add a m_thisWeakPtr member to Views
...
Allows to promote back to shared pointer
2022-07-02 20:12:33 +01:00
Sergio Martins
5639b5632a
tests: Construct QCoreApplication earlier
...
The global event filter wasn't being set as it didn't have
a qGuiApp at that point
2022-07-02 12:48:16 +01:00
Waqar Ahmed
7fc7fba697
Fix static build
2022-06-30 13:16:20 +05:00
Sergio Martins
9546e55cb0
Trying to fix msvc 2017 build
2022-06-29 14:46:41 +01:00
Sergio Martins
d7f677c8fc
Remove unused ClassicIndicatorsOverlay_qtwidgets file
2022-06-29 13:59:36 +01:00
Sergio Martins
cadd94c233
Fix drop indicator overlay leak
2022-06-29 12:31:16 +01:00
Sergio Martins
cba3f77906
Revert "Remove Window::setProperty/property"
...
This reverts commit ff9a7fba69 .
It's still being used by windows code paths
2022-06-29 09:35:12 +01:00
Sergio Martins
2eb72114d7
Share View::setObjectName() implementation between qtwidgets/qtquick
2022-06-28 20:12:07 +01:00
Sergio Martins
aff9806ab1
Port away from using event filter in DockWidget.cpp
...
Platform now abstract the emittion of window activation/deactivation
2022-06-28 18:36:10 +01:00
Sergio Martins
0cd515679f
Don't handle ParentChange event directly, use the signal instead
...
This removes some duplicated code and decouples from QObject a bit
more
2022-06-28 17:24:03 +01:00
Sergio Martins
83a2620015
Remove View_qtwidgets::asQWidget
2022-06-27 23:54:18 +01:00