Revision control
++ // Copyright (C) 2016 The Qt Company Ltd.
++ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
++ // Qt-Security score:significant reason:default
++
++ #ifndef INPLACE_WIDGETHELPER_H
++ #define INPLACE_WIDGETHELPER_H
++
++
++ #include <QtCore/qobject.h>
++ #include <QtCore/qpoint.h>
++ #include <QtCore/qsize.h>
++ #include <QtCore/qpointer.h>
++ #include <qglobal.h>
++
++ QT_BEGIN_NAMESPACE
++
++ class QDesignerFormWindowInterface;
++
++ namespace qdesigner_internal {
++
++ // A helper class to make an editor widget suitable for form inline
++ // editing. Derive from the editor widget class and make InPlaceWidgetHelper a member.
++ //
++ // Sets "destructive close" on the editor widget and
++ // wires "ESC" to it.
++ // Installs an event filter on the parent to listen for
++ // resize events and passes them on to the child.
++ // You might want to connect editingFinished() to close() of the editor widget.
++ class InPlaceWidgetHelper: public QObject
++ {
++ Q_OBJECT
++ public:
++ InPlaceWidgetHelper(QWidget *editorWidget, QWidget *parentWidget, QDesignerFormWindowInterface *fw);
++ ~InPlaceWidgetHelper() override;
++
++ bool eventFilter(QObject *object, QEvent *event) override;
++
++ // returns a recommended alignment for the editor widget determined from the parent.
++ Qt::Alignment alignment() const;
++ private:
++ QWidget *m_editorWidget;
++ QPointer<QWidget> m_parentWidget;
++ const bool m_noChildEvent;
++ QPoint m_posOffset;
++ QSize m_sizeOffset;
++ };
++
++ } // namespace qdesigner_internal
++
++ QT_END_NAMESPACE
++
++ #endif // INPLACE_WIDGETHELPER_H