Qt: fixed destroyAllWindow crash (patch #794)

pull/13383/head
Ilya Lysenkov 14 years ago
parent f010539aaf
commit 480f8235a7
  1. 21
      modules/highgui/src/window_QT.cpp

@ -988,16 +988,25 @@ void GuiReceiver::destroyAllWindow()
//#TODO check externalQAppExists and in case it does, close windows carefully,
// i.e. apply the className-check from below...
qApp->closeAllWindows();
}else{
foreach (QObject *obj, QApplication::topLevelWidgets())
}
else
{
bool isWidgetDeleted = true;
while(isWidgetDeleted)
{
if (obj->metaObject ()->className () == QString("CvWindow"))
isWidgetDeleted = false;
QWidgetList list = QApplication::topLevelWidgets();
for (int i = 0; i < list.count(); i++)
{
delete obj;
QObject *obj = list.at(i);
if (obj->metaObject ()->className () == QString("CvWindow"))
{
delete obj;
isWidgetDeleted = true;
break;
}
}
}
}
}

Loading…
Cancel
Save