Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
XDG Integration
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Silent mode is enabled
All outbound communications are blocked.
Learn more
.
Show more breadcrumbs
JennaHuntsman
XDG Integration
Commits
831fef5a
Commit
831fef5a
authored
3 years ago
by
Rye Mutt
Browse files
Options
Downloads
Patches
Plain Diff
Apply Ansariel's fix for duplicated names in chat
parent
76e2d515
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
indra/llui/llurlentry.cpp
+26
-16
26 additions, 16 deletions
indra/llui/llurlentry.cpp
indra/llui/llurlentry.h
+17
-6
17 additions, 6 deletions
indra/llui/llurlentry.h
with
43 additions
and
22 deletions
indra/llui/llurlentry.cpp
+
26
−
16
View file @
831fef5a
...
@@ -517,8 +517,7 @@ LLUrlEntrySimpleSecondlifeURL::LLUrlEntrySimpleSecondlifeURL()
...
@@ -517,8 +517,7 @@ LLUrlEntrySimpleSecondlifeURL::LLUrlEntrySimpleSecondlifeURL()
// secondlife:///app/agent/0e346d8b-4433-4d66-a6b0-fd37083abc4c/about
// secondlife:///app/agent/0e346d8b-4433-4d66-a6b0-fd37083abc4c/about
// x-grid-location-info://lincoln.lindenlab.com/app/agent/0e346d8b-4433-4d66-a6b0-fd37083abc4c/about
// x-grid-location-info://lincoln.lindenlab.com/app/agent/0e346d8b-4433-4d66-a6b0-fd37083abc4c/about
//
//
LLUrlEntryAgent
::
LLUrlEntryAgent
()
:
LLUrlEntryAgent
::
LLUrlEntryAgent
()
mAvatarNameCacheConnection
()
{
{
mPattern
=
boost
::
regex
(
APP_HEADER_REGEX
"/agent/[
\\
da-f-]+/
\\
w+"
,
mPattern
=
boost
::
regex
(
APP_HEADER_REGEX
"/agent/[
\\
da-f-]+/
\\
w+"
,
boost
::
regex
::
perl
|
boost
::
regex
::
icase
);
boost
::
regex
::
perl
|
boost
::
regex
::
icase
);
...
@@ -549,7 +548,16 @@ void LLUrlEntryAgent::callObservers(const std::string &id,
...
@@ -549,7 +548,16 @@ void LLUrlEntryAgent::callObservers(const std::string &id,
void
LLUrlEntryAgent
::
onAvatarNameCache
(
const
LLUUID
&
id
,
void
LLUrlEntryAgent
::
onAvatarNameCache
(
const
LLUUID
&
id
,
const
LLAvatarName
&
av_name
)
const
LLAvatarName
&
av_name
)
{
{
mAvatarNameCacheConnection
.
disconnect
();
std
::
pair
<
avatar_name_cache_connection_map_t
::
iterator
,
avatar_name_cache_connection_map_t
::
iterator
>
range
;
range
=
mAvatarNameCacheConnections
.
equal_range
(
id
);
for
(
avatar_name_cache_connection_map_t
::
iterator
it
=
range
.
first
;
it
!=
range
.
second
;
++
it
)
{
if
(
it
->
second
.
connected
())
{
it
->
second
.
disconnect
();
}
}
mAvatarNameCacheConnections
.
erase
(
range
.
first
,
range
.
second
);
std
::
string
label
=
av_name
.
getCompleteName
();
std
::
string
label
=
av_name
.
getCompleteName
();
...
@@ -636,11 +644,8 @@ std::string LLUrlEntryAgent::getLabel(const std::string &url, const LLUrlLabelCa
...
@@ -636,11 +644,8 @@ std::string LLUrlEntryAgent::getLabel(const std::string &url, const LLUrlLabelCa
}
}
else
else
{
{
if
(
mAvatarNameCacheConnection
.
connected
())
boost
::
signals2
::
connection
connection
=
LLAvatarNameCache
::
get
(
agent_id
,
boost
::
bind
(
&
LLUrlEntryAgent
::
onAvatarNameCache
,
this
,
_1
,
_2
));
{
mAvatarNameCacheConnections
.
insert
(
std
::
make_pair
(
agent_id
,
connection
));
mAvatarNameCacheConnection
.
disconnect
();
}
mAvatarNameCacheConnection
=
LLAvatarNameCache
::
get
(
agent_id
,
boost
::
bind
(
&
LLUrlEntryAgent
::
onAvatarNameCache
,
this
,
_1
,
_2
));
addObserver
(
agent_id_string
,
url
,
cb
);
addObserver
(
agent_id_string
,
url
,
cb
);
return
LLTrans
::
getString
(
"LoadingData"
);
return
LLTrans
::
getString
(
"LoadingData"
);
}
}
...
@@ -701,14 +706,22 @@ std::string LLUrlEntryAgent::getIcon(const std::string &url)
...
@@ -701,14 +706,22 @@ std::string LLUrlEntryAgent::getIcon(const std::string &url)
// secondlife:///app/agent/0e346d8b-4433-4d66-a6b0-fd37083abc4c/(completename|displayname|username)
// secondlife:///app/agent/0e346d8b-4433-4d66-a6b0-fd37083abc4c/(completename|displayname|username)
// x-grid-location-info://lincoln.lindenlab.com/app/agent/0e346d8b-4433-4d66-a6b0-fd37083abc4c/(completename|displayname|username)
// x-grid-location-info://lincoln.lindenlab.com/app/agent/0e346d8b-4433-4d66-a6b0-fd37083abc4c/(completename|displayname|username)
//
//
LLUrlEntryAgentName
::
LLUrlEntryAgentName
()
:
LLUrlEntryAgentName
::
LLUrlEntryAgentName
()
mAvatarNameCacheConnection
()
{}
{}
void
LLUrlEntryAgentName
::
onAvatarNameCache
(
const
LLUUID
&
id
,
void
LLUrlEntryAgentName
::
onAvatarNameCache
(
const
LLUUID
&
id
,
const
LLAvatarName
&
av_name
)
const
LLAvatarName
&
av_name
)
{
{
mAvatarNameCacheConnection
.
disconnect
();
std
::
pair
<
avatar_name_cache_connection_map_t
::
iterator
,
avatar_name_cache_connection_map_t
::
iterator
>
range
;
range
=
mAvatarNameCacheConnections
.
equal_range
(
id
);
for
(
avatar_name_cache_connection_map_t
::
iterator
it
=
range
.
first
;
it
!=
range
.
second
;
++
it
)
{
if
(
it
->
second
.
connected
())
{
it
->
second
.
disconnect
();
}
}
mAvatarNameCacheConnections
.
erase
(
range
.
first
,
range
.
second
);
std
::
string
label
=
getName
(
av_name
);
std
::
string
label
=
getName
(
av_name
);
// received the agent name from the server - tell our observers
// received the agent name from the server - tell our observers
...
@@ -743,11 +756,8 @@ std::string LLUrlEntryAgentName::getLabel(const std::string &url, const LLUrlLab
...
@@ -743,11 +756,8 @@ std::string LLUrlEntryAgentName::getLabel(const std::string &url, const LLUrlLab
}
}
else
else
{
{
if
(
mAvatarNameCacheConnection
.
connected
())
boost
::
signals2
::
connection
connection
=
LLAvatarNameCache
::
get
(
agent_id
,
boost
::
bind
(
&
LLUrlEntryAgentName
::
onAvatarNameCache
,
this
,
_1
,
_2
));
{
mAvatarNameCacheConnections
.
insert
(
std
::
make_pair
(
agent_id
,
connection
));
mAvatarNameCacheConnection
.
disconnect
();
}
mAvatarNameCacheConnection
=
LLAvatarNameCache
::
get
(
agent_id
,
boost
::
bind
(
&
LLUrlEntryAgentName
::
onAvatarNameCache
,
this
,
_1
,
_2
));
addObserver
(
agent_id_string
,
url
,
cb
);
addObserver
(
agent_id_string
,
url
,
cb
);
return
LLTrans
::
getString
(
"LoadingData"
);
return
LLTrans
::
getString
(
"LoadingData"
);
}
}
...
...
This diff is collapsed.
Click to expand it.
indra/llui/llurlentry.h
+
17
−
6
View file @
831fef5a
...
@@ -212,10 +212,15 @@ class LLUrlEntryAgent : public LLUrlEntryBase
...
@@ -212,10 +212,15 @@ class LLUrlEntryAgent : public LLUrlEntryBase
LLUrlEntryAgent
();
LLUrlEntryAgent
();
~
LLUrlEntryAgent
()
~
LLUrlEntryAgent
()
{
{
if
(
mAvatarNameCacheConnection
.
connected
()
)
for
(
avatar_name_cache_connection_map_t
::
iterator
it
=
mAvatarNameCacheConnections
.
begin
();
it
!=
mAvatarNameCacheConnections
.
end
();
++
it
)
{
{
mAvatarNameCacheConnection
.
disconnect
();
if
(
it
->
second
.
connected
())
{
it
->
second
.
disconnect
();
}
}
}
mAvatarNameCacheConnections
.
clear
();
}
}
/*virtual*/
std
::
string
getLabel
(
const
std
::
string
&
url
,
const
LLUrlLabelCallback
&
cb
);
/*virtual*/
std
::
string
getLabel
(
const
std
::
string
&
url
,
const
LLUrlLabelCallback
&
cb
);
/*virtual*/
std
::
string
getIcon
(
const
std
::
string
&
url
);
/*virtual*/
std
::
string
getIcon
(
const
std
::
string
&
url
);
...
@@ -227,7 +232,8 @@ class LLUrlEntryAgent : public LLUrlEntryBase
...
@@ -227,7 +232,8 @@ class LLUrlEntryAgent : public LLUrlEntryBase
/*virtual*/
void
callObservers
(
const
std
::
string
&
id
,
const
std
::
string
&
label
,
const
std
::
string
&
icon
);
/*virtual*/
void
callObservers
(
const
std
::
string
&
id
,
const
std
::
string
&
label
,
const
std
::
string
&
icon
);
private
:
private
:
void
onAvatarNameCache
(
const
LLUUID
&
id
,
const
LLAvatarName
&
av_name
);
void
onAvatarNameCache
(
const
LLUUID
&
id
,
const
LLAvatarName
&
av_name
);
boost
::
signals2
::
connection
mAvatarNameCacheConnection
;
typedef
std
::
multimap
<
LLUUID
,
boost
::
signals2
::
connection
>
avatar_name_cache_connection_map_t
;
avatar_name_cache_connection_map_t
mAvatarNameCacheConnections
;
};
};
///
///
...
@@ -241,10 +247,14 @@ class LLUrlEntryAgentName : public LLUrlEntryBase, public boost::signals2::track
...
@@ -241,10 +247,14 @@ class LLUrlEntryAgentName : public LLUrlEntryBase, public boost::signals2::track
LLUrlEntryAgentName
();
LLUrlEntryAgentName
();
~
LLUrlEntryAgentName
()
~
LLUrlEntryAgentName
()
{
{
if
(
mAvatarNameCacheConnection
.
connected
()
)
for
(
avatar_name_cache_connection_map_t
::
iterator
it
=
mAvatarNameCacheConnections
.
begin
();
it
!=
mAvatarNameCacheConnections
.
end
();
++
it
)
{
{
mAvatarNameCacheConnection
.
disconnect
();
if
(
it
->
second
.
connected
())
{
it
->
second
.
disconnect
();
}
}
}
mAvatarNameCacheConnections
.
clear
();
}
}
/*virtual*/
std
::
string
getLabel
(
const
std
::
string
&
url
,
const
LLUrlLabelCallback
&
cb
);
/*virtual*/
std
::
string
getLabel
(
const
std
::
string
&
url
,
const
LLUrlLabelCallback
&
cb
);
/*virtual*/
LLStyle
::
Params
getStyle
()
const
;
/*virtual*/
LLStyle
::
Params
getStyle
()
const
;
...
@@ -253,7 +263,8 @@ class LLUrlEntryAgentName : public LLUrlEntryBase, public boost::signals2::track
...
@@ -253,7 +263,8 @@ class LLUrlEntryAgentName : public LLUrlEntryBase, public boost::signals2::track
virtual
std
::
string
getName
(
const
LLAvatarName
&
avatar_name
)
=
0
;
virtual
std
::
string
getName
(
const
LLAvatarName
&
avatar_name
)
=
0
;
private
:
private
:
void
onAvatarNameCache
(
const
LLUUID
&
id
,
const
LLAvatarName
&
av_name
);
void
onAvatarNameCache
(
const
LLUUID
&
id
,
const
LLAvatarName
&
av_name
);
boost
::
signals2
::
connection
mAvatarNameCacheConnection
;
typedef
std
::
multimap
<
LLUUID
,
boost
::
signals2
::
connection
>
avatar_name_cache_connection_map_t
;
avatar_name_cache_connection_map_t
mAvatarNameCacheConnections
;
};
};
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment