25#include "qtquick/views/ViewWrapper_p.h"
27#include "kddockwidgets/core/Group.h"
28#include "kddockwidgets/core/Stack.h"
29#include "kddockwidgets/core/TitleBar.h"
30#include "kddockwidgets/core/DockWidget.h"
31#include "core/DockWidget_p.h"
32#include "core/Group_p.h"
33#include "core/layouting/Item_p.h"
34#include "core/Logging_p.h"
39#include "core/WidgetResizeHandler_p.h"
40#include "core/TabBar_p.h"
61 , Core::GroupViewInterface(controller)
73 m_visualItem->setParent(
nullptr);
74 m_visualItem->deleteLater();
79 d->updateConstraintsConnection =
m_group->
tabBar()->
dptr()->countChanged.connect([
this] {
83 d->currentDockWidgetChangedConnection =
m_group->
tabBar()->
dptr()->currentDockWidgetChanged.connect([
this] {
102 for (
auto dw : docks) {
108 QQmlComponent component(
plat()->qmlEngine(),
plat()->viewFactory()->groupFilename());
110 m_visualItem =
static_cast<QQuickItem *
>(component.create());
113 qWarning() << Q_FUNC_INFO <<
"Failed to create item" << component.errorString();
118 m_visualItem->setParentItem(
this);
119 m_visualItem->setParent(
this);
128 setProperty(
"kddockwidgets_min_size",
minSize());
129 setProperty(
"kddockwidgets_max_size",
maxSizeHint());
153 if (oldFrame && oldFrame->beingDeletedLater()) {
170 if (m_stackLayout || !stackLayout) {
171 qWarning() << Q_FUNC_INFO <<
"Shouldn't happen";
175 m_stackLayout = stackLayout;
181 if (handler->enabled()) {
183 KDDW_ERROR(
"Group::startMDIResize: Handler is already enabled!");
185 handler->setEnabled(
true);
188 KDDW_ERROR(
"Group::startMDIResize: No WidgetResizeHandler found. isMDI={}",
isMDI());
202 if (dockwidgets.size() == 1) {
203 auto dw = dockwidgets[0];
209 return (dw->view()->maxSizeHint() +
QSize(0,
nonContentsHeight())).boundedTo(Core::Item::hardcodedMaximumSize);
211 KDDW_WARN(
"Group::maxSizeHint: Max size not supported for mixed MDI case yet");
230 return m_visualItem->property(
"nonContentsHeight").toInt();
233Stack *Group::stackView()
const
236 return qobject_cast<Stack *>(
asQQuickItem(stack->view()));
241TabBar *Group::tabBarView()
const
Application-wide config to tune certain behaviours of the framework.
A ScopedConnection is a RAII-style way to make sure a Connection is disconnected.
void connect(T &&future, QObjectSubclass *context, Callback func)
A factory class for allowing the user to customize some internal widgets.
Implements a QTabWidget derived class with support for docking and undocking KDockWidget::DockWidget ...
QVariant fromValue(const T &value)