/* This file is part of KDDockWidgets. SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company Author: Sérgio Martins SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only Contact KDAB at for commercial licensing options. */ #include "Separator_quick.h" #include "Widget_quick.h" #include "Logging_p.h" #include "Item_p.h" #include "Rubberband_quick.h" #include using namespace Layouting; SeparatorQuick::SeparatorQuick(Layouting::Widget *parent) : QQuickItem(qobject_cast(parent->asQObject())) , Separator(parent) , Layouting::Widget_quick(this) { createQQuickItem(QStringLiteral(":/kddockwidgets/multisplitter/private/multisplitter/qml/Separator.qml"), this); // Only set on Separator::init(), so single-shot QTimer::singleShot(0, this, &SeparatorQuick::isVerticalChanged); } bool SeparatorQuick::isVertical() const { return Separator::isVertical(); } Layouting::Widget *SeparatorQuick::createRubberBand(Layouting::Widget *parent) { if (!parent) { qWarning() << Q_FUNC_INFO << "Parent is required"; return nullptr; } return new Layouting::Widget_quick(new Layouting::RubberBand(parent)); } Widget *SeparatorQuick::asWidget() { return this; } void SeparatorQuick::onMousePressed() { Separator::onMousePress(); } void SeparatorQuick::onMouseMoved(QPointF localPos) { const QPointF pos = QQuickItem::mapToItem(parentItem(), localPos); Separator::onMouseMove(pos.toPoint()); } void SeparatorQuick::onMouseReleased() { Separator::onMouseReleased(); } void SeparatorQuick::onMouseDoubleClicked() { Separator::onMouseDoubleClick(); }