Commit Graph

290 Commits

Author SHA1 Message Date
Sergio Martins
6b98322d96 qtquick: Ported rubberband to the new architecture 2022-05-15 14:02:36 +01:00
Sergio Martins
35c7964365 qtquick: More porting of DockWidget_qtquick
Compiles now, but some things are commented out still.
2022-05-15 13:51:32 +01:00
Sergio Martins
cda924ac74 Ported RubberBand from QWidget to View 2022-05-14 10:36:53 +01:00
Sergio Martins
d35afdf81c qtquick: Compile our qrc file too
Updated paths
2022-05-09 15:40:20 +01:00
Sergio Martins
5d8da8aab6 qtquick: Compile and return Separator in the framework factory 2022-05-09 14:41:21 +01:00
Waqar Ahmed
df00c13899 Add code coverage 2022-05-09 16:45:41 +05:00
Sergio Martins
eb42d9e3f0 workaround linking examples 2022-05-09 12:17:15 +01:00
Sergio Martins
8751216f62 qtquick: Added a FrameworkWidgetFactory too
The impl is dummy, but at least Config doesn't return a nullptr
one, meaning we can have more involved tests for QtQuick
2022-05-08 23:12:20 +01:00
Sergio Martins
cfeb59ee8f qtquick: Move m_qmlEngine from Config to Platform_qtquick
As it's QtQuick specific it should be in the qtquick frontend folder.
2022-05-08 20:16:23 +01:00
Sergio Martins
bd675c09a1 Remove unused and old Widget_qwidget/Widget_quick 2022-05-08 14:00:00 +01:00
Sergio Martins
bacaa0127a qtquick: Move remaining contents from old/ into views/
They are not ported yet, bet let's do things in batches so we have less
context switches.
2022-05-08 13:54:56 +01:00
Sergio Martins
76b1a394f2 qtquick: Ported the old DockWidgetQuick to the new architecture
Mostly anyway. Facing several blockers that need to be ported first,
for example DockWidget::setWidget() is still receiving QWidget
2022-05-08 13:27:37 +01:00
Sergio Martins
984bcd5f06 qtquick: Ported Frame view to the new architecture 2022-05-08 12:20:33 +01:00
Sergio Martins
16cca5a719 qtquick: Move LayoutSaverInstantiator to new location 2022-05-06 18:48:33 +01:00
Sergio Martins
9d5c7bfc53 qtquick: Ported TabWidget to the new architecture 2022-05-06 18:04:25 +01:00
Sergio Martins
d6f56169e1 qtquick: Ported TabBar to the new architecture 2022-05-03 22:01:47 +01:00
Sergio Martins
c0d9e3247b qtquick: Ported TitleBar to the new architecture 2022-05-03 20:24:20 +01:00
Sergio Martins
b6d87d10c4 Add a TestHelpers_ file for each platform
So we don't have too much ifdefed stuff that's only for tests in
the main files.
2022-04-30 10:31:31 +01:00
Sergio Martins
9d52f40632 Make the qtquick files compile
They weren't being built.
Build-system is simplified for now.
2022-04-29 19:00:40 +01:00
Sergio Martins
3bb0c6a8d2 Move MDIArea to qtwidgets/ as it was never ported to QtQuick
Can be ported if needed
2022-04-25 20:16:25 +01:00
Sergio Martins
0f61ef63a2 Split DropArea and MDILayout into View/Controller 2022-04-25 18:50:41 +01:00
Sergio Martins
dc6d77e266 Fold MultiSplitter into DropArea
The separation was never very useful. There's was always only
one derived class, the DropArea. Merge the two.
2022-04-23 15:22:38 +01:00
Sergio Martins
4f5ffa2370 Add DropArea_qtwidgets stub 2022-04-23 14:42:03 +01:00
Sergio Martins
daa6afd14c Move DropArea into controllers/
In preparation to split it into View/Controller.
This is just the move, no code changed yet.
Next will be the namespace change.
2022-04-23 11:46:11 +01:00
Sergio Martins
28754ec260 Fold DropAreaWithCentralFrame into DropArea
This separation was never useful
2022-04-23 00:17:20 +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
ec0e841bb8 Introduce qtwidgets/FrameworkWidgetFactory_qtwidgets
It doesn't scale to support all platforms with ifdefs, instead, use one
file per platform
2022-04-10 21:15:10 +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
5a8f176860 Add Window
A non-Qt abstraction around QWindow
2022-04-08 11:45:15 +01:00
Sergio Martins
95671f9d9a Add Platform_qt, a baseclass for both Qt frontends
So we can share some code between QtQuick and QtWidgets
2022-04-07 23:48:40 +01:00
Waqar Ahmed
b573d3f0f7 Introduce ViewGuard: A weak ptr to View 2022-04-05 17:05:17 +05:00
Sergio Martins
4f0f82f6b4 Add ViewWrapper_qtquick stub 2022-04-04 21:52:41 +01:00
Sergio Martins
b76e45064f Add View_qtquick stub 2022-04-04 19:06:17 +01:00
Waqar Ahmed
3c424474ee Restore layout using nlohmann directly 2022-04-04 21:51:16 +05:00
Sergio Martins
2a379d8735 Add Platform_qtquick
CMake hacked for now. Not sure if we should allow building
both QtWidgets and QtQuick frontends at the same time
2022-04-04 16:30:57 +01:00
Sergio Martins
a36f85aae3 Add Platform and Platform_qtwidgets
So we can start removing QtWidgets vs QtQuick ifdefs.
Each "platform" will implement the differences
2022-04-04 16:21:35 +01:00
Sergio Martins
ac5cb637e7 Move DebugWindow to qtwidgets
As it's QtWidgets specific
2022-04-04 14:51:15 +01: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
3cdd33f42f Add Frame view interface 2022-04-02 23:57:48 +01:00
Waqar Ahmed
57dc7396ee Allow using system nlohmann 2022-04-01 23:47:27 +05:00
Sergio Martins
ba08d0c131 Fix clang build due to -Wweak-vtables
That's to be fixed in KDBindings first
2022-03-25 11:30:04 +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
90a9159748 Introduce ViewWrapper - a non-owning view
In many cases we need to access widgets that weren't created by
KDDW, in that case we have no View. Since all our APIs want to
deal in View and not in QWidget, we need a way to wrap stuff like
QWidget::window() and windowHandle()

All methods are unimplemented. Will only implement those that
are required/used.
2022-03-25 10:03:46 +00:00
Sergio Martins
e0e6d1fd3e Merge both Logging_p.cpp into the same one
the multisplitter abstraction is no longer the way we want to
abstract the framework
2022-03-24 16:59:50 +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
bef7aab7f6 Move kdbindings to src/3rdparty 2022-02-12 14:45:12 +00:00
Sergio Martins
d4bcc96f2f Add KDBindings to 3rdparty
To replace Qt in the backend.
2022-02-12 14:45:12 +00:00
Sergio Martins
b5003f8fb8 Make sure the layouting builds standalone
Goal will be for it to be C++ only, eventually.
backend_temp_includes/ is to be removed, but required to build currently.
2022-02-12 14:45:12 +00:00