Add DropArea_qtwidgets stub

This commit is contained in:
Sergio Martins
2022-04-23 14:14:28 +01:00
parent 860a1a1bb0
commit 4f5ffa2370
6 changed files with 91 additions and 0 deletions

View File

@@ -123,6 +123,8 @@ set(DOCKSLIBS_SRCS
qtwidgets/views/FloatingWindow_qtwidgets.h
qtwidgets/views/DockWidget_qtwidgets.cpp
qtwidgets/views/DockWidget_qtwidgets.h
qtwidgets/views/DropArea_qtwidgets.cpp
qtwidgets/views/DropArea_qtwidgets.h
qtwidgets/views/Frame_qtwidgets.cpp
qtwidgets/views/Frame_qtwidgets.h
qtwidgets/views/MainWindow_qtwidgets.cpp

View File

@@ -116,6 +116,9 @@ public:
///@param dropArea Just forward to DropIndicatorOverlayInterface's constructor.
virtual DropIndicatorOverlayInterface *createDropIndicatorOverlay(Controllers::DropArea *dropArea) const = 0;
/// @brief Called internally by the framework to create a DropArea
virtual View *createDropArea(Controllers::DropArea *, View *parent) const = 0;
///@brief Called internally by the framework to create a RubberBand to show as drop zone
/// Returns a rubber band
virtual QWidgetOrQuick *createRubberBand(QWidgetOrQuick *parent) const = 0;

View File

@@ -24,6 +24,7 @@
#include "qtwidgets/views/FloatingWindow_qtwidgets.h"
#include "qtwidgets/views/DockWidget_qtwidgets.h"
#include "qtwidgets/views/DropArea_qtwidgets.h"
#include "qtwidgets/views/Frame_qtwidgets.h"
#include "qtwidgets/views/MainWindow_qtwidgets.h"
#include "qtwidgets/views/View_qtwidgets.h"
@@ -185,3 +186,8 @@ QIcon DefaultWidgetFactory_qtwidgets::iconForButtonType(TitleBarButtonType type,
return icon;
}
View *DefaultWidgetFactory_qtwidgets::createDropArea(Controllers::DropArea *controller, View *parent) const
{
return new Views::DropArea_qtwidgets(controller, parent);
}

View File

@@ -67,6 +67,7 @@ public:
DropIndicatorOverlayInterface *createDropIndicatorOverlay(Controllers::DropArea *) const override;
QWidgetOrQuick *createRubberBand(QWidgetOrQuick *parent) const override;
View *createSideBar(Controllers::SideBar *, Controllers::MainWindow *parent) const override;
View *createDropArea(Controllers::DropArea *, View *parent) const override;
#ifdef KDDOCKWIDGETS_QTWIDGETS
QAbstractButton *createTitleBarButton(QWidget *parent, TitleBarButtonType) const override;

View File

@@ -0,0 +1,33 @@
/*
This file is part of KDDockWidgets.
SPDX-FileCopyrightText: 2019-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
Author: Sérgio Martins <sergio.martins@kdab.com>
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
Contact KDAB at <info@kdab.com> for commercial licensing options.
*/
#include "DropArea_qtwidgets.h"
#include "private/Utils_p.h"
using namespace KDDockWidgets;
using namespace KDDockWidgets::Views;
DropArea_qtwidgets::DropArea_qtwidgets(Controllers::DropArea *dropArea, View *parent)
: MultiSplitter(parent)
, m_dropArea(dropArea)
{
if (isWayland()) {
#ifdef KDDOCKWIDGETS_QTWIDGETS
setAcceptDrops(true);
#else
qWarning() << "Dropping not implement for QtQuick on Wayland yet!";
#endif
}
}
DropArea_qtwidgets::~DropArea_qtwidgets()
{
}

View File

@@ -0,0 +1,46 @@
/*
This file is part of KDDockWidgets.
SPDX-FileCopyrightText: 2019-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
Author: Sérgio Martins <sergio.martins@kdab.com>
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
Contact KDAB at <info@kdab.com> for commercial licensing options.
*/
/**
* @file
* @brief A MultiSplitter with support for drop indicators when hovering over.
*
* @author Sérgio Martins \<sergio.martins@kdab.com\>
*/
#pragma once
#include "kddockwidgets/docks_export.h"
#include "kddockwidgets/KDDockWidgets.h"
#include "private/MultiSplitter_p.h"
namespace KDDockWidgets {
namespace Controllers {
class DropArea;
}
namespace Views {
class DOCKS_EXPORT DropArea_qtwidgets : public MultiSplitter
{
Q_OBJECT
public:
explicit DropArea_qtwidgets(Controllers::DropArea *, View *parent);
~DropArea_qtwidgets();
private:
Controllers::DropArea *const m_dropArea;
};
}
}