diff options
Diffstat (limited to 'indra')
-rw-r--r-- | indra/newview/llpanellogin.cpp | 63 | ||||
-rw-r--r-- | indra/newview/llpanellogin.h | 2 |
2 files changed, 18 insertions, 47 deletions
diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp index 30f0a5ba39..144839b554 100644 --- a/indra/newview/llpanellogin.cpp +++ b/indra/newview/llpanellogin.cpp @@ -167,7 +167,6 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect, mCallback(callback), mCallbackData(cb_data), mHtmlAvailable( TRUE ), - mLocationUpdated( FALSE ), mListener(new LLPanelLoginListener(this)) { setFocusRoot(TRUE); @@ -227,9 +226,7 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect, LLSLURL slurl(gSavedSettings.getString("LoginLocation")); LLStartUp::setStartSLURL(slurl); } - - LLComboBox* location_choice_combo = sInstance->getChild<LLComboBox>("start_location_combo"); - location_choice_combo->setFocusLostCallback(boost::bind(onLocationComboLostFocus, _1)); + updateLocationCombo(false); LLComboBox* server_choice_combo = sInstance->getChild<LLComboBox>("server_combo"); server_choice_combo->setCommitCallback(onSelectServer, NULL); @@ -678,29 +675,23 @@ void LLPanelLogin::updateLocationCombo( bool force_visible ) return; } - if ( ! sInstance->mLocationUpdated ) + LLComboBox* combo = sInstance->getChild<LLComboBox>("start_location_combo"); + + switch(LLStartUp::getStartSLURL().getType()) { - LLComboBox* combo = sInstance->getChild<LLComboBox>("start_location_combo"); - - // get combo box to a known state so we can test its dirty state later - combo->resetDirty(); - - switch(LLStartUp::getStartSLURL().getType()) + case LLSLURL::LOCATION: { - case LLSLURL::LOCATION: - { - - combo->setCurrentByIndex( 2 ); - combo->setTextEntry(LLStartUp::getStartSLURL().getLocationString()); - break; - } - case LLSLURL::HOME_LOCATION: - combo->setCurrentByIndex(1); - break; - default: - combo->setCurrentByIndex(0); - break; + + combo->setCurrentByIndex( 2 ); + combo->setTextEntry(LLStartUp::getStartSLURL().getLocationString()); + break; } + case LLSLURL::HOME_LOCATION: + combo->setCurrentByIndex(1); + break; + default: + combo->setCurrentByIndex(0); + break; } BOOL show_start = TRUE; @@ -1149,11 +1140,14 @@ void LLPanelLogin::onSelectServer(LLUICtrl*, void*) combo_val = combo->getValue(); } + combo = sInstance->getChild<LLComboBox>("start_location_combo"); + combo->setCurrentByIndex(1); LLStartUp::setStartSLURL(LLSLURL(gSavedSettings.getString("LoginLocation"))); LLGridManager::getInstance()->setGridChoice(combo_val.asString()); // This new selection will override preset uris // from the command line. updateServer(); + updateLocationCombo(false); updateLoginPanelLinks(); } @@ -1171,27 +1165,6 @@ void LLPanelLogin::onServerComboLostFocus(LLFocusableElement* fe) } } -void LLPanelLogin::onLocationComboLostFocus(LLFocusableElement* fe) -{ - if (!sInstance) - { - return; - } - - LLComboBox* combo = sInstance->getChild< LLComboBox> ( "start_location_combo" ); - if ( fe == combo ) - { - if ( combo->isDirty() ) - { - sInstance->mLocationUpdated = TRUE; - } - else - { - sInstance->mLocationUpdated = FALSE; - } - } -} - void LLPanelLogin::updateLoginPanelLinks() { LLSD grid_data; diff --git a/indra/newview/llpanellogin.h b/indra/newview/llpanellogin.h index cbf2b1fcf3..aa6884ea97 100644 --- a/indra/newview/llpanellogin.h +++ b/indra/newview/llpanellogin.h @@ -100,7 +100,6 @@ private: static void onPassKey(LLLineEditor* caller, void* user_data); static void onSelectServer(LLUICtrl*, void*); static void onServerComboLostFocus(LLFocusableElement*); - static void onLocationComboLostFocus(LLFocusableElement*); static void updateServerCombo(); static void updateStartSLURL(); @@ -118,7 +117,6 @@ private: static LLPanelLogin* sInstance; static BOOL sCapslockDidNotification; BOOL mHtmlAvailable; - BOOL mLocationUpdated; }; std::string load_password_from_disk(void); |