Remove the display name floater
parent
83543e556c
commit
7fb7e93a13
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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>);
|
||||
}
|
||||
|
|
@ -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
|
||||
|
|
@ -37,7 +37,6 @@
|
|||
#include "llfloaterreg.h"
|
||||
#include "llhints.h"
|
||||
#include "llviewercontrol.h"
|
||||
#include "llviewerdisplayname.h"
|
||||
|
||||
// Linden libraries
|
||||
#include "llavatarnamecache.h" // IDEVO
|
||||
|
|
|
|||
|
|
@ -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");
|
||||
|
|
@ -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
|
||||
|
|
@ -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>);
|
||||
|
|
|
|||
Loading…
Reference in New Issue