diff options
author | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2012-05-10 16:57:41 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-05-10 22:59:25 +0200 |
commit | 78b9de746c9328cb56339d36598a67977360be2b (patch) | |
tree | 2a938a717c64c9c9458d7081a220d0dc476a5c0d /src/widgets | |
parent | fe59f15a5be51772eda2287fa20321f192ff18af (diff) |
Keep object name of QWidgetWindow in sync with the widget.
Use new objectNameChanged() signal.
Change-Id: I247566bd51d23ec65ff74ba9ac7be0d18e8ff160
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Diffstat (limited to 'src/widgets')
-rw-r--r-- | src/widgets/kernel/qwidget.cpp | 10 | ||||
-rw-r--r-- | src/widgets/kernel/qwidgetwindow_qpa.cpp | 11 | ||||
-rw-r--r-- | src/widgets/kernel/qwidgetwindow_qpa_p.h | 3 |
3 files changed, 14 insertions, 10 deletions
diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index 74612559f0..1b5b9ccf34 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -9074,16 +9074,6 @@ void QWidget::ensurePolished() const QChildEvent e(QEvent::ChildPolished, const_cast<QWidget *>(this)); QCoreApplication::sendEvent(d->parent, &e); } - if (d->extra && d->extra->topextra && d->extra->topextra->window - && d->extra->topextra->window->objectName().isEmpty()) { - QString on = objectName(); - if (on.isEmpty()) { - on = QString::fromUtf8(metaObject()->className()); - on += QStringLiteral("Class"); - } - on += QStringLiteral("Window"); - d->extra->topextra->window->setObjectName(on); - } } /*! diff --git a/src/widgets/kernel/qwidgetwindow_qpa.cpp b/src/widgets/kernel/qwidgetwindow_qpa.cpp index 5639bac3ff..ddda4c322b 100644 --- a/src/widgets/kernel/qwidgetwindow_qpa.cpp +++ b/src/widgets/kernel/qwidgetwindow_qpa.cpp @@ -60,6 +60,8 @@ extern bool qt_try_modal(QWidget *widget, QEvent::Type type); QWidgetWindow::QWidgetWindow(QWidget *widget) : m_widget(widget) { + updateObjectName(); + connect(m_widget, &QObject::objectNameChanged, this, &QWidgetWindow::updateObjectName); } #ifndef QT_NO_ACCESSIBILITY @@ -507,4 +509,13 @@ bool QWidgetWindow::nativeEvent(const QByteArray &eventType, void *message, long return m_widget->nativeEvent(eventType, message, result); } +void QWidgetWindow::updateObjectName() +{ + QString name = m_widget->objectName(); + if (name.isEmpty()) + name = QString::fromUtf8(m_widget->metaObject()->className()) + QStringLiteral("Class"); + name += QStringLiteral("Window"); + setObjectName(name); +} + QT_END_NAMESPACE diff --git a/src/widgets/kernel/qwidgetwindow_qpa_p.h b/src/widgets/kernel/qwidgetwindow_qpa_p.h index e5c07a2d3a..80af5e6b77 100644 --- a/src/widgets/kernel/qwidgetwindow_qpa_p.h +++ b/src/widgets/kernel/qwidgetwindow_qpa_p.h @@ -83,6 +83,9 @@ protected: void handleWindowStateChangedEvent(QWindowStateChangeEvent *event); bool nativeEvent(const QByteArray &eventType, void *message, long *result); +private slots: + void updateObjectName(); + private: void updateGeometry(); |