From 7b5e359f55e64c06f9a019999b72b9d027526c73 Mon Sep 17 00:00:00 2001 From: Paul Guslisty Date: Wed, 30 Jun 2010 19:38:33 +0300 Subject: EXT-8011 FIXED Location input should be disabled after disconnect - Implemented LLDestroyClass::destroyClass() in LLPanelTopInfoBar and in LLNavigationBar to disable navigation and paneltopinfobar afer disconnection forced Reviewed by Vadim Savchuk at https://codereview.productengine.com/secondlife/r/659/ --HG-- branch : product-engine --- indra/newview/llnavigationbar.h | 11 ++++++++++- indra/newview/llpaneltopinfobar.h | 15 ++++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) (limited to 'indra') diff --git a/indra/newview/llnavigationbar.h b/indra/newview/llnavigationbar.h index b512f2a79c..03f17af09b 100644 --- a/indra/newview/llnavigationbar.h +++ b/indra/newview/llnavigationbar.h @@ -87,9 +87,10 @@ protected: * Web browser-like navigation bar. */ class LLNavigationBar - : public LLPanel, public LLSingleton + : public LLPanel, public LLSingleton, private LLDestroyClass { LOG_CLASS(LLNavigationBar); + friend class LLDestroyClass; public: LLNavigationBar(); @@ -136,6 +137,14 @@ private: void fillSearchComboBox(); + static void destroyClass() + { + if (LLNavigationBar::instanceExists()) + { + LLNavigationBar::getInstance()->setEnabled(FALSE); + } + } + LLMenuGL* mTeleportHistoryMenu; LLPullButton* mBtnBack; LLPullButton* mBtnForward; diff --git a/indra/newview/llpaneltopinfobar.h b/indra/newview/llpaneltopinfobar.h index e417a06a64..6e6fbc08ab 100644 --- a/indra/newview/llpaneltopinfobar.h +++ b/indra/newview/llpaneltopinfobar.h @@ -40,10 +40,12 @@ class LLTextBox; class LLIconCtrl; class LLParcelChangeObserver; -class LLPanelTopInfoBar : public LLPanel, public LLSingleton +class LLPanelTopInfoBar : public LLPanel, public LLSingleton, private LLDestroyClass { LOG_CLASS(LLPanelTopInfoBar); + friend class LLDestroyClass; + public: LLPanelTopInfoBar(); ~LLPanelTopInfoBar(); @@ -145,6 +147,17 @@ private: */ void setParcelInfoText(const std::string& new_text); + /** + * Implementation of LLDestroyClass + */ + static void destroyClass() + { + if (LLPanelTopInfoBar::instanceExists()) + { + LLPanelTopInfoBar::getInstance()->setEnabled(FALSE); + } + } + LLButton* mInfoBtn; LLTextBox* mParcelInfoText; LLTextBox* mDamageText; -- cgit v1.2.3