From 03c437995dae0c840dedcb2234104e33b9a72e90 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Tue, 17 Apr 2018 13:58:41 +0200 Subject: Inherit QQuickPopupItem from QQuickPage Change-Id: I574efd6c98680e247012f3e141d7d8fc8b40e37f Reviewed-by: Mitch Curtis --- src/quicktemplates2/qquickdialog.cpp | 56 +++++++++---------------------- src/quicktemplates2/qquickdialog_p.h | 4 --- src/quicktemplates2/qquickdialog_p_p.h | 3 -- src/quicktemplates2/qquickpopupitem.cpp | 30 ++++++++--------- src/quicktemplates2/qquickpopupitem_p_p.h | 5 ++- 5 files changed, 32 insertions(+), 66 deletions(-) diff --git a/src/quicktemplates2/qquickdialog.cpp b/src/quicktemplates2/qquickdialog.cpp index cce1ae47..dd0c9946 100644 --- a/src/quicktemplates2/qquickdialog.cpp +++ b/src/quicktemplates2/qquickdialog.cpp @@ -183,7 +183,9 @@ QQuickDialog::QQuickDialog(QObject *parent) : QQuickPopup(*(new QQuickDialogPrivate), parent) { Q_D(QQuickDialog); - d->layout.reset(new QQuickPageLayout(d->popupItem)); + connect(d->popupItem, &QQuickPopupItem::titleChanged, this, &QQuickDialog::titleChanged); + connect(d->popupItem, &QQuickPopupItem::headerChanged, this, &QQuickDialog::headerChanged); + connect(d->popupItem, &QQuickPopupItem::footerChanged, this, &QQuickDialog::footerChanged); } /*! @@ -206,18 +208,14 @@ QQuickDialog::QQuickDialog(QObject *parent) QString QQuickDialog::title() const { Q_D(const QQuickDialog); - return d->title; + return d->popupItem->title(); } void QQuickDialog::setTitle(const QString &title) { Q_D(QQuickDialog); - if (d->title == title) - return; - - d->title = title; + d->popupItem->setTitle(title); setAccessibleName(title); - emit titleChanged(); } /*! @@ -239,14 +237,14 @@ void QQuickDialog::setTitle(const QString &title) QQuickItem *QQuickDialog::header() const { Q_D(const QQuickDialog); - return d->layout->header(); + return d->popupItem->header(); } void QQuickDialog::setHeader(QQuickItem *header) { Q_D(QQuickDialog); - QQuickItem *oldHeader = d->layout->header(); - if (!d->layout->setHeader(header)) + QQuickItem *oldHeader = d->popupItem->header(); + if (oldHeader == header) return; if (QQuickDialogButtonBox *buttonBox = qobject_cast(oldHeader)) { @@ -256,6 +254,7 @@ void QQuickDialog::setHeader(QQuickItem *header) if (d->buttonBox == buttonBox) d->buttonBox = nullptr; } + if (QQuickDialogButtonBox *buttonBox = qobject_cast(header)) { connect(buttonBox, &QQuickDialogButtonBox::accepted, this, &QQuickDialog::accept); connect(buttonBox, &QQuickDialogButtonBox::rejected, this, &QQuickDialog::reject); @@ -264,9 +263,7 @@ void QQuickDialog::setHeader(QQuickItem *header) buttonBox->setStandardButtons(d->standardButtons); } - if (isComponentComplete()) - d->layout->update(); - emit headerChanged(); + d->popupItem->setHeader(header); } /*! @@ -288,14 +285,14 @@ void QQuickDialog::setHeader(QQuickItem *header) QQuickItem *QQuickDialog::footer() const { Q_D(const QQuickDialog); - return d->layout->footer(); + return d->popupItem->footer(); } void QQuickDialog::setFooter(QQuickItem *footer) { Q_D(QQuickDialog); - QQuickItem *oldFooter = d->layout->footer(); - if (!d->layout->setFooter(footer)) + QQuickItem *oldFooter = d->popupItem->footer(); + if (oldFooter == footer) return; if (QQuickDialogButtonBox *buttonBox = qobject_cast(oldFooter)) { @@ -313,9 +310,7 @@ void QQuickDialog::setFooter(QQuickItem *footer) buttonBox->setStandardButtons(d->standardButtons); } - if (isComponentComplete()) - d->layout->update(); - emit footerChanged(); + d->popupItem->setFooter(footer); } /*! @@ -457,27 +452,6 @@ void QQuickDialog::done(int result) emit rejected(); } -void QQuickDialog::geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) -{ - Q_D(QQuickDialog); - QQuickPopup::geometryChanged(newGeometry, oldGeometry); - d->layout->update(); -} - -void QQuickDialog::paddingChange(const QMarginsF &newPadding, const QMarginsF &oldPadding) -{ - Q_D(QQuickDialog); - QQuickPopup::paddingChange(newPadding, oldPadding); - d->layout->update(); -} - -void QQuickDialog::spacingChange(qreal newSpacing, qreal oldSpacing) -{ - Q_D(QQuickDialog); - QQuickPopup::spacingChange(newSpacing, oldSpacing); - d->layout->update(); -} - #if QT_CONFIG(accessibility) QAccessible::Role QQuickDialog::accessibleRole() const { @@ -490,7 +464,7 @@ void QQuickDialog::accessibilityActiveChanged(bool active) QQuickPopup::accessibilityActiveChanged(active); if (active) - setAccessibleName(d->title); + setAccessibleName(d->popupItem->title()); } #endif diff --git a/src/quicktemplates2/qquickdialog_p.h b/src/quicktemplates2/qquickdialog_p.h index d22685b6..1f410d13 100644 --- a/src/quicktemplates2/qquickdialog_p.h +++ b/src/quicktemplates2/qquickdialog_p.h @@ -110,10 +110,6 @@ Q_SIGNALS: Q_REVISION(3) void resultChanged(); protected: - void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) override; - void paddingChange(const QMarginsF &newPadding, const QMarginsF &oldPadding) override; - void spacingChange(qreal newSpacing, qreal oldSpacing) override; - #if QT_CONFIG(accessibility) QAccessible::Role accessibleRole() const override; void accessibilityActiveChanged(bool active) override; diff --git a/src/quicktemplates2/qquickdialog_p_p.h b/src/quicktemplates2/qquickdialog_p_p.h index e26182ac..70128f34 100644 --- a/src/quicktemplates2/qquickdialog_p_p.h +++ b/src/quicktemplates2/qquickdialog_p_p.h @@ -50,7 +50,6 @@ #include #include -#include #include QT_BEGIN_NAMESPACE @@ -75,9 +74,7 @@ public: void handleClick(QQuickAbstractButton *button); int result; - QString title; QQuickDialogButtonBox *buttonBox; - QScopedPointer layout; QPlatformDialogHelper::StandardButtons standardButtons; }; diff --git a/src/quicktemplates2/qquickpopupitem.cpp b/src/quicktemplates2/qquickpopupitem.cpp index 757fa701..ad9ffe51 100644 --- a/src/quicktemplates2/qquickpopupitem.cpp +++ b/src/quicktemplates2/qquickpopupitem.cpp @@ -37,7 +37,7 @@ #include "qquickpopupitem_p_p.h" #include "qquickapplicationwindow_p.h" #include "qquickshortcutcontext_p_p.h" -#include "qquickpane_p_p.h" +#include "qquickpage_p_p.h" #include "qquickcontentitem_p.h" #include "qquickpopup_p_p.h" #include "qquickdeferredexecute_p_p.h" @@ -47,7 +47,7 @@ QT_BEGIN_NAMESPACE -class QQuickPopupItemPrivate : public QQuickPanePrivate +class QQuickPopupItemPrivate : public QQuickPagePrivate { Q_DECLARE_PUBLIC(QQuickPopupItem) @@ -83,13 +83,13 @@ QQuickPopupItemPrivate::QQuickPopupItemPrivate(QQuickPopup *popup) void QQuickPopupItemPrivate::implicitWidthChanged() { - QQuickPanePrivate::implicitWidthChanged(); + QQuickPagePrivate::implicitWidthChanged(); emit popup->implicitWidthChanged(); } void QQuickPopupItemPrivate::implicitHeightChanged() { - QQuickPanePrivate::implicitHeightChanged(); + QQuickPagePrivate::implicitHeightChanged(); emit popup->implicitHeightChanged(); } @@ -112,7 +112,7 @@ void QQuickPopupItemPrivate::resolvePalette() QQuickItem *QQuickPopupItemPrivate::getContentItem() { Q_Q(QQuickPopupItem); - if (QQuickItem *item = QQuickPanePrivate::getContentItem()) + if (QQuickItem *item = QQuickPagePrivate::getContentItem()) return item; return new QQuickContentItem(popup, q); @@ -155,7 +155,7 @@ void QQuickPopupItemPrivate::executeBackground(bool complete) } QQuickPopupItem::QQuickPopupItem(QQuickPopup *popup) - : QQuickPane(*(new QQuickPopupItemPrivate(popup)), nullptr) + : QQuickPage(*(new QQuickPopupItemPrivate(popup)), nullptr) { setParent(popup); setFlag(ItemIsFocusScope); @@ -309,35 +309,35 @@ void QQuickPopupItem::wheelEvent(QWheelEvent *event) void QQuickPopupItem::contentItemChange(QQuickItem *newItem, QQuickItem *oldItem) { Q_D(QQuickPopupItem); - QQuickPane::contentItemChange(newItem, oldItem); + QQuickPage::contentItemChange(newItem, oldItem); d->popup->contentItemChange(newItem, oldItem); } void QQuickPopupItem::contentSizeChange(const QSizeF &newSize, const QSizeF &oldSize) { Q_D(QQuickPopupItem); - QQuickPane::contentSizeChange(newSize, oldSize); + QQuickPage::contentSizeChange(newSize, oldSize); d->popup->contentSizeChange(newSize, oldSize); } void QQuickPopupItem::fontChange(const QFont &newFont, const QFont &oldFont) { Q_D(QQuickPopupItem); - QQuickPane::fontChange(newFont, oldFont); + QQuickPage::fontChange(newFont, oldFont); d->popup->fontChange(newFont, oldFont); } void QQuickPopupItem::geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) { Q_D(QQuickPopupItem); - QQuickPane::geometryChanged(newGeometry, oldGeometry); + QQuickPage::geometryChanged(newGeometry, oldGeometry); d->popup->geometryChanged(newGeometry, oldGeometry); } void QQuickPopupItem::localeChange(const QLocale &newLocale, const QLocale &oldLocale) { Q_D(QQuickPopupItem); - QQuickPane::localeChange(newLocale, oldLocale); + QQuickPage::localeChange(newLocale, oldLocale); d->popup->localeChange(newLocale, oldLocale); } @@ -350,21 +350,21 @@ void QQuickPopupItem::mirrorChange() void QQuickPopupItem::itemChange(ItemChange change, const ItemChangeData &data) { Q_D(QQuickPopupItem); - QQuickPane::itemChange(change, data); + QQuickPage::itemChange(change, data); d->popup->itemChange(change, data); } void QQuickPopupItem::paddingChange(const QMarginsF &newPadding, const QMarginsF &oldPadding) { Q_D(QQuickPopupItem); - QQuickPane::paddingChange(newPadding, oldPadding); + QQuickPage::paddingChange(newPadding, oldPadding); d->popup->paddingChange(newPadding, oldPadding); } void QQuickPopupItem::paletteChange(const QPalette &newPalette, const QPalette &oldPalette) { Q_D(QQuickPopupItem); - QQuickPane::paletteChange(newPalette, oldPalette); + QQuickPage::paletteChange(newPalette, oldPalette); d->popup->paletteChange(newPalette, oldPalette); } @@ -390,7 +390,7 @@ QAccessible::Role QQuickPopupItem::accessibleRole() const void QQuickPopupItem::accessibilityActiveChanged(bool active) { Q_D(const QQuickPopupItem); - QQuickPane::accessibilityActiveChanged(active); + QQuickPage::accessibilityActiveChanged(active); d->popup->accessibilityActiveChanged(active); } #endif diff --git a/src/quicktemplates2/qquickpopupitem_p_p.h b/src/quicktemplates2/qquickpopupitem_p_p.h index 736ff0d2..a15aeb17 100644 --- a/src/quicktemplates2/qquickpopupitem_p_p.h +++ b/src/quicktemplates2/qquickpopupitem_p_p.h @@ -48,14 +48,13 @@ // We mean it. // -#include +#include QT_BEGIN_NAMESPACE class QQuickPopup; class QQuickPopupItemPrivate; - -class QQuickPopupItem : public QQuickPane +class QQuickPopupItem : public QQuickPage { Q_OBJECT -- cgit v1.2.3