QMessageBox is a top-level window

This commit is contained in:
Neil Booth 2016-01-17 19:40:05 +09:00
parent c160a99ebc
commit e2627e0944
1 changed files with 2 additions and 1 deletions

View File

@ -148,9 +148,10 @@ class CancelButton(QPushButton):
class MessageBoxMixin(object):
def top_level_window(self, window=None):
window = window or self
classes = (WindowModalDialog, QMessageBox)
for n, child in enumerate(window.children()):
# Test for visibility as old closed dialogs may not be GC-ed
if isinstance(child, WindowModalDialog) and child.isVisible():
if isinstance(child, classes) and child.isVisible():
return self.top_level_window(child)
return window