aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/newview/llappviewer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'linden/indra/newview/llappviewer.cpp')
-rw-r--r--linden/indra/newview/llappviewer.cpp54
1 files changed, 44 insertions, 10 deletions
diff --git a/linden/indra/newview/llappviewer.cpp b/linden/indra/newview/llappviewer.cpp
index 9851e47..6c740dd 100644
--- a/linden/indra/newview/llappviewer.cpp
+++ b/linden/indra/newview/llappviewer.cpp
@@ -682,12 +682,11 @@ bool LLAppViewer::init()
682 LLUIImageList::getInstance(), 682 LLUIImageList::getInstance(),
683 ui_audio_callback, 683 ui_audio_callback,
684 &LLUI::sGLScaleFactor); 684 &LLUI::sGLScaleFactor);
685
686 LLWeb::initClass(); // do this after LLUI 685 LLWeb::initClass(); // do this after LLUI
687 LLTextEditor::setURLCallbacks(&LLWeb::loadURL, 686 LLTextEditor::setURLCallbacks(&LLWeb::loadURL,
688 &LLURLDispatcher::dispatchFromTextEditor, 687 &LLURLDispatcher::dispatchFromTextEditor,
689 &LLURLDispatcher::dispatchFromTextEditor); 688 &LLURLDispatcher::dispatchFromTextEditor);
690 689
691 LLUICtrlFactory::getInstance()->setupPaths(); // update paths with correct language set 690 LLUICtrlFactory::getInstance()->setupPaths(); // update paths with correct language set
692 691
693 ///////////////////////////////////////////////// 692 /////////////////////////////////////////////////
@@ -767,6 +766,8 @@ bool LLAppViewer::init()
767 CreateLCDDebugWindows(); 766 CreateLCDDebugWindows();
768#endif 767#endif
769 768
769 LLFolderViewItem::initClass(); // SJB: Needs to happen after initWindow(), not sure why but related to fonts
770
770 gGLManager.getGLInfo(gDebugInfo); 771 gGLManager.getGLInfo(gDebugInfo);
771 gGLManager.printGLInfoString(); 772 gGLManager.printGLInfoString();
772 773
@@ -941,6 +942,7 @@ bool LLAppViewer::mainLoop()
941 LLFastTimer t3(LLFastTimer::FTM_IDLE); 942 LLFastTimer t3(LLFastTimer::FTM_IDLE);
942 idle(); 943 idle();
943 944
945 if (gAres != NULL && gAres->isInitialized())
944 { 946 {
945 pingMainloopTimeout("Main:ServicePump"); 947 pingMainloopTimeout("Main:ServicePump");
946 LLFastTimer t4(LLFastTimer::FTM_PUMP); 948 LLFastTimer t4(LLFastTimer::FTM_PUMP);
@@ -1077,14 +1079,17 @@ bool LLAppViewer::mainLoop()
1077 1079
1078 } 1080 }
1079 catch(std::bad_alloc) 1081 catch(std::bad_alloc)
1080 { 1082 {
1081 llwarns << "Bad memory allocation in LLAppViewer::mainLoop()!" << llendl ;
1082
1083 //stop memory leaking simulation 1083 //stop memory leaking simulation
1084 if(LLFloaterMemLeak::getInstance()) 1084 if(LLFloaterMemLeak::getInstance())
1085 { 1085 {
1086 LLFloaterMemLeak::getInstance()->stop() ; 1086 LLFloaterMemLeak::getInstance()->stop() ;
1087 } 1087 llwarns << "Bad memory allocation in LLAppViewer::mainLoop()!" << llendl ;
1088 }
1089 else
1090 {
1091 llerrs << "Bad memory allocation in LLAppViewer::mainLoop()!" << llendl ;
1092 }
1088 } 1093 }
1089 } 1094 }
1090 1095
@@ -1279,6 +1284,7 @@ bool LLAppViewer::cleanup()
1279 //LLVolumeMgr::cleanupClass(); 1284 //LLVolumeMgr::cleanupClass();
1280 LLPrimitive::cleanupVolumeManager(); 1285 LLPrimitive::cleanupVolumeManager();
1281 LLWorldMapView::cleanupClass(); 1286 LLWorldMapView::cleanupClass();
1287 LLFolderViewItem::cleanupClass();
1282 LLUI::cleanupClass(); 1288 LLUI::cleanupClass();
1283 1289
1284 // 1290 //
@@ -1480,7 +1486,7 @@ bool LLAppViewer::initLogging()
1480 return true; 1486 return true;
1481} 1487}
1482 1488
1483void LLAppViewer::loadSettingsFromDirectory(ELLPath path_index, bool set_defaults) 1489bool LLAppViewer::loadSettingsFromDirectory(ELLPath path_index, bool set_defaults)
1484{ 1490{
1485 for(LLSD::map_iterator itr = mSettingsFileList.beginMap(); itr != mSettingsFileList.endMap(); ++itr) 1491 for(LLSD::map_iterator itr = mSettingsFileList.beginMap(); itr != mSettingsFileList.endMap(); ++itr)
1486 { 1492 {
@@ -1515,13 +1521,24 @@ void LLAppViewer::loadSettingsFromDirectory(ELLPath path_index, bool set_default
1515 } 1521 }
1516 if(!gSettings[settings_name]->loadFromFile(full_settings_path, set_defaults)) 1522 if(!gSettings[settings_name]->loadFromFile(full_settings_path, set_defaults))
1517 { 1523 {
1518 llwarns << "Cannot load " << full_settings_path << " - No settings found." << llendl; 1524 // If attempting to load the default global settings (app_settings/settings.xml)
1525 // fails, the app should error and quit.
1526 if(path_index == LL_PATH_APP_SETTINGS && settings_name == sGlobalSettingsName)
1527 {
1528 llwarns << "Error: Cannot load default settings from: " << full_settings_path << llendl;
1529 return false;
1530 }
1531 else
1532 {
1533 llwarns << "Cannot load " << full_settings_path << " - No settings found." << llendl;
1534 }
1519 } 1535 }
1520 else 1536 else
1521 { 1537 {
1522 llinfos << "Loaded settings file " << full_settings_path << llendl; 1538 llinfos << "Loaded settings file " << full_settings_path << llendl;
1523 } 1539 }
1524 } 1540 }
1541 return true;
1525} 1542}
1526 1543
1527std::string LLAppViewer::getSettingsFileName(const std::string& file) 1544std::string LLAppViewer::getSettingsFileName(const std::string& file)
@@ -1563,7 +1580,19 @@ bool LLAppViewer::initConfiguration()
1563 1580
1564 // - load defaults 1581 // - load defaults
1565 bool set_defaults = true; 1582 bool set_defaults = true;
1566 loadSettingsFromDirectory(LL_PATH_APP_SETTINGS, set_defaults); 1583 if(!loadSettingsFromDirectory(LL_PATH_APP_SETTINGS, set_defaults))
1584 {
1585 std::ostringstream msg;
1586 msg << "Second Life could not load its default settings file. \n"
1587 << "The installation may be corrupted. \n";
1588
1589 OSMessageBox(
1590 msg.str(),
1591 LLStringUtil::null,
1592 OSMB_OK);
1593
1594 return false;
1595 }
1567 1596
1568 // - set procedural settings 1597 // - set procedural settings
1569 gSavedSettings.setString("ClientSettingsFile", 1598 gSavedSettings.setString("ClientSettingsFile",
@@ -1710,7 +1739,7 @@ bool LLAppViewer::initConfiguration()
1710 1739
1711 OSMessageBox( 1740 OSMessageBox(
1712 msg.str().c_str(), 1741 msg.str().c_str(),
1713 NULL, 1742 LLStringUtil::null,
1714 OSMB_OK); 1743 OSMB_OK);
1715 1744
1716 return false; 1745 return false;
@@ -2331,6 +2360,11 @@ void LLAppViewer::handleViewerCrash()
2331 { 2360 {
2332 gDebugInfo["CurrentSimHost"] = gAgent.getRegionHost().getHostName(); 2361 gDebugInfo["CurrentSimHost"] = gAgent.getRegionHost().getHostName();
2333 gDebugInfo["CurrentRegion"] = gAgent.getRegion()->getName(); 2362 gDebugInfo["CurrentRegion"] = gAgent.getRegion()->getName();
2363
2364 const LLVector3& loc = gAgent.getPositionAgent();
2365 gDebugInfo["CurrentLocationX"] = loc.mV[0];
2366 gDebugInfo["CurrentLocationY"] = loc.mV[1];
2367 gDebugInfo["CurrentLocationZ"] = loc.mV[2];
2334 } 2368 }
2335 2369
2336 if(LLAppViewer::instance()->mMainloopTimeout) 2370 if(LLAppViewer::instance()->mMainloopTimeout)