summaryrefslogtreecommitdiff
path: root/indra/newview/llstartup.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llstartup.cpp')
-rwxr-xr-x[-rw-r--r--]indra/newview/llstartup.cpp40
1 files changed, 33 insertions, 7 deletions
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index 218c35029e..42648b82c2 100644..100755
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -362,6 +362,15 @@ bool idle_startup()
if ( STATE_FIRST == LLStartUp::getStartupState() )
{
+ static bool first_call = true;
+ if (first_call)
+ {
+ // Other phases get handled when startup state changes,
+ // need to capture the initial state as well.
+ LLStartUp::getPhases().startPhase(LLStartUp::getStartupStateString());
+ first_call = false;
+ }
+
gViewerWindow->showCursor();
gViewerWindow->getWindow()->setCursor(UI_CURSOR_WAIT);
@@ -721,12 +730,14 @@ bool idle_startup()
if (STATE_LOGIN_SHOW == LLStartUp::getStartupState())
{
- LL_DEBUGS("AppInit") << "Initializing Window" << LL_ENDL;
+ LL_DEBUGS("AppInit") << "Initializing Window, show_connect_box = "
+ << show_connect_box << LL_ENDL;
// if we've gone backwards in the login state machine, to this state where we show the UI
// AND the debug setting to exit in this case is true, then go ahead and bail quickly
if ( mLoginStatePastUI && gSavedSettings.getBOOL("QuitOnLoginActivated") )
{
+ LL_DEBUGS("AppInit") << "taking QuitOnLoginActivated exit" << LL_ENDL;
// no requirement for notification here - just exit
LLAppViewer::instance()->earlyExitNoNotify();
}
@@ -739,6 +750,7 @@ bool idle_startup()
// this startup phase more than once.
if (gLoginMenuBarView == NULL)
{
+ LL_DEBUGS("AppInit") << "initializing menu bar" << LL_ENDL;
display_startup();
initialize_edit_menu();
initialize_spellcheck_menu();
@@ -749,11 +761,13 @@ bool idle_startup()
if (show_connect_box)
{
+ LL_DEBUGS("AppInit") << "show_connect_box on" << LL_ENDL;
// Load all the name information out of the login view
// NOTE: Hits "Attempted getFields with no login view shown" warning, since we don't
// show the login view until login_show() is called below.
if (gUserCredential.isNull())
{
+ LL_DEBUGS("AppInit") << "loading credentials from gLoginHandler" << LL_ENDL;
display_startup();
gUserCredential = gLoginHandler.initializeLoginInfo();
display_startup();
@@ -770,17 +784,28 @@ bool idle_startup()
login_show();
display_startup();
// connect dialog is already shown, so fill in the names
- if (gUserCredential.notNull())
- {
- LLPanelLogin::setFields( gUserCredential, gRememberPassword);
- }
+ if (gUserCredential.notNull())
+ {
+ LLPanelLogin::setFields( gUserCredential, gRememberPassword);
+ }
display_startup();
LLPanelLogin::giveFocus();
+ if (gSavedSettings.getBOOL("FirstLoginThisInstall"))
+ {
+ LL_INFOS("AppInit") << "FirstLoginThisInstall, calling show_first_run_dialog()" << LL_ENDL;
+ show_first_run_dialog();
+ }
+ else
+ {
+ LL_DEBUGS("AppInit") << "FirstLoginThisInstall off" << LL_ENDL;
+ }
+
LLStartUp::setStartupState( STATE_LOGIN_WAIT ); // Wait for user input
}
else
{
+ LL_DEBUGS("AppInit") << "show_connect_box off, skipping to STATE_LOGIN_CLEANUP" << LL_ENDL;
// skip directly to message template verification
LLStartUp::setStartupState( STATE_LOGIN_CLEANUP );
}
@@ -2704,9 +2729,10 @@ void LLStartUp::setStartupState( EStartupState state )
getStartupStateString() << " to " <<
startupStateToString(state) << LL_ENDL;
- sPhases->stopPhase(getStartupStateString());
+ getPhases().stopPhase(getStartupStateString());
gStartupState = state;
- sPhases->startPhase(getStartupStateString());
+ getPhases().startPhase(getStartupStateString());
+
postStartupState();
}