Gnats 4742 (Rusty, 6-2009): Long time to OPEN an SCT See stack below. In a problem scenario -- with models similar to those cited in the bug report, SctView::refreshAllShowDetails (bool redraw=true) is iterating through 12139 rows -- to appropriately hide or show each row. In each such call, Q3Header::calculatePositions is also doing a similar iteration, from the first row to the current row. And there don't seem to be any conditions in any of the intervening methods skip these computations. Unfortunately, Q3Table does not provide any method which will show or hide a SET of rows in a single operation. > Qt3Supportd4.dll!Q3Header::calculatePositions(bool onlyVisible=false, int start=0) Line 1962 + 0x19 bytes C++ Qt3Supportd4.dll!Q3Header::sectionPos(int section=7054) Line 1729 C++ Qt3Supportd4.dll!Q3TableHeader::sectionPos(int section=7054) Line 7158 C++ Qt3Supportd4.dll!Q3Table::rowPos(int row=7054) Line 4640 C++ Qt3Supportd4.dll!Q3Table::rowHeightChanged(int row=7054) Line 4431 + 0x14 bytes C++ Qt3Supportd4.dll!Q3Table::hideRow(int row=7054) Line 5608 C++ > riverware.exe!SctView::refreshAllShowDetails(bool redraw=true) Line 1542 C++ riverware.exe!SctView::adjustRowHeights() Line 2647 C++ riverware.exe!SctViewAggTHorz::configureQTables() Line 525 C++ riverware.exe!SctViewAggTHorz::reConfigViewSpecific() Line 582 C++ riverware.exe!SctView::reConfigView(SctConfig * sctConfig=0x0b004028, SctModelData * sctModelDat=0x0b248ad0, SctRescrollType scrollType=SCT_RESCROLL_SLOT_BEGIN, int __formal=0) Line 398 C++ riverware.exe!SctDialog::reConfigAllViews(SctRescrollType scrollType=SCT_RESCROLL_SLOT_BEGIN, int scrollParm=0) Line 4579 C++ riverware.exe!SctDialog::fullRecomp(SctRescrollType scrollType=SCT_RESCROLL_SLOT_BEGIN, int scrollParm=0) Line 4602 C++ riverware.exe!SctDialog::sctModelData_ModelLoaded() Line 3392 C++ riverware.exe!SctModelData::runInfoCallbackHandler(CallbackType cbType=RI_STATE_CHANGED, CallbackData * __formal=0x0012c128, CallbackData * __formal=0x0012c128) Line 5022 C++ riverware.exe!MethodCb::invoke(CallbackType type=RI_STATE_CHANGED, CallbackData * cbData=0x0012c128) Line 17 C++ riverware.exe!Root::callCallbacks(CallbackType type=RI_STATE_CHANGED, CallbackData * cbData=0x0012c128) Line 224 C++ riverware.exe!RunInfo::setState(RunState newState=LOADED, bool doCallback=true) Line 496 + 0x32 bytes C++ riverware.exe!RunInfo::loadEnd() Line 351 C++ riverware.exe!SimWorkspace::doneLoading(bool status=false, QString & error={...}) Line 5169 C++ riverware.exe!SimWorkspace::load(cwfpointer & fp={...}, QString & error={...}, bool isModelFile=true) Line 5070 + 0x18 bytes C++ riverware.exe!SimWorkspace::loadModelFile(const rwFile & fileObj={...}, cwfpointer & fp={...}, QString & error={...}) Line 4605 + 0x12 bytes C++ riverware.exe!LoadFileObj::operator()(const rwFile & fileObj={...}, cwfpointer & fp={...}, QString & error={...}) Line 202 C++ riverware.exe!loadFile,guiLoadFileError>(guiLoadFileCompare & compareObj={...}, LoadFileObj & loadObj={...}, guiLoadFileError & errorObj={...}, rwFile & fileObj={...}, const cwVersion & expectedVersion={...}, bool migrateVersion=false, bool transitional=false) Line 125 + 0x14 bytes C++ riverware.exe!loadModelFile(const char * path=0x03a39fd0) Line 880 + 0xf6 bytes C++ riverware.exe!LoadSaveMgr::doLoadModelFile(int __formal=0, const QString * inPath=0x0012c9cc) Line 1284 + 0x38 bytes C++ riverware.exe!LoadSaveMgr::loadSaveCmd(int cmd=0, const QString * inPath=0x0012c9cc) Line 2016 + 0x10 bytes C++ riverware.exe!LoadSaveMgr::recentFileMenuItemTriggered(QAction * menuItemAction=0x0a0c94b8) Line 4114 C++ riverware.exe!LoadSaveMgr::qt_metacall(QMetaObject::Call _c=InvokeMetaMethod, int _id=0, void * * _a=0x0012cac4) Line 77 C++ QtCored4.dll!QMetaObject::metacall(QObject * object=0x051a2498, QMetaObject::Call cl=InvokeMetaMethod, int idx=4, void * * argv=0x0012cac4) Line 238 C++ QtCored4.dll!QMetaObject::activate(QObject * sender=0x046aecd0, const QMetaObject * m=0x65a5f040, int local_signal_index=2, void * * argv=0x0012cac4) Line 3284 + 0x27 bytes C++ QtGuid4.dll!QMenu::triggered(QAction * _t1=0x0a0c94b8) Line 164 + 0x15 bytes C++ QtGuid4.dll!QMenuPrivate::_q_actionTriggered() Line 1122 C++ QtGuid4.dll!QMenu::qt_metacall(QMetaObject::Call _c=InvokeMetaMethod, int _id=8, void * * _a=0x0012cc24) Line 105 + 0xf bytes C++ QtCored4.dll!QMetaObject::metacall(QObject * object=0x046aecd0, QMetaObject::Call cl=InvokeMetaMethod, int idx=35, void * * argv=0x0012cc24) Line 238 C++ QtCored4.dll!QMetaObject::activate(QObject * sender=0x0a0c94b8, const QMetaObject * m=0x65cce6a0, int local_signal_index=1, void * * argv=0x0012cc24) Line 3284 + 0x27 bytes C++ QtGuid4.dll!QAction::triggered(bool _t1=false) Line 263 + 0x15 bytes C++ QtGuid4.dll!QAction::activate(QAction::ActionEvent event=Trigger) Line 1257 C++ QtGuid4.dll!QMenuPrivate::activateCausedStack(const QList > & causedStack={...}, QAction * action=0x0a0c94b8, QAction::ActionEvent action_e=Trigger, bool self=true) Line 1004 C++ QtGuid4.dll!QMenuPrivate::activateAction(QAction * action=0x0a0c94b8, QAction::ActionEvent action_e=Trigger, bool self=true) Line 1097 C++ QtGuid4.dll!QMenu::mouseReleaseEvent(QMouseEvent * e=0x0012d640) Line 2313 C++ QtGuid4.dll!QWidget::event(QEvent * event=0x0012d640) Line 8045 C++ QtGuid4.dll!QMenu::event(QEvent * e=0x0012d640) Line 2422 C++ QtGuid4.dll!QApplicationPrivate::notify_helper(QObject * receiver=0x046aecd0, QEvent * e=0x0012d640) Line 4302 + 0x11 bytes C++ QtGuid4.dll!QApplication::notify(QObject * receiver=0x046aecd0, QEvent * e=0x0012d640) Line 3867 + 0x2f bytes C++ QtCored4.dll!QCoreApplication::notifyInternal(QObject * receiver=0x046aecd0, QEvent * event=0x0012d640) Line 726 + 0x15 bytes C++ QtCored4.dll!QCoreApplication::sendSpontaneousEvent(QObject * receiver=0x046aecd0, QEvent * event=0x0012d640) Line 218 + 0x38 bytes C++ QtGuid4.dll!QApplicationPrivate::sendMouseEvent(QWidget * receiver=0x046aecd0, QMouseEvent * event=0x0012d640, QWidget * alienWidget=0x00000000, QWidget * nativeWidget=0x046aecd0, QWidget * * buttonDown=0x65ccff64, QPointer & lastMouseReceiver={...}, bool spontaneous=true) Line 2965 + 0xe bytes C++ QtGuid4.dll!QETWidget::translateMouseEvent(const tagMSG & msg={...}) Line 3171 + 0x2a bytes C++ QtGuid4.dll!QtWndProc(HWND__ * hwnd=0x000409a4, unsigned int message=514, unsigned int wParam=0, long lParam=2359630) Line 1629 + 0xc bytes C++ user32.dll!7e418734() [Frames below may be incorrect and/or missing, no symbols loaded for user32.dll] user32.dll!7e418816() user32.dll!7e4189cd() user32.dll!7e418a10() QtCored4.dll!QEventDispatcherWin32::processEvents(QFlags flags={...}) Line 781 C++ QtGuid4.dll!QGuiEventDispatcherWin32::processEvents(QFlags flags={...}) Line 1145 + 0x15 bytes C++ QtCored4.dll!QEventLoop::processEvents(QFlags flags={...}) Line 150 C++ QtCored4.dll!QEventLoop::exec(QFlags flags={...}) Line 197 + 0x23 bytes C++ QtCored4.dll!QCoreApplication::exec() Line 1003 + 0x15 bytes C++ QtGuid4.dll!QApplication::exec() Line 3582 C++ riverware.exe!rwGUIExecute() Line 140 C++ riverware.exe!interactiveMode(int argc=1, char * * argv=0x0369c750, bool isRunAllowed=true) Line 654 + 0x1c bytes C++ riverware.exe!main(int argc=1, char * * argv=0x0369c750) Line 589 + 0x1a bytes C++ riverware.exe!WinMain(HINSTANCE__ * instance=0x00400000, HINSTANCE__ * prevInstance=0x00000000, char * __formal=0x00151f1d, int cmdShow=1) Line 131 + 0x12 bytes C++ riverware.exe!__tmainCRTStartup() Line 574 + 0x35 bytes C riverware.exe!WinMainCRTStartup() Line 399 C kernel32.dll!7c817077()