Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
formwindow_dnditem.cpp
Go to the documentation of this file.
1
// Copyright (C) 2016 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
3
// Qt-Security score:significant reason:default
4
5
#
include
"formwindow_dnditem.h"
6
#
include
"formwindow.h"
7
8
#
include
<
private
/
ui4_p
.
h
>
9
#
include
<
qdesigner_resource
.
h
>
10
#
include
<
qtresourcemodel_p
.
h
>
11
12
#
include
<
QtDesigner
/
abstractformeditor
.
h
>
13
#
include
<
QtDesigner
/
private
/
ui4_p
.
h
>
14
15
#
include
<
QtWidgets
/
qlabel
.
h
>
16
#
include
<
QtGui
/
qpixmap
.
h
>
17
18
QT_BEGIN_NAMESPACE
19
20
namespace
qdesigner_internal
{
21
22
static
QWidget
*
decorationFromWidget
(
QWidget
*w)
23
{
24
QLabel *label =
new
QLabel(
nullptr
, Qt::ToolTip);
25
QPixmap pm = w->grab(QRect(0, 0, -1, -1));
26
label->setPixmap(pm);
27
label->resize((QSizeF(pm.size()) / pm.devicePixelRatio()).toSize());
28
29
return
label;
30
}
31
32
static
DomUI *
widgetToDom
(
QWidget
*widget,
FormWindow
*form)
33
{
34
QDesignerResource
builder
(
form
)
;
35
builder
.
setSaveRelative
(
false
)
;
36
return
builder.copy(FormBuilderClipboard(widget));
37
}
38
39
FormWindowDnDItem
::FormWindowDnDItem(QDesignerDnDItemInterface::DropType type,
FormWindow
*form,
40
QWidget
*widget, QPoint global_mouse_pos)
41
: QDesignerDnDItem(type, form)
42
{
43
QWidget
*decoration =
decorationFromWidget
(
widget
)
;
44
QPoint pos = widget->mapToGlobal(QPoint(0, 0));
45
decoration->move(pos);
46
47
init(
nullptr
, widget, decoration, global_mouse_pos);
48
}
49
50
DomUI *
FormWindowDnDItem
::
domUi
()
const
51
{
52
DomUI *result = QDesignerDnDItem::domUi();
53
if
(result !=
nullptr
)
54
return
result;
55
FormWindow
*form = qobject_cast<
FormWindow
*>(source());
56
if
(widget() ==
nullptr
|| form ==
nullptr
)
57
return
nullptr
;
58
59
QtResourceModel *resourceModel = form->core()->resourceModel();
60
QtResourceSet *currentResourceSet = resourceModel->currentResourceSet();
61
/* Short:
62
* We need to activate the original resourceSet associated with a form
63
* to properly generate the dom resource includes.
64
* Long:
65
* widgetToDom() calls copy() on QDesignerResource. It generates the
66
* Dom structure. In order to create DomResources properly we need to
67
* have the associated ResourceSet active (QDesignerResource::saveResources()
68
* queries the resource model for a qrc path for the given resource file:
69
* qrcFile = m_core->resourceModel()->qrcPath(ri->text());
70
* This works only when the resource file comes from the active
71
* resourceSet */
72
resourceModel->setCurrentResourceSet(form->resourceSet());
73
74
result = widgetToDom(widget(), form);
75
const_cast
<
FormWindowDnDItem
*>(
this
)->setDomUi(result);
76
resourceModel->setCurrentResourceSet(currentResourceSet);
77
return
result;
78
}
79
80
}
// namespace qdesigner_internal
81
82
QT_END_NAMESPACE
QPainter::QWidget
friend class QWidget
Definition
qpainter.h:432
qdesigner_internal::FormWindowDnDItem
Definition
formwindow_dnditem.h:17
qdesigner_internal::FormWindowDnDItem::domUi
DomUI * domUi() const override
Definition
formwindow_dnditem.cpp:50
qdesigner_internal::FormWindow
Definition
formwindow.h:46
qdesigner_internal::QDesignerResource
Definition
qdesigner_resource.h:41
qdesigner_internal::QDesignerResource::setSaveRelative
void setSaveRelative(bool relative)
Definition
qdesigner_resource.cpp:665
qdesigner_internal::QDesignerResource::QDesignerResource
QDesignerResource(FormWindow *fw)
Definition
qdesigner_resource.cpp:455
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
qdesigner_internal
Auxiliary methods to store/retrieve settings.
Definition
buddyeditor.cpp:67
qdesigner_internal::widgetToDom
static DomUI * widgetToDom(QWidget *widget, FormWindow *form)
Definition
formwindow_dnditem.cpp:32
qdesigner_internal::decorationFromWidget
static QWidget * decorationFromWidget(QWidget *w)
Definition
formwindow_dnditem.cpp:22
qttools
src
designer
src
components
formeditor
formwindow_dnditem.cpp
Generated on
for Qt by
1.18.0