Krita Source Code Documentation
Loading...
Searching...
No Matches
KisQQuickPopupWidget Class Reference

The KisQQuickPopupWidget class. More...

#include <KisQQuickPopupWidget.h>

+ Inheritance diagram for KisQQuickPopupWidget:

Classes

struct  Private
 

Signals

void signalRootObjectReady ()
 

Public Member Functions

 KisQQuickPopupWidget (QWidget *parent=nullptr)
 
QMargins layoutContentMargins () const
 layoutContentMargins
 
QQuickItem * rootObject () const
 rootObject
 
void setLayoutMargins (const QMargins margins)
 setLayoutMargins calls layout()->setContentMargins(margins);
 
 ~KisQQuickPopupWidget ()
 

Protected Member Functions

bool event (QEvent *e) override
 
void keyPressEvent (QKeyEvent *event) override
 Copied from KisPopupButton.cpp.
 

Private Slots

void emitRootObjectReady ()
 

Private Attributes

QScopedPointer< Privated
 

Detailed Description

The KisQQuickPopupWidget class.

This is a wrapper of a QFrame with Popup window flag, and a KisQQuickWidget inside. This is used by KisQmlPopupWidgetManager to work around some limitations with QML popups inside a QQuickWidget.

Definition at line 21 of file KisQQuickPopupWidget.h.

Constructor & Destructor Documentation

◆ KisQQuickPopupWidget()

KisQQuickPopupWidget::KisQQuickPopupWidget ( QWidget * parent = nullptr)

Definition at line 19 of file KisQQuickPopupWidget.cpp.

20 : QFrame(parent)
21 , d(new Private(this))
22{
23 setWindowFlags(Qt::Popup);
24 setFrameStyle(QFrame::StyledPanel | QFrame::Plain);
25 QHBoxLayout *layout = new QHBoxLayout(this);
26 d->quickWidget->setSource(QUrl("qrc:/KisQQuickPopupWidget.qml"));
27 connect(d->quickWidget, SIGNAL(statusChanged(QQuickWidget::Status)), this, SLOT(emitRootObjectReady()));
28
29 if (!d->quickWidget->errors().empty()) {
30 qWarning() << "Errors in Popup:" << d->quickWidget->errors();
31 }
32
33 d->quickWidget->setResizeMode(QQuickWidget::SizeViewToRootObject);
34
35 layout->addWidget(d->quickWidget);
36 layout->setContentsMargins(0, 0, 0, 0);
37}
QScopedPointer< Private > d

References d, and emitRootObjectReady().

◆ ~KisQQuickPopupWidget()

KisQQuickPopupWidget::~KisQQuickPopupWidget ( )

Definition at line 39 of file KisQQuickPopupWidget.cpp.

40{
41
42}

Member Function Documentation

◆ emitRootObjectReady

void KisQQuickPopupWidget::emitRootObjectReady ( )
privateslot

Definition at line 83 of file KisQQuickPopupWidget.cpp.

84{
85 if (d->quickWidget->status() == QQuickWidget::Ready) {
86 Q_EMIT signalRootObjectReady();
87 }
88}

References d, and signalRootObjectReady().

◆ event()

bool KisQQuickPopupWidget::event ( QEvent * e)
overrideprotected

Definition at line 73 of file KisQQuickPopupWidget.cpp.

74{
75 if (e->type() == QEvent::Close) {
76 e->ignore();
77 hide();
78 return true;
79 }
80 return QFrame::event(e);
81}

◆ keyPressEvent()

void KisQQuickPopupWidget::keyPressEvent ( QKeyEvent * event)
overrideprotected

Copied from KisPopupButton.cpp.

Definition at line 63 of file KisQQuickPopupWidget.cpp.

64{
65 if (event->matches(QKeySequence::Cancel)) {
66 event->accept();
67 hide();
68 } else {
69 QFrame::keyPressEvent(event);
70 }
71}
bool event(QEvent *e) override

References event().

◆ layoutContentMargins()

QMargins KisQQuickPopupWidget::layoutContentMargins ( ) const

layoutContentMargins

Returns
layout()->contentMargins()

Definition at line 53 of file KisQQuickPopupWidget.cpp.

54{
55 return this->layout()->contentsMargins();
56}

◆ rootObject()

QQuickItem * KisQQuickPopupWidget::rootObject ( ) const

rootObject

Returns
QQuickWidget::rootObject().

Definition at line 44 of file KisQQuickPopupWidget.cpp.

45{
46 if (d->quickWidget->rootObject()) {
47 return d->quickWidget->rootObject();
48 }
49 qWarning() << "No Root Object!";
50 return nullptr;
51}

References d.

◆ setLayoutMargins()

void KisQQuickPopupWidget::setLayoutMargins ( const QMargins margins)

setLayoutMargins calls layout()->setContentMargins(margins);

Definition at line 58 of file KisQQuickPopupWidget.cpp.

59{
60 this->layout()->setContentsMargins(margins);
61}

◆ signalRootObjectReady

void KisQQuickPopupWidget::signalRootObjectReady ( )
signal

Member Data Documentation

◆ d

QScopedPointer<Private> KisQQuickPopupWidget::d
private

Definition at line 55 of file KisQQuickPopupWidget.h.


The documentation for this class was generated from the following files: