Allow DragController views to have access to its controller
For consistency
This commit is contained in:
@@ -43,6 +43,7 @@ enum class Type {
|
|||||||
DropArea = 4096,
|
DropArea = 4096,
|
||||||
MDILayout = 8192,
|
MDILayout = 8192,
|
||||||
RubberBand = 0x4000,
|
RubberBand = 0x4000,
|
||||||
|
DropAreaIndicatorOverlay = 0x8000,
|
||||||
|
|
||||||
LAST = RubberBand // Keep last
|
LAST = RubberBand // Keep last
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ public:
|
|||||||
/// @brief Create an empty view
|
/// @brief Create an empty view
|
||||||
/// For Qt this would just returns a empty QWidget or QQuickItem
|
/// For Qt this would just returns a empty QWidget or QQuickItem
|
||||||
/// other frontends can return something as basic.
|
/// other frontends can return something as basic.
|
||||||
virtual View *createView(View *parent = nullptr) const = 0;
|
virtual View *createView(Controller *, View *parent = nullptr) const = 0;
|
||||||
|
|
||||||
/// @brief Returns whether this platform is QtWidgets
|
/// @brief Returns whether this platform is QtWidgets
|
||||||
bool isQtWidgets() const;
|
bool isQtWidgets() const;
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ using namespace KDDockWidgets;
|
|||||||
using namespace KDDockWidgets::Controllers;
|
using namespace KDDockWidgets::Controllers;
|
||||||
|
|
||||||
DropIndicatorOverlay::DropIndicatorOverlay(Controllers::DropArea *dropArea)
|
DropIndicatorOverlay::DropIndicatorOverlay(Controllers::DropArea *dropArea)
|
||||||
: Controller(Type::None, Platform::instance()->createView(dropArea->view()))
|
: Controller(Type::DropAreaIndicatorOverlay, Platform::instance()->createView(this, dropArea->view()))
|
||||||
, m_dropArea(dropArea)
|
, m_dropArea(dropArea)
|
||||||
{
|
{
|
||||||
view()->setVisible(false);
|
view()->setVisible(false);
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ QSize Platform_dummy::screenSizeFor(View *) const
|
|||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
View *Platform_dummy::createView(View *) const
|
View *Platform_dummy::createView(Controller *, View *) const
|
||||||
{
|
{
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ public:
|
|||||||
int screenNumberFor(View *) const override;
|
int screenNumberFor(View *) const override;
|
||||||
QSize screenSizeFor(View *) const override;
|
QSize screenSizeFor(View *) const override;
|
||||||
|
|
||||||
View *createView(View *parent = nullptr) const override;
|
View *createView(Controller *controller, View *parent = nullptr) const override;
|
||||||
bool inDisallowedDragView(QPoint globalPos) const override;
|
bool inDisallowedDragView(QPoint globalPos) const override;
|
||||||
bool usesFallbackMouseGrabber() const override;
|
bool usesFallbackMouseGrabber() const override;
|
||||||
void ungrabMouse() override;
|
void ungrabMouse() override;
|
||||||
|
|||||||
@@ -181,9 +181,9 @@ ViewFactory_qtquick *Platform_qtquick::viewFactory() const
|
|||||||
return static_cast<ViewFactory_qtquick *>(Config::self().viewFactory());
|
return static_cast<ViewFactory_qtquick *>(Config::self().viewFactory());
|
||||||
}
|
}
|
||||||
|
|
||||||
View *Platform_qtquick::createView(View *parent) const
|
View *Platform_qtquick::createView(Controller *controller, View *parent) const
|
||||||
{
|
{
|
||||||
return new Views::View_qtquick(nullptr, Type::None, Views::asQQuickItem(parent));
|
return new Views::View_qtquick(controller, Type::None, Views::asQQuickItem(parent));
|
||||||
}
|
}
|
||||||
|
|
||||||
/** static */
|
/** static */
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ public:
|
|||||||
QSize screenSizeFor(View *) const override;
|
QSize screenSizeFor(View *) const override;
|
||||||
void setQmlEngine(QQmlEngine *);
|
void setQmlEngine(QQmlEngine *);
|
||||||
QQmlEngine *qmlEngine() const;
|
QQmlEngine *qmlEngine() const;
|
||||||
View *createView(View *parent = nullptr) const override;
|
View *createView(Controller *controller, View *parent = nullptr) const override;
|
||||||
bool usesFallbackMouseGrabber() const override;
|
bool usesFallbackMouseGrabber() const override;
|
||||||
bool inDisallowedDragView(QPoint globalPos) const override;
|
bool inDisallowedDragView(QPoint globalPos) const override;
|
||||||
void ungrabMouse() override;
|
void ungrabMouse() override;
|
||||||
|
|||||||
@@ -95,6 +95,7 @@ static Controller *controllerForItem(QQuickItem *item)
|
|||||||
case Type::RubberBand:
|
case Type::RubberBand:
|
||||||
case Type::LayoutItem:
|
case Type::LayoutItem:
|
||||||
case Type::ViewWrapper:
|
case Type::ViewWrapper:
|
||||||
|
case Type::DropAreaIndicatorOverlay:
|
||||||
case Type::None:
|
case Type::None:
|
||||||
// skip internal types
|
// skip internal types
|
||||||
continue;
|
continue;
|
||||||
@@ -285,6 +286,7 @@ bool ViewWrapper_qtquick::is(Type t) const
|
|||||||
return false; // Not support by qtquick
|
return false; // Not support by qtquick
|
||||||
case Type::LayoutItem:
|
case Type::LayoutItem:
|
||||||
case Type::None:
|
case Type::None:
|
||||||
|
case Type::DropAreaIndicatorOverlay:
|
||||||
qWarning() << Q_FUNC_INFO << "These are framework internals that are not wrapped";
|
qWarning() << Q_FUNC_INFO << "These are framework internals that are not wrapped";
|
||||||
return false;
|
return false;
|
||||||
case Type::ViewWrapper:
|
case Type::ViewWrapper:
|
||||||
|
|||||||
@@ -167,9 +167,9 @@ int Platform_qtwidgets::startDragDistance_impl() const
|
|||||||
return QApplication::startDragDistance();
|
return QApplication::startDragDistance();
|
||||||
}
|
}
|
||||||
|
|
||||||
View *Platform_qtwidgets::createView(View *parent) const
|
View *Platform_qtwidgets::createView(Controller *controller, View *parent) const
|
||||||
{
|
{
|
||||||
return new Views::View_qtwidgets<QWidget>(nullptr, Type::None, Views::View_qt::asQWidget(parent));
|
return new Views::View_qtwidgets<QWidget>(controller, Type::None, Views::View_qt::asQWidget(parent));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Platform_qtwidgets::usesFallbackMouseGrabber() const
|
bool Platform_qtwidgets::usesFallbackMouseGrabber() const
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ public:
|
|||||||
QSize screenSizeFor(View *) const override;
|
QSize screenSizeFor(View *) const override;
|
||||||
|
|
||||||
int startDragDistance_impl() const override;
|
int startDragDistance_impl() const override;
|
||||||
View *createView(View *parent = nullptr) const override;
|
View *createView(Controller *controller, View *parent = nullptr) const override;
|
||||||
bool inDisallowedDragView(QPoint globalPos) const override;
|
bool inDisallowedDragView(QPoint globalPos) const override;
|
||||||
bool usesFallbackMouseGrabber() const override;
|
bool usesFallbackMouseGrabber() const override;
|
||||||
void ungrabMouse() override;
|
void ungrabMouse() override;
|
||||||
|
|||||||
@@ -96,9 +96,11 @@ static Controller *controllerForWidget(QWidget *widget)
|
|||||||
case Type::RubberBand:
|
case Type::RubberBand:
|
||||||
case Type::LayoutItem:
|
case Type::LayoutItem:
|
||||||
case Type::ViewWrapper:
|
case Type::ViewWrapper:
|
||||||
|
case Type::DropAreaIndicatorOverlay:
|
||||||
case Type::None:
|
case Type::None:
|
||||||
// skip internal types
|
// skip internal types
|
||||||
continue;
|
continue;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -243,6 +245,7 @@ bool ViewWrapper_qtwidgets::is(Type t) const
|
|||||||
return qobject_cast<MDIArea_qtwidgets *>(m_widget);
|
return qobject_cast<MDIArea_qtwidgets *>(m_widget);
|
||||||
case Type::LayoutItem:
|
case Type::LayoutItem:
|
||||||
case Type::None:
|
case Type::None:
|
||||||
|
case Type::DropAreaIndicatorOverlay:
|
||||||
qWarning() << Q_FUNC_INFO << "These are framework internals that are not wrapped";
|
qWarning() << Q_FUNC_INFO << "These are framework internals that are not wrapped";
|
||||||
return false;
|
return false;
|
||||||
case Type::ViewWrapper:
|
case Type::ViewWrapper:
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
TEST_CASE("Separator Ctor")
|
TEST_CASE("Separator Ctor")
|
||||||
{
|
{
|
||||||
auto hostView = Platform::instance()->createView();
|
auto hostView = Platform::instance()->createView(nullptr);
|
||||||
|
|
||||||
{
|
{
|
||||||
Controllers::Separator separator(hostView);
|
Controllers::Separator separator(hostView);
|
||||||
|
|||||||
Reference in New Issue
Block a user