Commit Graph

1069 Commits

Author SHA1 Message Date
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