Sergio Martins
4e3f4e3073
More replacing of show() with open()
...
This time on DockWidgetViewInterface
2022-09-10 12:40:54 +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
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
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
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
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
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
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
2eb72114d7
Share View::setObjectName() implementation between qtwidgets/qtquick
2022-06-28 20:12:07 +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
Sergio Martins
3dd455bfb7
Port some code away from View::asQObject()
...
Use View_qt::asObject() instead
2022-06-27 23:37:27 +01:00
Sergio Martins
5389bcc825
Add View_qt as a base class for View_qtwidgets and View_qtquick
...
So it can contain the "asObject()" method, which we're removing
from View.h
2022-06-27 22:53:42 +01:00
Sergio Martins
07524ad00c
Replace Qt::WindowState with KDDockWidget::WindowState
2022-06-26 20:45:28 +01:00
Sergio Martins
c1f6d64ac3
Remove a TODO and add some docs
2022-06-25 19:00:12 +01:00
Sergio Martins
c9fede2aab
Remove the FloatingWindow window state overrides
...
Nothing is inheriting from controller now. Those methods are already
virtual in view, so just remove them from the controller
2022-06-25 17:41:03 +01:00
Sergio Martins
f640d8852b
Fix maximize button not being updated
...
Moved logic into controller
2022-06-25 16:29:41 +01:00
Sergio Martins
8f10d86cad
Fix minimize button not being updated
2022-06-25 16:14:36 +01:00
Sergio Martins
02ef55f9f1
Fix auto-hide button not being updated
...
Moved logic from view into controller.
2022-06-25 13:50:17 +01:00
Sergio Martins
559a195669
Rename layoutWidget to layout
...
As already done with the class names
2022-06-25 11:47:55 +01:00
Sergio Martins
82b3aba854
Remove ViewWrapper*h from public API
2022-06-24 17:20:09 +01:00
Sergio Martins
0a9506cd21
Probably fix Qt namespaced build
2022-06-24 17:00:01 +01:00
Sergio Martins
10c918b93c
Use View instead of ViewWrapper in the api
...
The latter will be an implementation detail soon
2022-06-24 00:10:50 +01:00
Sergio Martins
0aec6dfdb1
Rename more frame variables to group
2022-06-21 17:31:28 +01:00