Sergio Martins
80beeb7ffb
tests: Remove last 2 usages of asQWidget from tst_qtwidgets.cpp
...
That method will be removed from View soon
2022-04-19 19:17:48 +01:00
Sergio Martins
d2b5bedfa1
tests: Remove another usage of deprecated asQWidget()
2022-04-19 19:14:58 +01:00
Sergio Martins
d5cec9f5de
tests: Move QtWidget specific tests to tst_qtwidgets.cpp
...
Let's have less ifdefs
2022-04-19 19:07:57 +01:00
Sergio Martins
05deea3cd8
tests: Move some ifdefed code to their respective platforms
2022-04-19 17:44:36 +01:00
Sergio Martins
7632278ba8
Remove asQWidget() instances from tst_multisplitter
...
This test is QWidget only, but we want to remove View::asQWidget(),
so just cast directly here.
2022-04-19 16:55:33 +01:00
Sergio Martins
8e4e998e74
tests: port away from QApplication::topLevelAt()
2022-04-14 23:44:39 +01:00
Sergio Martins
995882d2d1
tests: More porting away from asQWidget()
2022-04-14 19:06:41 +01:00
Sergio Martins
c8b896bdd6
tests: Remove casts to QTabBar
2022-04-14 18:31:41 +01:00
Sergio Martins
201e631a0b
tests: Remove some QPointer usage
...
Which in turn also removes some asQWidget() usage
2022-04-14 18:22:32 +01:00
Sergio Martins
a3d1990857
tests: Port more tests away from asQWidget()
2022-04-14 18:05:23 +01:00
Sergio Martins
924b32b3c5
tests: Port some QWindow based utils to Window::Ptr
...
So it doesn't depend on Qt
2022-04-13 23:49:29 +01:00
Sergio Martins
664798ee6e
tests: Remove some asQWidget() calls
2022-04-13 22:28:04 +01:00
Sergio Martins
90bd78846a
tests: Port away from a few Qt specific waitForEvent
...
Removes a bunch of asQWidget() from the tests
2022-04-11 15:14:51 +01:00
Sergio Martins
31db3d9562
Port away from QTest::qWaitForWindowActive, it's Qt specific
...
Simpliy moved it to Platform_qt
2022-04-11 11:37:31 +01:00
Sergio Martins
037140b980
Add KDDockWidgets::initPlatform()
...
Instead of using the static variable, which is initialized before
having QApplication.
Will allow us to remove the QTimer from Platform init
2022-04-11 00:55:28 +01:00
Sergio Martins
613a18f60c
Delete operator== for ViewWrapper
...
Fixes a bug in the tests too
2022-04-10 20:47:33 +01:00
Sergio Martins
d6fd54cec4
Por all usages of QWindop/windowHandle to KDDockWidgets::Window
...
Removes a lot of asQWidget() code and is also prepared for non-Qt
views.
2022-04-09 19:21:56 +01:00
Sergio Martins
4944ad5882
Add Platform::qobjectAsView()
...
to be removed once we port away from Qt, but needed for now to
support QtQuick
2022-04-07 23:10:01 +01:00
Sergio Martins
59f9824cc2
Fix typo during porting of test
2022-04-07 22:48:09 +01:00
Sergio Martins
71f0b644f2
Port away from including TitleBar_qtwidgets in tests
2022-04-07 22:43:56 +01:00
Sergio Martins
b60b54327b
Port away from Item::guestAsQObject()
...
Use Item::guestView() instead.
2022-04-07 22:27:22 +01:00
Sergio Martins
0f2da43737
Rename guestWidget to guestView
...
As we deal in View now
2022-04-07 20:12:47 +01:00
Sergio Martins
558bd42447
tests: Remove more QWidget dependencies
2022-04-07 00:49:36 +01:00
Sergio Martins
7107bfe3e6
Remove _qtwidget include from utils.h
2022-04-07 00:40:25 +01:00
Sergio Martins
ad3febd87e
Add copyright headers to tst_viewguard
2022-04-05 21:29:35 +01:00
Waqar Ahmed
607ec01feb
Extend tst_viewguard to test signal trigger after destruction
2022-04-06 01:13:50 +05:00
Sergio Martins
1f638d2c7a
tests|qtquick|Windows: Stabilize a test
...
The warning is benign and unrelated to anything kddw is doing
2022-04-05 17:26:38 +01:00
Waqar Ahmed
b573d3f0f7
Introduce ViewGuard: A weak ptr to View
2022-04-05 17:05:17 +05:00
Sergio Martins
e593233b8f
Renamed views_qtwidgets/ into qtwidgets/views/
...
As there will be some files that are specific to QtWidgets and
but aren't views
2022-04-03 23:51:02 +01:00
Sergio Martins
84fb080d13
Remove more QWidget dependencies
2022-04-03 23:40:01 +01:00
Sergio Martins
81e5d14e4f
Cleanup DropArea and base classes re receiving QWidget
...
They receive View now
2022-04-03 23:19:53 +01:00
Sergio Martins
d5700d94e6
MainWindow controller now receives View parent instead of QWidget
2022-04-03 21:23:03 +01:00
Sergio Martins
dcdd9333d4
Remove a bunch of asQWidget() calls
2022-04-02 15:34:38 +01:00
Sergio Martins
b6bc3810bd
tests: Remove unneeded deletion of top-level windows
...
They are deleted automatically nowadays
2022-03-30 19:36:17 +01:00
Sergio Martins
15cb93ed43
Port away from Controller::window() returning a QWidget
...
It now returns a ViewWrapper, which is agnostic to QtWidgets
2022-03-30 19:30:18 +01:00
Sergio Martins
15601fc3c9
Split MainWindow into view/controller
2022-03-30 11:51:31 +01:00
Sergio Martins
f2957e35d5
Moved MainWindow into Controllers namespace
...
All renamings and movings are done, next step is to make the controller
a proper controller, and same for the view.
2022-03-25 11:30:40 +00:00
Sergio Martins
9fba1e9799
Rename Controller::DockWidgetBase to Controller::DockWidget
...
As done for other controllers
2022-03-25 10:53:02 +00:00
Sergio Martins
8656108e81
Renamed MainWindowBase to MainWindow
...
As done for other controllers
2022-03-25 10:47:20 +00:00
Sergio Martins
63b5109113
Rename Views::MainWindow to Views::MainWindow_qtwidgets
...
As done for other views
2022-03-25 10:41:46 +00:00
Sergio Martins
264b08a731
Move MainWindow view into Views namespace
2022-03-25 10:40:16 +00:00
Sergio Martins
0c686c1339
Renamed MainWindowBase.h to MainWindow.h
...
As done for other controllers
2022-03-25 10:30:07 +00:00
Sergio Martins
27007184aa
Rename MainWindow.h to MainWindow_qtwidgets.h
...
Just like the other views.
2022-03-25 10:27:25 +00:00
Sergio Martins
7e2f448ae1
Moved MainWindowBase/MainWindow into controllers/view folder
...
This is just the move, not ported yet
2022-03-25 10:21:07 +00:00
Sergio Martins
c6d95c42a8
Split most widgets into a Controller and a View
...
Controllers don't have any GUI and don't depend on the frontend
technology.
Views are implemented in a specific GUI tech (QtWidgets, QtQuick, etc).
For now only QtWidgets work. There's still a lot to decouple.
This will make it easier to introduce non-Qt backends.
2022-03-24 16:05:37 +00:00
Sergio Martins
61cca1e5ec
Forward QCloseEvent to the MDI widgets too
...
Fixes case where docked MDI widgets were not able to block a close
2022-03-09 16:11:55 +00:00
Sergio Martins
7db9938b85
Fix MainWindow not propagating close events to docked widgets
...
Nested FloatingWindows already supported it, so make it consistent.
Personal take: In a non-docking world, users can override their
main window close event and prevent a close, to save a document
or such. However, in a docking world, the main window developer
won't know which widgets are docked, so forwarding needs to happen,
as some might have documents to save.
2022-03-09 15:47:02 +00:00
Sergio Martins
524dff9105
Don't try to restore to previous position if there isn't any
2022-03-07 16:36:38 +00:00
Sergio Martins
0099a19a82
Make redocking floating windows with tabs possible
...
TitleBar::isFloating() was returning false, while it should
have returned true.
Fixed by making isFloating() simpler and dumb. isFloating() should
only say if it belongs to a floating window or not. It shouldn't
contain any logic about whether button should be visible or not.
There's already logic elsewhere that will hide the float button
in case there's nesting.
Fixes issue #96 and #44
2022-03-07 15:56:15 +00:00
Sergio Martins
86419fd979
MDI: Fixed closing dock widget in MDI would close main window
...
We only close the window when the window is a FloatingWindow and
it's the last frame
2022-03-03 17:52:13 +00:00