From 3c616d627bcaa28e0e7d31eb8f6c04e3847adb3d Mon Sep 17 00:00:00 2001
From: Ychebotarev ProductEngine <ychebotarev@productengine.com>
Date: Thu, 28 Jan 2010 09:16:13 +0200
Subject: fix for EXT-4742 Group Info panel state resets on save

--HG--
branch : product-engine
---
 indra/newview/llpanelgroup.cpp | 15 ++++++++++++---
 indra/newview/llpanelgroup.h   |  7 +------
 2 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/indra/newview/llpanelgroup.cpp b/indra/newview/llpanelgroup.cpp
index 1d447a22d7..23db7ad226 100644
--- a/indra/newview/llpanelgroup.cpp
+++ b/indra/newview/llpanelgroup.cpp
@@ -89,8 +89,8 @@ BOOL LLPanelGroupTab::postBuild()
 LLPanelGroup::LLPanelGroup()
 :	LLPanel(),
 	LLGroupMgrObserver( LLUUID() ),
-	mAllowEdit( TRUE )
-	,mShowingNotifyDialog(false)
+	mSkipRefresh(FALSE),
+	mShowingNotifyDialog(false)
 {
 	// Set up the factory callbacks.
 	// Roles sub tabs
@@ -168,7 +168,6 @@ BOOL LLPanelGroup::postBuild()
 
 	button = getChild<LLButton>("btn_refresh");
 	button->setClickedCallback(onBtnRefresh, this);
-	button->setVisible(mAllowEdit);
 
 	getChild<LLButton>("btn_create")->setVisible(false);
 
@@ -492,7 +491,12 @@ bool LLPanelGroup::apply(LLPanelGroupTab* tab)
 	
 	std::string apply_mesg;
 	if(tab->apply( apply_mesg ) )
+	{
+		//we skip refreshing group after ew manually apply changes since its very annoying
+		//for those who are editing group
+		mSkipRefresh = TRUE;
 		return true;
+	}
 		
 	if ( !apply_mesg.empty() )
 	{
@@ -539,6 +543,11 @@ void LLPanelGroup::draw()
 
 void LLPanelGroup::refreshData()
 {
+	if(mSkipRefresh)
+	{
+		mSkipRefresh = FALSE;
+		return;
+	}
 	LLGroupMgr::getInstance()->clearGroupData(getID());
 
 	setGroupID(getID());
diff --git a/indra/newview/llpanelgroup.h b/indra/newview/llpanelgroup.h
index 8c84695677..6e23eedffb 100644
--- a/indra/newview/llpanelgroup.h
+++ b/indra/newview/llpanelgroup.h
@@ -85,9 +85,6 @@ public:
 
 	virtual void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE);
 
-	void setAllowEdit(BOOL v) { mAllowEdit = v; }
-
-	
 	static void refreshCreatedGroup(const LLUUID& group_id);
 
 	static void showNotice(const std::string& subject,
@@ -126,7 +123,7 @@ protected:
 
 	LLTimer mRefreshTimer;
 
-	BOOL mAllowEdit;
+	BOOL mSkipRefresh;
 
 	std::string mDefaultNeedsApplyMesg;
 	std::string mWantApplyMesg;
@@ -169,8 +166,6 @@ public:
 
 	virtual BOOL isVisibleByAgent(LLAgent* agentp);
 
-	void setAllowEdit(BOOL v) { mAllowEdit = v; }
-
 	virtual void setGroupID(const LLUUID& id) {mGroupID = id;};
 
 	void notifyObservers() {};
-- 
cgit v1.2.3