KDDockWidgets API Documentation 1.7
Loading...
Searching...
No Matches
QWidgetAdapter_widgets.cpp
Go to the documentation of this file.
1/*
2 This file is part of KDDockWidgets.
3
4 SPDX-FileCopyrightText: 2019-2023 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
5 Author: SĂ©rgio Martins <sergio.martins@kdab.com>
6
7 SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
8
9 Contact KDAB at <info@kdab.com> for commercial licensing options.
10*/
11
21#include "QWidgetAdapter.h"
22#include "../FloatingWindow_p.h"
23#include "../Utils_p.h"
24#include "Qt5Qt6Compat_p.h"
25
26#include <QResizeEvent>
27#include <QMouseEvent>
28#include <QWindow>
29
30#include <QtWidgets/private/qwidget_p.h>
31
32using namespace KDDockWidgets;
33
34QWidgetAdapter::QWidgetAdapter(QWidget *parent, Qt::WindowFlags f)
35 : QWidget(parent, f)
36{
37}
38
39QWidgetAdapter::~QWidgetAdapter()
40{
41}
42
43FloatingWindow *QWidgetAdapter::floatingWindow() const
44{
45 if (auto fw = qobject_cast<FloatingWindow *>(window()))
46 return fw;
47
48 return nullptr;
49}
50
51void QWidgetAdapter::raiseAndActivate()
52{
53 window()->raise();
54 if (!isWayland())
55 window()->activateWindow();
56}
57
58bool QWidgetAdapter::event(QEvent *e)
59{
60 if (e->type() == QEvent::LayoutRequest)
61 onLayoutRequest();
62
63 return QWidget::event(e);
64}
65
66void QWidgetAdapter::resizeEvent(QResizeEvent *ev)
67{
68 if (!onResize(ev->size()))
70 Q_EMIT widgetGeometryChanged();
71}
72
73void QWidgetAdapter::moveEvent(QMoveEvent *ev)
74{
76 Q_EMIT widgetGeometryChanged();
77}
78
79void QWidgetAdapter::mousePressEvent(QMouseEvent *)
80{
81 onMousePress();
82}
83
84void QWidgetAdapter::mouseMoveEvent(QMouseEvent *ev)
85{
86 onMouseMove(Qt5Qt6Compat::eventGlobalPos(ev));
87}
88
89void QWidgetAdapter::mouseReleaseEvent(QMouseEvent *)
90{
91 onMouseRelease();
92}
93
94void QWidgetAdapter::closeEvent(QCloseEvent *e)
95{
96 onCloseEvent(e);
97}
98
99void QWidgetAdapter::setFlag(Qt::WindowType f, bool on)
100{
102}
103
104void QWidgetAdapter::setSize(QSize size)
105{
106 QRect geo = geometry();
107 geo.setSize(size);
108 setGeometry(geo);
109}
110
111bool QWidgetAdapter::onResize(QSize)
112{
113 return false;
114}
115void QWidgetAdapter::onLayoutRequest()
116{
117}
118
119void QWidgetAdapter::onMousePress()
120{
121}
122void QWidgetAdapter::onMouseMove(QPoint)
123{
124}
125void QWidgetAdapter::onMouseRelease()
126{
127}
128
129void QWidgetAdapter::onCloseEvent(QCloseEvent *)
130{
131}
132
133QWidget *KDDockWidgets::Private::widgetForWindow(QWindow *window)
134{
135 if (!window)
136 return nullptr;
137
138 return window->property("kddockwidgets_qwidget").value<QWidget *>();
139}
140
141void QWidgetAdapter::setNormalGeometry(QRect geo)
142{
143 QWidgetPrivate *priv = QWidgetPrivate::get(this);
144 if (priv->extra && priv->extra->topextra) {
145 priv->topData()->normalGeometry = geo;
146 } else {
147 qWarning() << Q_FUNC_INFO << "Failing to set normal geometry";
148 }
149}
150
Abstraction for supporting both QtWidgets and QtQuick.
QEvent::Type type() const const
QVariant property(const char *name) const const
void setSize(const QSize &size)
const QSize & size() const const
typedef WindowFlags
T value() const const
virtual bool event(QEvent *event) override
virtual void moveEvent(QMoveEvent *event)
void raise()
virtual void resizeEvent(QResizeEvent *event)
void setWindowFlag(Qt::WindowType flag, bool on)

© 2019-2023 Klarälvdalens Datakonsult AB (KDAB)
"The Qt, C++ and OpenGL Experts"
https://www.kdab.com/
KDDockWidgets
Advanced Dock Widget Framework for Qt
https://www.kdab.com/development-resources/qt-tools/kddockwidgets/
Generated on Wed Nov 1 2023 00:02:31 for KDDockWidgets API Documentation by doxygen 1.9.8