From 7fb7e93a13356655e0827c083072e67fe1823fd4 Mon Sep 17 00:00:00 2001
From: Rider Linden <rider@lindenlab.com>
Date: Thu, 28 May 2015 12:48:08 -0700
Subject: [PATCH] Remove the display name floater

---
 indra/newview/CMakeLists.txt           |   4 -
 indra/newview/llfloaterdisplayname.cpp | 217 -------------------------
 indra/newview/llfloaterdisplayname.h   |  38 -----
 indra/newview/llpanelme.cpp            |   1 -
 indra/newview/llviewerdisplayname.cpp  | 211 ------------------------
 indra/newview/llviewerdisplayname.h    |  53 ------
 indra/newview/llviewerfloaterreg.cpp   |   2 -
 7 files changed, 526 deletions(-)
 delete mode 100755 indra/newview/llfloaterdisplayname.cpp
 delete mode 100755 indra/newview/llfloaterdisplayname.h
 delete mode 100755 indra/newview/llviewerdisplayname.cpp
 delete mode 100755 indra/newview/llviewerdisplayname.h

diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index ada27c0282f..3553e3a6125 100755
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -231,7 +231,6 @@ set(viewer_SOURCE_FILES
     llfloaterconversationpreview.cpp
     llfloaterdeleteenvpreset.cpp
     llfloaterdestinations.cpp
-    llfloaterdisplayname.cpp
     llfloatereditdaycycle.cpp
     llfloatereditsky.cpp
     llfloatereditwater.cpp
@@ -612,7 +611,6 @@ set(viewer_SOURCE_FILES
     llviewercontrol.cpp
     llviewercontrollistener.cpp
     llviewerdisplay.cpp
-    llviewerdisplayname.cpp
     llviewerfloaterreg.cpp
     llviewerfoldertype.cpp
     llviewergenericmessage.cpp
@@ -835,7 +833,6 @@ set(viewer_HEADER_FILES
     llfloaterconversationpreview.h
     llfloaterdeleteenvpreset.h
     llfloaterdestinations.h
-    llfloaterdisplayname.h
     llfloatereditdaycycle.h
     llfloatereditsky.h
     llfloatereditwater.h
@@ -1209,7 +1206,6 @@ set(viewer_HEADER_FILES
     llviewercontrol.h
     llviewercontrollistener.h
     llviewerdisplay.h
-    llviewerdisplayname.h
     llviewerfloaterreg.h
     llviewerfoldertype.h
     llviewergenericmessage.h
diff --git a/indra/newview/llfloaterdisplayname.cpp b/indra/newview/llfloaterdisplayname.cpp
deleted file mode 100755
index 596e8c0dbef..00000000000
--- a/indra/newview/llfloaterdisplayname.cpp
+++ /dev/null
@@ -1,217 +0,0 @@
-/** 
- * @file llfloaterdisplayname.cpp
- * @author Leyla Farazha
- * @brief Implementation of the LLFloaterDisplayName class.
- *
- * $LicenseInfo:firstyear=2002&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-
-#include "llviewerprecompiledheaders.h"
-#include "llfloaterreg.h"
-#include "llfloater.h"
-
-#include "llnotificationsutil.h"
-#include "llviewerdisplayname.h"
-
-#include "llnotifications.h"
-#include "llfloaterdisplayname.h"
-#include "llavatarnamecache.h"
-
-#include "llagent.h"
-
-
-class LLFloaterDisplayName : public LLFloater
-{
-public:
-	LLFloaterDisplayName(const LLSD& key);
-	virtual ~LLFloaterDisplayName() { }
-	/*virtual*/	BOOL	postBuild();
-	void onSave();
-	void onReset();
-	void onCancel();
-	/*virtual*/ void onOpen(const LLSD& key);
-	
-private:
-	
-	void onCacheSetName(bool success,
-										  const std::string& reason,
-										  const LLSD& content);
-};
-
-LLFloaterDisplayName::LLFloaterDisplayName(const LLSD& key) :
-	LLFloater(key)
-{
-}
-
-void LLFloaterDisplayName::onOpen(const LLSD& key)
-{
-	getChild<LLUICtrl>("display_name_editor")->clear();
-	getChild<LLUICtrl>("display_name_confirm")->clear();
-
-	LLAvatarName av_name;
-	LLAvatarNameCache::get(gAgent.getID(), &av_name);
-
-	F64 now_secs = LLDate::now().secondsSinceEpoch();
-
-	if (now_secs < av_name.mNextUpdate)
-	{
-		// ...can't update until some time in the future
-		F64 next_update_local_secs =
-			av_name.mNextUpdate - LLStringOps::getLocalTimeOffset();
-		LLDate next_update_local(next_update_local_secs);
-		// display as "July 18 12:17 PM"
-		std::string next_update_string =
-		next_update_local.toHTTPDateString("%B %d %I:%M %p");
-		getChild<LLUICtrl>("lockout_text")->setTextArg("[TIME]", next_update_string);
-		getChild<LLUICtrl>("lockout_text")->setVisible(true);
-		getChild<LLUICtrl>("save_btn")->setEnabled(false);
-		getChild<LLUICtrl>("display_name_editor")->setEnabled(false);
-		getChild<LLUICtrl>("display_name_confirm")->setEnabled(false);
-		getChild<LLUICtrl>("cancel_btn")->setFocus(TRUE);
-		
-	}
-	else
-	{
-		getChild<LLUICtrl>("lockout_text")->setVisible(false);
-		getChild<LLUICtrl>("save_btn")->setEnabled(true);
-		getChild<LLUICtrl>("display_name_editor")->setEnabled(true);
-		getChild<LLUICtrl>("display_name_confirm")->setEnabled(true);
-
-	}
-}
-
-BOOL LLFloaterDisplayName::postBuild()
-{
-	getChild<LLUICtrl>("reset_btn")->setCommitCallback(boost::bind(&LLFloaterDisplayName::onReset, this));	
-	getChild<LLUICtrl>("cancel_btn")->setCommitCallback(boost::bind(&LLFloaterDisplayName::onCancel, this));	
-	getChild<LLUICtrl>("save_btn")->setCommitCallback(boost::bind(&LLFloaterDisplayName::onSave, this));	
-	
-	center();
-
-	return TRUE;
-}
-
-void LLFloaterDisplayName::onCacheSetName(bool success,
-										  const std::string& reason,
-										  const LLSD& content)
-{
-	if (success)
-	{
-		// Inform the user that the change took place, but will take a while
-		// to percolate.
-		LLSD args;
-		args["DISPLAY_NAME"] = content["display_name"];
-		LLNotificationsUtil::add("SetDisplayNameSuccess", args);
-		return;
-	}
-
-	// Request failed, notify the user
-	std::string error_tag = content["error_tag"].asString();
-	LL_INFOS() << "set name failure error_tag " << error_tag << LL_ENDL;
-
-	// We might have a localized string for this message
-	// error_args will usually be empty from the server.
-	if (!error_tag.empty()
-		&& LLNotifications::getInstance()->templateExists(error_tag))
-	{
-		LLNotificationsUtil::add(error_tag);
-		return;
-	}
-
-	// The server error might have a localized message for us
-	std::string lang_code = LLUI::getLanguage();
-	LLSD error_desc = content["error_description"];
-	if (error_desc.has( lang_code ))
-	{
-		LLSD args;
-		args["MESSAGE"] = error_desc[lang_code].asString();
-		LLNotificationsUtil::add("GenericAlert", args);
-		return;
-	}
-
-	// No specific error, throw a generic one
-	LLNotificationsUtil::add("SetDisplayNameFailedGeneric");
-}
-
-void LLFloaterDisplayName::onCancel()
-{
-	setVisible(false);
-}
-
-void LLFloaterDisplayName::onReset()
-{
-	if (LLAvatarNameCache::hasNameLookupURL())
-	{
-		LLViewerDisplayName::set("",boost::bind(&LLFloaterDisplayName::onCacheSetName, this, _1, _2, _3));
-	}	
-	else
-	{
-		LLNotificationsUtil::add("SetDisplayNameFailedGeneric");
-	}
-	
-	setVisible(false);
-}
-
-
-void LLFloaterDisplayName::onSave()
-{
-	std::string display_name_utf8 = getChild<LLUICtrl>("display_name_editor")->getValue().asString();
-	std::string display_name_confirm = getChild<LLUICtrl>("display_name_confirm")->getValue().asString();
-
-	if (display_name_utf8.compare(display_name_confirm))
-	{
-		LLNotificationsUtil::add("SetDisplayNameMismatch");
-		return;
-	}
-
-	const U32 DISPLAY_NAME_MAX_LENGTH = 31; // characters, not bytes
-	LLWString display_name_wstr = utf8string_to_wstring(display_name_utf8);
-	if (display_name_wstr.size() > DISPLAY_NAME_MAX_LENGTH)
-	{
-		LLSD args;
-		args["LENGTH"] = llformat("%d", DISPLAY_NAME_MAX_LENGTH);
-		LLNotificationsUtil::add("SetDisplayNameFailedLength", args);
-		return;
-	}
-	
-	if (LLAvatarNameCache::hasNameLookupURL())
-	{
-		LLViewerDisplayName::set(display_name_utf8,boost::bind(&LLFloaterDisplayName::onCacheSetName, this, _1, _2, _3));	
-	}
-	else
-	{
-		LLNotificationsUtil::add("SetDisplayNameFailedGeneric");
-	}
-
-	setVisible(false);
-}
-
-
-//////////////////////////////////////////////////////////////////////////////
-// LLInspectObjectUtil
-//////////////////////////////////////////////////////////////////////////////
-void LLFloaterDisplayNameUtil::registerFloater()
-{
-	LLFloaterReg::add("display_name", "floater_display_name.xml",
-					  &LLFloaterReg::build<LLFloaterDisplayName>);
-}
diff --git a/indra/newview/llfloaterdisplayname.h b/indra/newview/llfloaterdisplayname.h
deleted file mode 100755
index a00bf56712c..00000000000
--- a/indra/newview/llfloaterdisplayname.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/** 
- * @file llfloaterdisplayname.h
- *
- * $LicenseInfo:firstyear=2009&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-#ifndef LLFLOATERDISPLAYNAME_H
-#define LLFLOATERDISPLAYNAME_H
-
-
-namespace LLFloaterDisplayNameUtil
-{
-	// Register with LLFloaterReg
-	void registerFloater();
-}
-
-
-
-#endif
diff --git a/indra/newview/llpanelme.cpp b/indra/newview/llpanelme.cpp
index cedd3025fc4..55e4ffff5e1 100755
--- a/indra/newview/llpanelme.cpp
+++ b/indra/newview/llpanelme.cpp
@@ -37,7 +37,6 @@
 #include "llfloaterreg.h"
 #include "llhints.h"
 #include "llviewercontrol.h"
-#include "llviewerdisplayname.h"
 
 // Linden libraries
 #include "llavatarnamecache.h"		// IDEVO
diff --git a/indra/newview/llviewerdisplayname.cpp b/indra/newview/llviewerdisplayname.cpp
deleted file mode 100755
index e390e8776db..00000000000
--- a/indra/newview/llviewerdisplayname.cpp
+++ /dev/null
@@ -1,211 +0,0 @@
-/** 
- * @file llviewerdisplayname.cpp
- * @brief Wrapper for display name functionality
- *
- * $LicenseInfo:firstyear=2010&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-#include "llviewerprecompiledheaders.h"
-
-#include "llviewerdisplayname.h"
-
-// viewer includes
-#include "llagent.h"
-#include "llviewerregion.h"
-#include "llvoavatar.h"
-
-// library includes
-#include "llavatarnamecache.h"
-#include "llhttpclient.h"
-#include "llhttpnode.h"
-#include "llnotificationsutil.h"
-#include "llui.h"					// getLanguage()
-
-namespace LLViewerDisplayName
-{
-	// Fired when viewer receives server response to display name change
-	set_name_signal_t sSetDisplayNameSignal;
-
-	// Fired when there is a change in the agent's name
-	name_changed_signal_t sNameChangedSignal;
-
-	void addNameChangedCallback(const name_changed_signal_t::slot_type& cb) 
-	{ 
-		sNameChangedSignal.connect(cb); 
-	}
-
-	void doNothing() { }
-}
-
-class LLSetDisplayNameResponder : public LLHTTPClient::Responder
-{
-	LOG_CLASS(LLSetDisplayNameResponder);
-private:
-	// only care about errors
-	/*virtual*/ void httpFailure()
-	{
-		LL_WARNS() << dumpResponse() << LL_ENDL;
-		LLViewerDisplayName::sSetDisplayNameSignal(false, "", LLSD());
-		LLViewerDisplayName::sSetDisplayNameSignal.disconnect_all_slots();
-	}
-};
-
-void LLViewerDisplayName::set(const std::string& display_name, const set_name_slot_t& slot)
-{
-	// TODO: simple validation here
-
-	LLViewerRegion* region = gAgent.getRegion();
-	llassert(region);
-	std::string cap_url = region->getCapability("SetDisplayName");
-	if (cap_url.empty())
-	{
-		// this server does not support display names, report error
-		slot(false, "unsupported", LLSD());
-		return;
-	}
-
-	// People API can return localized error messages.  Indicate our
-	// language preference via header.
-	LLSD headers;
-	headers[HTTP_OUT_HEADER_ACCEPT_LANGUAGE] = LLUI::getLanguage();
-
-	// People API requires both the old and new value to change a variable.
-	// Our display name will be in cache before the viewer's UI is available
-	// to request a change, so we can use direct lookup without callback.
-	LLAvatarName av_name;
-	if (!LLAvatarNameCache::get( gAgent.getID(), &av_name))
-	{
-		slot(false, "name unavailable", LLSD());
-		return;
-	}
-
-	// People API expects array of [ "old value", "new value" ]
-	LLSD change_array = LLSD::emptyArray();
-	change_array.append(av_name.getDisplayName());
-	change_array.append(display_name);
-	
-	LL_INFOS() << "Set name POST to " << cap_url << LL_ENDL;
-
-	// Record our caller for when the server sends back a reply
-	sSetDisplayNameSignal.connect(slot);
-	
-	// POST the requested change.  The sim will not send a response back to
-	// this request directly, rather it will send a separate message after it
-	// communicates with the back-end.
-	LLSD body;
-	body["display_name"] = change_array;
-	LLHTTPClient::post(cap_url, body, new LLSetDisplayNameResponder, headers);
-}
-
-class LLSetDisplayNameReply : public LLHTTPNode
-{
-	LOG_CLASS(LLSetDisplayNameReply);
-public:
-	/*virtual*/ void post(
-		LLHTTPNode::ResponsePtr response,
-		const LLSD& context,
-		const LLSD& input) const
-	{
-		LLSD body = input["body"];
-
-		S32 status = body["status"].asInteger();
-		bool success = (status == HTTP_OK);
-		std::string reason = body["reason"].asString();
-		LLSD content = body["content"];
-
-		LL_INFOS() << "status " << status << " reason " << reason << LL_ENDL;
-
-		// If viewer's concept of display name is out-of-date, the set request
-		// will fail with 409 Conflict.  If that happens, fetch up-to-date
-		// name information.
-		if (status == HTTP_CONFLICT)
-		{
-			LLUUID agent_id = gAgent.getID();
-			// Flush stale data
-			LLAvatarNameCache::erase( agent_id );
-			// Queue request for new data: nothing to do on callback though...
-			// Note: no need to disconnect the callback as it never gets out of scope
-			LLAvatarNameCache::get(agent_id, boost::bind(&LLViewerDisplayName::doNothing));
-			// Kill name tag, as it is wrong
-			LLVOAvatar::invalidateNameTag( agent_id );
-		}
-
-		// inform caller of result
-		LLViewerDisplayName::sSetDisplayNameSignal(success, reason, content);
-		LLViewerDisplayName::sSetDisplayNameSignal.disconnect_all_slots();
-	}
-};
-
-
-class LLDisplayNameUpdate : public LLHTTPNode
-{
-	/*virtual*/ void post(
-		LLHTTPNode::ResponsePtr response,
-		const LLSD& context,
-		const LLSD& input) const
-	{
-		LLSD body = input["body"];
-		LLUUID agent_id = body["agent_id"];
-		std::string old_display_name = body["old_display_name"];
-		// By convention this record is called "agent" in the People API
-		LLSD name_data = body["agent"];
-
-		// Inject the new name data into cache
-		LLAvatarName av_name;
-		av_name.fromLLSD( name_data );
-
-		LL_INFOS() << "name-update now " << LLDate::now()
-			<< " next_update " << LLDate(av_name.mNextUpdate)
-			<< LL_ENDL;
-
-		// Name expiration time may be provided in headers, or we may use a
-		// default value
-		// *TODO: get actual headers out of ResponsePtr
-		//LLSD headers = response->mHeaders;
-		LLSD headers;
-		av_name.mExpires = 
-			LLAvatarNameCache::nameExpirationFromHeaders(headers);
-
-		LLAvatarNameCache::insert(agent_id, av_name);
-
-		// force name tag to update
-		LLVOAvatar::invalidateNameTag(agent_id);
-
-		LLSD args;
-		args["OLD_NAME"] = old_display_name;
-		args["SLID"] = av_name.getUserName();
-		args["NEW_NAME"] = av_name.getDisplayName();
-		LLNotificationsUtil::add("DisplayNameUpdate", args);
-		if (agent_id == gAgent.getID())
-		{
-			LLViewerDisplayName::sNameChangedSignal();
-		}
-	}
-};
-
-LLHTTPRegistration<LLSetDisplayNameReply>
-    gHTTPRegistrationMessageSetDisplayNameReply(
-		"/message/SetDisplayNameReply");
-
-LLHTTPRegistration<LLDisplayNameUpdate>
-    gHTTPRegistrationMessageDisplayNameUpdate(
-		"/message/DisplayNameUpdate");
diff --git a/indra/newview/llviewerdisplayname.h b/indra/newview/llviewerdisplayname.h
deleted file mode 100755
index 16d59ae43b2..00000000000
--- a/indra/newview/llviewerdisplayname.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/** 
- * @file llviewerdisplayname.h
- * @brief Wrapper for display name functionality
- *
- * $LicenseInfo:firstyear=2010&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- * 
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- * 
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
- * $/LicenseInfo$
- */
-
-#ifndef LLVIEWERDISPLAYNAME_H
-#define LLVIEWERDISPLAYNAME_H
-
-#include <boost/signals2.hpp>
-
-class LLSD;
-class LLUUID;
-
-namespace LLViewerDisplayName
-{
-	typedef boost::signals2::signal<
-		void (bool success, const std::string& reason, const LLSD& content)>
-			set_name_signal_t;
-	typedef set_name_signal_t::slot_type set_name_slot_t;
-	
-	typedef boost::signals2::signal<void (void)> name_changed_signal_t;
-	typedef name_changed_signal_t::slot_type name_changed_slot_t;
-
-	// Sends an update to the server to change a display name
-	// and call back when done.  May not succeed due to service
-	// unavailable or name not available.
-	void set(const std::string& display_name, const set_name_slot_t& slot); 
-	
-	void addNameChangedCallback(const name_changed_signal_t::slot_type& cb);
-}
-
-#endif // LLVIEWERDISPLAYNAME_H
diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp
index fc18b20758f..55d69528a8c 100755
--- a/indra/newview/llviewerfloaterreg.cpp
+++ b/indra/newview/llviewerfloaterreg.cpp
@@ -56,7 +56,6 @@
 #include "llfloaterconversationpreview.h"
 #include "llfloaterdeleteenvpreset.h"
 #include "llfloaterdestinations.h"
-#include "llfloaterdisplayname.h"
 #include "llfloatereditdaycycle.h"
 #include "llfloatereditsky.h"
 #include "llfloatereditwater.h"
@@ -238,7 +237,6 @@ void LLViewerFloaterReg::registerFloaters()
 	LLInspectRemoteObjectUtil::registerFloater();
 	LLFloaterVoiceVolumeUtil::registerFloater();
 	LLNotificationsUI::registerFloater();
-	LLFloaterDisplayNameUtil::registerFloater();
 	
 	LLFloaterReg::add("lagmeter", "floater_lagmeter.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterLagMeter>);
 	LLFloaterReg::add("land_holdings", "floater_land_holdings.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterLandHoldings>);
-- 
GitLab