Expunge WA_GroupLeader
It's been deprecated since Qt 4.1. Task-number: QTBUG-85816 Change-Id: Iafc6340716556f54fc5472c60035bb57461b842f Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
This commit is contained in:
parent
72e0d699ce
commit
da4ac99b12
@ -359,7 +359,6 @@ namespace Qt {
|
||||
|
||||
WA_ShowModal = 70, // ## deprecated since since 4.5.1 but still in use :-(
|
||||
WA_MouseNoMask = 71,
|
||||
WA_GroupLeader = 72, // ## deprecated since since 4.5.1 but still in use :-(
|
||||
WA_NoMousePropagation = 73, // for now, might go away.
|
||||
WA_Hover = 74,
|
||||
WA_InputMethodTransparent = 75, // Don't reset IM when user clicks on this (for virtual keyboards on embedded)
|
||||
|
@ -946,9 +946,6 @@
|
||||
This implies WA_UpdatesDisabled. This is set/cleared by
|
||||
QWidget::setUpdatesEnabled().
|
||||
|
||||
\value WA_GroupLeader \e{This attribute has been deprecated.} Use
|
||||
QWidget::windowModality instead.
|
||||
|
||||
\value WA_Hover Forces Qt to generate paint events when the mouse
|
||||
enters or leaves the widget. This feature is typically used when
|
||||
implementing custom styles; see the \l{widgets/styles}{Styles}
|
||||
|
@ -2184,46 +2184,19 @@ bool QApplicationPrivate::isWindowBlocked(QWindow *window, QWindow **blockingWin
|
||||
}
|
||||
|
||||
Qt::WindowModality windowModality = modalWindow->modality();
|
||||
QWidgetWindow *modalWidgetWindow = qobject_cast<QWidgetWindow *>(modalWindow);
|
||||
if (windowModality == Qt::NonModal) {
|
||||
// determine the modality type if it hasn't been set on the
|
||||
// modalWindow's widget, this normally happens when waiting for a
|
||||
// native dialog. use WindowModal if we are the child of a group
|
||||
// leader; otherwise use ApplicationModal.
|
||||
QWidget *m = modalWidgetWindow ? modalWidgetWindow->widget() : nullptr;
|
||||
while (m && !m->testAttribute(Qt::WA_GroupLeader)) {
|
||||
m = m->parentWidget();
|
||||
if (m)
|
||||
m = m->window();
|
||||
}
|
||||
windowModality = (m && m->testAttribute(Qt::WA_GroupLeader))
|
||||
? Qt::WindowModal
|
||||
: Qt::ApplicationModal;
|
||||
// If modality type hasn't been set on the modalWindow's widget, as
|
||||
// when waiting for a native dialog, use ApplicationModal.
|
||||
windowModality = Qt::ApplicationModal;
|
||||
}
|
||||
|
||||
switch (windowModality) {
|
||||
case Qt::ApplicationModal:
|
||||
{
|
||||
QWidgetWindow *widgetWindow = qobject_cast<QWidgetWindow *>(window);
|
||||
QWidget *groupLeaderForWidget = widgetWindow ? widgetWindow->widget() : nullptr;
|
||||
while (groupLeaderForWidget && !groupLeaderForWidget->testAttribute(Qt::WA_GroupLeader))
|
||||
groupLeaderForWidget = groupLeaderForWidget->parentWidget();
|
||||
|
||||
if (groupLeaderForWidget) {
|
||||
// if \a widget has WA_GroupLeader, it can only be blocked by ApplicationModal children
|
||||
QWidget *m = modalWidgetWindow ? modalWidgetWindow->widget() : nullptr;
|
||||
while (m && m != groupLeaderForWidget && !m->testAttribute(Qt::WA_GroupLeader))
|
||||
m = m->parentWidget();
|
||||
if (m == groupLeaderForWidget) {
|
||||
*blockingWindow = m->windowHandle();
|
||||
return true;
|
||||
}
|
||||
} else if (modalWindow != window) {
|
||||
if (modalWindow != window) {
|
||||
*blockingWindow = modalWindow;
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case Qt::WindowModal:
|
||||
{
|
||||
QWindow *w = window;
|
||||
|
@ -10953,21 +10953,9 @@ void QWidget::setAttribute(Qt::WidgetAttribute attribute, bool on)
|
||||
// reset modality type to NonModal when clearing WA_ShowModal
|
||||
data->window_modality = Qt::NonModal;
|
||||
} else if (data->window_modality == Qt::NonModal) {
|
||||
// determine the modality type if it hasn't been set prior
|
||||
// to setting WA_ShowModal. set the default to WindowModal
|
||||
// if we are the child of a group leader; otherwise use
|
||||
// If modality hasn't been set prior to setting WA_ShowModal, use
|
||||
// ApplicationModal.
|
||||
QWidget *w = parentWidget();
|
||||
if (w)
|
||||
w = w->window();
|
||||
while (w && !w->testAttribute(Qt::WA_GroupLeader)) {
|
||||
w = w->parentWidget();
|
||||
if (w)
|
||||
w = w->window();
|
||||
}
|
||||
data->window_modality = (w && w->testAttribute(Qt::WA_GroupLeader))
|
||||
? Qt::WindowModal
|
||||
: Qt::ApplicationModal;
|
||||
data->window_modality = Qt::ApplicationModal;
|
||||
// Some window managers do not allow us to enter modality after the
|
||||
// window is visible.The window must be hidden before changing the
|
||||
// windowModality property and then reshown.
|
||||
|
@ -175,12 +175,6 @@ public:
|
||||
private slots:
|
||||
void on_windowButton_clicked()
|
||||
{ (new Widget)->show(); }
|
||||
void on_groupLeaderButton_clicked()
|
||||
{
|
||||
Widget *w = new Widget;
|
||||
w->setAttribute(Qt::WA_GroupLeader);
|
||||
w->show();
|
||||
}
|
||||
|
||||
void on_modelessCustomDialogButton_clicked()
|
||||
{ newDialog(CustomDialogType, Qt::NonModal); }
|
||||
|
@ -191,13 +191,6 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QPushButton" name="groupLeaderButton">
|
||||
<property name="text">
|
||||
<string>Window (Group Leader)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="2">
|
||||
<widget class="QPushButton" name="windowModalPrintDialogButton">
|
||||
<property name="text">
|
||||
|
Loading…
Reference in New Issue
Block a user