// purpose :
// =======================================================================
DFBrowser_Thread::DFBrowser_Thread (DFBrowser_Window* theWindow)
-: QObject (theWindow), myPostponedItem (0), myIsFinishProcessing (false)
+: QObject (theWindow), myPostponedItem (0), myIsFinishProcessing (false),
+ myIsProcessPostponed (Standard_False)
{
DFBrowser_SearchLine* aSearchLine = theWindow->GetTreeLevelLine()->GetSearchLine();
myItems.append (new DFBrowser_ThreadItemSearch(aSearchLine));
// =======================================================================
void DFBrowser_Thread::ProcessApplication()
{
+ if (!myStartedThreads.empty())
+ {
+ myIsProcessPostponed = Standard_True;
+ return;
+ }
for (int anItemId = 0, aSize = myItems.size(); anItemId < aSize; anItemId++)
startThread (myItems[anItemId]);
}
myPostponedItem->ApplyValues();
myPostponedItem = 0;
}
+
+ if (myIsProcessPostponed)
+ {
+ myIsProcessPostponed = Standard_False;
+ ProcessApplication();
+ }
}