qtquick: Implement DefaultWidgetFactory_qtquick
Requires implementing some pure-virtuals in the views too
This commit is contained in:
@@ -15,24 +15,25 @@
|
||||
#include "private/indicators/ClassicIndicators_p.h"
|
||||
#include "private/indicators/NullIndicators_p.h"
|
||||
#include "private/Utils_p.h"
|
||||
#include "private/indicators/SegmentedIndicators_p.h"
|
||||
|
||||
#include "controllers/MainWindow.h"
|
||||
#include "controllers/TabBar.h"
|
||||
#include "controllers/Stack.h"
|
||||
#include "controllers/FloatingWindow.h"
|
||||
|
||||
#include "private/indicators/SegmentedIndicators_p.h"
|
||||
|
||||
// #include "qtquick/views/FloatingWindow_qtquick.h"
|
||||
#include "qtquick/views/FloatingWindow_qtquick.h"
|
||||
#include "qtquick/views/DockWidget_qtquick.h"
|
||||
#include "qtquick/views/DropArea_qtquick.h"
|
||||
#include "qtquick/views/Frame_qtquick.h"
|
||||
#include "qtquick/views/View_qtquick.h"
|
||||
#include "qtquick/views/RubberBand_qtquick.h"
|
||||
#include "qtquick/views/Separator_qtquick.h"
|
||||
#include "qtquick/views/TitleBar_qtquick.h"
|
||||
#include "qtquick/views/TabBar_qtquick.h"
|
||||
// #include "qtquick/views/SideBar_qtquick.h"
|
||||
#include "qtquick/views/Stack_qtquick.h"
|
||||
// #include "qtquick/views/MainWindow_qtquick.h"
|
||||
#include "qtquick/views/MainWindow_qtquick.h"
|
||||
#include "qtquick/views/MDILayout_qtquick.h"
|
||||
|
||||
|
||||
@@ -46,48 +47,48 @@ DefaultWidgetFactory_qtquick::~DefaultWidgetFactory_qtquick()
|
||||
{
|
||||
}
|
||||
|
||||
View *DefaultWidgetFactory_qtquick::createMainWindow(Controllers::MainWindow *, View *, Qt::WindowFlags) const
|
||||
View *DefaultWidgetFactory_qtquick::createMainWindow(Controllers::MainWindow *mainWindow,
|
||||
View *parent, Qt::WindowFlags flags) const
|
||||
{
|
||||
Q_UNUSED(mainWindow);
|
||||
Q_UNUSED(parent);
|
||||
Q_UNUSED(flags);
|
||||
|
||||
return {};
|
||||
// return new Views::MainWindow_qtquick(mainWindow, parent ? static_cast<Views::View_qtwidgets<QMainWindow> *>(parent) : nullptr, flags);
|
||||
// return new Views::MainWindow_qtquick(mainWindow, Views::asQQuickItem(parent), flags);
|
||||
}
|
||||
|
||||
View *DefaultWidgetFactory_qtquick::createDockWidget(Controllers::DockWidget *, Qt::WindowFlags) const
|
||||
View *DefaultWidgetFactory_qtquick::createDockWidget(Controllers::DockWidget *dw, Qt::WindowFlags flags) const
|
||||
{
|
||||
return {};
|
||||
// return new Views::DockWidget_qtquick(dw, flags);
|
||||
return new Views::DockWidget_qtquick(dw, flags);
|
||||
}
|
||||
|
||||
View *DefaultWidgetFactory_qtquick::createFrame(Controllers::Frame *, View *,
|
||||
View *DefaultWidgetFactory_qtquick::createFrame(Controllers::Frame *controller, View *parent,
|
||||
FrameOptions) const
|
||||
{
|
||||
// TODOv2: Remove options
|
||||
return {};
|
||||
// return new Views::Frame_qtquick(controller, Views::View_qtwidgets<QWidget>::asQWidget(parent));
|
||||
return new Views::Frame_qtquick(controller, Views::asQQuickItem(parent));
|
||||
}
|
||||
|
||||
View *DefaultWidgetFactory_qtquick::createTitleBar(Controllers::TitleBar *, Controllers::Frame *) const
|
||||
View *DefaultWidgetFactory_qtquick::createTitleBar(Controllers::TitleBar *titleBar,
|
||||
Controllers::Frame *parent) const
|
||||
{
|
||||
return {};
|
||||
// return new Views::TitleBar_qtquick(titleBar, Views::View_qtwidgets<QWidget>::asQWidget(frame));
|
||||
return new Views::TitleBar_qtquick(titleBar, Views::asQQuickItem(parent));
|
||||
}
|
||||
|
||||
View *DefaultWidgetFactory_qtquick::createTitleBar(Controllers::TitleBar *, Controllers::FloatingWindow *) const
|
||||
View *DefaultWidgetFactory_qtquick::createTitleBar(Controllers::TitleBar *titleBar,
|
||||
Controllers::FloatingWindow *fw) const
|
||||
{
|
||||
return {};
|
||||
// return new Views::TitleBar_qtquick(titleBar, Views::View_qtwidgets<QWidget>::asQWidget(fw));
|
||||
return new Views::TitleBar_qtquick(titleBar, Views::asQQuickItem(fw));
|
||||
}
|
||||
|
||||
View *DefaultWidgetFactory_qtquick::createTabBar(Controllers::TabBar *, View *) const
|
||||
View *DefaultWidgetFactory_qtquick::createTabBar(Controllers::TabBar *controller, View *parent) const
|
||||
{
|
||||
return {};
|
||||
// return new Views::TabBar_qtquick(tabBar, Views::View_qtwidgets<QWidget>::asQWidget(parent));
|
||||
return new Views::TabBar_qtquick(controller, Views::asQQuickItem(parent));
|
||||
}
|
||||
|
||||
View *DefaultWidgetFactory_qtquick::createTabWidget(Controllers::Stack *, Controllers::Frame *) const
|
||||
View *DefaultWidgetFactory_qtquick::createTabWidget(Controllers::Stack *controller, Controllers::Frame *parent) const
|
||||
{
|
||||
return {};
|
||||
// return new Views::Stack_qtquick(controller, parent);
|
||||
return new Views::Stack_qtquick(controller, parent);
|
||||
}
|
||||
|
||||
View *DefaultWidgetFactory_qtquick::createSeparator(Controllers::Separator *controller, View *parent) const
|
||||
@@ -95,12 +96,13 @@ View *DefaultWidgetFactory_qtquick::createSeparator(Controllers::Separator *cont
|
||||
return new Views::Separator_qtquick(controller, parent ? static_cast<Views::View_qtquick *>(parent) : nullptr);
|
||||
}
|
||||
|
||||
View *DefaultWidgetFactory_qtquick::createFloatingWindow(Controllers::FloatingWindow *,
|
||||
Controllers::MainWindow *, Qt::WindowFlags) const
|
||||
View *DefaultWidgetFactory_qtquick::createFloatingWindow(Controllers::FloatingWindow *controller,
|
||||
Controllers::MainWindow *parent, Qt::WindowFlags flags) const
|
||||
{
|
||||
return {};
|
||||
// auto mainwindow = qobject_cast<QMainWindow *>(Views::View_qtwidgets<QWidget>::asQWidget(parent));
|
||||
// return new Views::FloatingWindow_qtquick(controller, mainwindow, windowFlags);
|
||||
|
||||
auto mainwindow = parent ? qobject_cast<Views::MainWindow_qtquick *>(Views::asQQuickItem(parent->view()))
|
||||
: nullptr;
|
||||
return new Views::FloatingWindow_qtquick(controller, mainwindow, flags);
|
||||
}
|
||||
|
||||
DropIndicatorOverlayInterface *DefaultWidgetFactory_qtquick::createDropIndicatorOverlay(Controllers::DropArea *dropArea) const
|
||||
@@ -122,10 +124,9 @@ DropIndicatorOverlayInterface *DefaultWidgetFactory_qtquick::createDropIndicator
|
||||
return new ClassicIndicators(dropArea);
|
||||
}
|
||||
|
||||
View *DefaultWidgetFactory_qtquick::createRubberBand(View *) const
|
||||
View *DefaultWidgetFactory_qtquick::createRubberBand(View *parent) const
|
||||
{
|
||||
return {};
|
||||
// return new QRubberBand(QRubberBand::Rectangle, parent ? qobject_cast<QWidget *>(parent->asQObject()) : nullptr);
|
||||
return new Views::RubberBand_qtquick(Views::asQQuickItem(parent));
|
||||
}
|
||||
|
||||
View *DefaultWidgetFactory_qtquick::createSideBar(Controllers::SideBar *,
|
||||
|
||||
@@ -111,8 +111,9 @@ QuickView::~QuickView() = default;
|
||||
}
|
||||
|
||||
|
||||
FloatingWindow_qtquick::FloatingWindow_qtquick(Controllers::FloatingWindow *controller, Views::MainWindow_qtquick *parent)
|
||||
: Views::View_qtquick(controller, Type::FloatingWindow, parent)
|
||||
FloatingWindow_qtquick::FloatingWindow_qtquick(Controllers::FloatingWindow *controller,
|
||||
Views::MainWindow_qtquick *parent, Qt::WindowFlags flags)
|
||||
: Views::View_qtquick(controller, Type::FloatingWindow, parent, flags)
|
||||
, m_quickWindow(new QuickView(plat()->qmlEngine(), this))
|
||||
, m_controller(controller)
|
||||
{
|
||||
|
||||
@@ -30,7 +30,8 @@ class DOCKS_EXPORT FloatingWindow_qtquick : public Views::View_qtquick
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit FloatingWindow_qtquick(Controllers::FloatingWindow *controller, Views::MainWindow_qtquick *parent = nullptr);
|
||||
explicit FloatingWindow_qtquick(Controllers::FloatingWindow *controller,
|
||||
Views::MainWindow_qtquick *parent = nullptr, Qt::WindowFlags flags = {});
|
||||
~FloatingWindow_qtquick();
|
||||
|
||||
QSize minSize() const override;
|
||||
|
||||
@@ -217,3 +217,9 @@ Stack_qtquick *Frame_qtquick::stackView() const
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
QRect Frame_qtquick::dragRect() const
|
||||
{
|
||||
qFatal("Not implemented");
|
||||
return {};
|
||||
}
|
||||
|
||||
@@ -51,6 +51,8 @@ public:
|
||||
/// @brief Returns the QQuickItem which represents this frame on the screen
|
||||
QQuickItem *visualItem() const;
|
||||
|
||||
QRect dragRect() const override;
|
||||
|
||||
protected:
|
||||
void removeWidget_impl(Controllers::DockWidget *) override;
|
||||
int indexOfDockWidget_impl(const Controllers::DockWidget *) override;
|
||||
|
||||
@@ -81,3 +81,17 @@ void MainWindow_qtquick::onMultiSplitterGeometryUpdated()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
QRect MainWindow_qtquick::centralAreaGeometry() const
|
||||
{
|
||||
qFatal("Not implemented");
|
||||
}
|
||||
|
||||
void MainWindow_qtquick::setContentsMargins(int left, int top, int right, int bottom)
|
||||
{
|
||||
Q_UNUSED(left);
|
||||
Q_UNUSED(right);
|
||||
Q_UNUSED(top);
|
||||
Q_UNUSED(bottom);
|
||||
qFatal("Not implemented");
|
||||
}
|
||||
|
||||
@@ -47,6 +47,8 @@ public:
|
||||
protected:
|
||||
Controllers::SideBar *sideBar(SideBarLocation) const override;
|
||||
QMargins centerWidgetMargins() const override;
|
||||
QRect centralAreaGeometry() const override;
|
||||
void setContentsMargins(int left, int top, int right, int bottom) override;
|
||||
|
||||
private:
|
||||
void onMultiSplitterGeometryUpdated();
|
||||
|
||||
@@ -44,6 +44,11 @@ Stack_qtquick::Stack_qtquick(Controllers::Stack *controller,
|
||||
// return m_tabBar;
|
||||
// }
|
||||
|
||||
void Stack_qtquick::setDocumentMode(bool)
|
||||
{
|
||||
qDebug() << "Not implemented";
|
||||
}
|
||||
|
||||
int Stack_qtquick::numDockWidgets() const
|
||||
{
|
||||
return m_dockWidgetModel->count();
|
||||
|
||||
@@ -59,6 +59,7 @@ public:
|
||||
int currentIndex() const override;
|
||||
bool insertDockWidget(int index, Controllers::DockWidget *, const QIcon &, const QString &title) override;
|
||||
Q_INVOKABLE void setCurrentDockWidget(int index) override;
|
||||
void setDocumentMode(bool) override;
|
||||
Controllers::DockWidget *currentDockWidget() const;
|
||||
|
||||
/// @brief Returns the tab bar as a QObject for QML.
|
||||
|
||||
@@ -139,3 +139,14 @@ void TabBar_qtquick::moveTabTo(int from, int to)
|
||||
Q_UNUSED(to);
|
||||
// Not implemented yet
|
||||
}
|
||||
|
||||
Controllers::DockWidget *TabBar_qtquick::currentDockWidget() const
|
||||
{
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
bool TabBar_qtquick::tabsAreMovable() const
|
||||
{
|
||||
qFatal("Not implemented");
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -52,6 +52,8 @@ public:
|
||||
QRect rectForTab(int index) const override;
|
||||
|
||||
void moveTabTo(int from, int to) override;
|
||||
Controllers::DockWidget *currentDockWidget() const override;
|
||||
bool tabsAreMovable() const override;
|
||||
|
||||
Q_SIGNALS:
|
||||
void tabBarQmlItemChanged();
|
||||
|
||||
@@ -95,3 +95,8 @@ QQuickItem *TitleBar_qtquick::closeButton() const
|
||||
return m_titleBarQmlItem ? m_titleBarQmlItem->property("closeButton").value<QQuickItem *>()
|
||||
: nullptr;
|
||||
}
|
||||
|
||||
void TitleBar_qtquick::updateMaximizeButton()
|
||||
{
|
||||
qFatal("Not implemented");
|
||||
}
|
||||
|
||||
@@ -43,6 +43,7 @@ protected:
|
||||
QQuickItem *titleBarQmlItem() const;
|
||||
QQuickItem *titleBarMouseArea() const;
|
||||
void setTitleBarQmlItem(QQuickItem *);
|
||||
void updateMaximizeButton() override;
|
||||
|
||||
Q_SIGNALS:
|
||||
void titleBarQmlItemChanged();
|
||||
|
||||
Reference in New Issue
Block a user