OSDN Git Service

Hooked up display names to the main chat console.
authorLatif Khalifa <latifer@streamgrid.net>
Fri, 7 Jan 2011 23:40:13 +0000 (23:40 +0000)
committerLatif Khalifa <latifer@streamgrid.net>
Fri, 7 Jan 2011 23:40:13 +0000 (23:40 +0000)
git-svn-id: https://radegast.googlecode.com/svn/trunk@774 f7a694da-4d33-11de-9ad6-1127a62b9fcd

Radegast/Core/ChatTextManager.cs
Radegast/Core/NameManager.cs
Radegast/GUI/Consoles/ChatConsole.cs
Radegast/GUI/Consoles/VoiceConsole.cs

index 677bb66..12709d9 100644 (file)
@@ -232,7 +232,14 @@ namespace Radegast
             // if (e.SourceType == ChatSourceType.Object) {
             //    sb.Append(e.Position + " ");
             // }
-            sb.Append(e.FromName);
+            if (e.SourceType == ChatSourceType.Agent)
+            {
+                sb.Append(instance.Names.Get(e.SourceID, e.FromName));
+            }
+            else
+            {
+                sb.Append(e.FromName);
+            }
 
             bool isEmote = e.Message.StartsWith("/me ");
 
index 4ff14b1..744c885 100644 (file)
@@ -131,6 +131,8 @@ namespace Radegast
             c.Avatars.UUIDNameReply -= new EventHandler<UUIDNameReplyEventArgs>(Avatars_UUIDNameReply);
         }
 
+        DateTime UUIDNameOnly = new DateTime(1970, 9, 4, 10, 0, 0, DateTimeKind.Utc);
+
         void instance_ClientChanged(object sender, ClientChangedEventArgs e)
         {
             DeregisterEvents(e.OldClient);
@@ -149,6 +151,8 @@ namespace Radegast
                     {
                         names[kvp.Key] = new AgentDisplayName();
                         names[kvp.Key].ID = kvp.Key;
+                        names[kvp.Key].NextUpdate = UUIDNameOnly;
+                        names[kvp.Key].IsDefaultDisplayName = true;
                     }
 
                     string[] parts = kvp.Value.Split(' ');
@@ -196,11 +200,12 @@ namespace Radegast
             {
                 case NameMode.OnlyDisplayName:
                     return n.DisplayName;
-                    break;
 
                 case NameMode.DisplayNameAndUserName:
-                    return string.Format("{0} ({1})", n.DisplayName, n.UserName);
-                    break;
+                    if (n.IsDefaultDisplayName)
+                        return n.DisplayName;
+                    else
+                        return string.Format("{0} ({1})", n.DisplayName, n.UserName);
 
                 default:
                     return n.LegacyFullName;
@@ -217,6 +222,7 @@ namespace Radegast
             }
             return false;
         }
+
         void ProcessDisplayNames(AgentDisplayName[] names)
         {
             Dictionary<UUID, string> ret = new Dictionary<UUID, string>();
@@ -256,6 +262,8 @@ namespace Radegast
                 while (requests.Count > 0)
                     req.Add(requests.Dequeue());
             }
+
+
             if (req.Count > 0)
             {
                 if (!UseDisplayNames)
@@ -321,6 +329,10 @@ namespace Radegast
             {
                 if (names.ContainsKey(agentID))
                 {
+                    if (Mode != NameMode.Standard && names[agentID].NextUpdate == UUIDNameOnly)
+                    {
+                        QueueNameRequest(agentID);
+                    }
                     return FormatName(names[agentID]);
                 }
             }
@@ -328,5 +340,17 @@ namespace Radegast
             QueueNameRequest(agentID);
             return RadegastInstance.INCOMPLETE_NAME;
         }
+
+        public string Get(UUID agentID, string defaultValue)
+        {
+            if (Mode == NameMode.Standard)
+                return defaultValue;
+
+            string name = Get(agentID);
+            if (name == RadegastInstance.INCOMPLETE_NAME)
+                return defaultValue;
+
+            return name;
+        }
     }
 }
index 84a8d8a..4915730 100644 (file)
@@ -205,12 +205,12 @@ namespace Radegast
                         existing.Add(avi.Key);
                         if (!lvwObjects.Items.ContainsKey(avi.Key.ToString()))
                         {
-                            string name = instance.getAvatarName(avi.Key);
+                            string name = instance.Names.Get(avi.Key);
                             ListViewItem item = lvwObjects.Items.Add(avi.Key.ToString(), name, string.Empty);
                             if (avi.Key == client.Self.AgentID)
                             {
                                 // Stops our name saying "Loading..."
-                                item.Text = client.Self.Name;
+                                item.Text = instance.Names.Get(avi.Key, client.Self.Name);
                                 item.Font = new Font(item.Font, FontStyle.Bold);
                             }
                             item.Tag = avi.Key;
@@ -231,6 +231,8 @@ namespace Radegast
 
                         if (key == client.Self.AgentID)
                         {
+                            if (instance.Names.Mode != NameMode.Standard)
+                                item.Text = instance.Names.Get(key);
                             continue;
                         }
 
@@ -276,11 +278,11 @@ namespace Radegast
 
                         if (pos.Z < 0.1)
                         {
-                            item.Text = instance.getAvatarName(key) + " (?m)";
+                            item.Text = instance.Names.Get(key) + " (?m)";
                         }
                         else
                         {
-                            item.Text = instance.getAvatarName(key) + " (" + d + "m)";
+                            item.Text = instance.Names.Get(key) + " (" + d + "m)";
                         }
 
                         if (foundAvi != null)
@@ -544,7 +546,7 @@ namespace Radegast
         {
             if (lvwObjects.SelectedItems.Count == 0) return;
             UUID av = (UUID)lvwObjects.SelectedItems[0].Tag;
-            string name = instance.getAvatarName(av);
+            string name = instance.Names.Get(av);
 
             if (tabConsole.TabExists((client.Self.AgentID ^ av).ToString()))
             {
@@ -632,7 +634,7 @@ namespace Radegast
         {
             if (lvwObjects.SelectedItems.Count == 0) return;
             UUID av = (UUID)lvwObjects.SelectedItems[0].Tag;
-            string name = instance.getAvatarName(av);
+            string name = instance.Names.Get(av);
 
             instance.MainForm.ShowAgentProfile(name, av);
         }
@@ -746,13 +748,13 @@ namespace Radegast
             {
                 InventoryItem item = node.Tag as InventoryItem;
                 client.Inventory.GiveItem(item.UUID, item.Name, item.AssetType, (UUID)litem.Tag, true);
-                instance.TabConsole.DisplayNotificationInChat("Offered item " + item.Name + " to " + instance.getAvatarName((UUID)litem.Tag) + ".");
+                instance.TabConsole.DisplayNotificationInChat("Offered item " + item.Name + " to " + instance.Names.Get((UUID)litem.Tag) + ".");
             }
             else if (node.Tag is InventoryFolder)
             {
                 InventoryFolder folder = node.Tag as InventoryFolder;
                 client.Inventory.GiveFolder(folder.UUID, folder.Name, AssetType.Folder, (UUID)litem.Tag, true);
-                instance.TabConsole.DisplayNotificationInChat("Offered folder " + folder.Name + " to " + instance.getAvatarName((UUID)litem.Tag) + ".");
+                instance.TabConsole.DisplayNotificationInChat("Offered folder " + folder.Name + " to " + instance.Names.Get((UUID)litem.Tag) + ".");
             }
         }
 
@@ -793,7 +795,7 @@ namespace Radegast
         private void ctxPay_Click(object sender, EventArgs e)
         {
             if (lvwObjects.SelectedItems.Count != 1) return;
-            (new frmPay(instance, (UUID)lvwObjects.SelectedItems[0].Tag, instance.getAvatarName((UUID)lvwObjects.SelectedItems[0].Tag), false)).ShowDialog();
+            (new frmPay(instance, (UUID)lvwObjects.SelectedItems[0].Tag, instance.Names.Get((UUID)lvwObjects.SelectedItems[0].Tag), false)).ShowDialog();
         }
 
         private void ChatConsole_VisibleChanged(object sender, EventArgs e)
@@ -818,7 +820,7 @@ namespace Radegast
                 try
                 {
                     UUID agentID = new UUID(item.Tag.ToString());
-                    instance.MainForm.ShowAgentProfile(instance.getAvatarName(agentID), agentID);
+                    instance.MainForm.ShowAgentProfile(instance.Names.Get(agentID), agentID);
                 }
                 catch (Exception) { }
             }
@@ -845,7 +847,7 @@ namespace Radegast
         {
             if (lvwObjects.SelectedItems.Count != 1) return;
             UUID person = (UUID)lvwObjects.SelectedItems[0].Tag;
-            string pname = instance.getAvatarName(person);
+            string pname = instance.Names.Get(person);
             Simulator sim = null;
             Vector3 pos;
 
@@ -901,10 +903,10 @@ namespace Radegast
             System.Windows.Forms.ListViewItem item1 = (System.Windows.Forms.ListViewItem)x;
             System.Windows.Forms.ListViewItem item2 = (System.Windows.Forms.ListViewItem)y;
 
-            if (item1.Text == instance.Client.Self.Name)
+            if ((item1.Tag is UUID) && ((UUID)item1.Tag == instance.Client.Self.AgentID))
                 return -1;
 
-            if (item2.Text == instance.Client.Self.Name)
+            if ((item2.Tag is UUID) && ((UUID)item2.Tag == instance.Client.Self.AgentID))
                 return 1;
 
             int distance1 = int.MaxValue, distance2 = int.MaxValue;
index ecc2e96..958d258 100644 (file)
@@ -57,7 +57,7 @@ namespace Radegast
         private GridClient client { get { return instance.Client; } }
         private TabsConsole tabConsole;
         private OSDMap config;
-        public VoiceGateway gateway;
+        public VoiceGateway gateway = null;
         public VoiceSession session;
         private VoiceParticipant selected;
 
@@ -71,8 +71,6 @@ namespace Radegast
             // Callbacks
             netcom.ClientLoginStatus += new EventHandler<LoginProgressEventArgs>(netcom_ClientLoginStatus);
 
-            gateway = new VoiceGateway(this.instance.Client);
-
             this.instance.MainForm.Load += new EventHandler(MainForm_Load);
 
             config = instance.GlobalSettings["voice"] as OSDMap;
@@ -91,6 +89,11 @@ namespace Radegast
 
         private void Start()
         {
+            if (gateway == null)
+            {
+                gateway = new VoiceGateway(this.instance.Client);
+            }
+
             // Initialize progress bar
             progressBar1.Maximum = (int)VoiceGateway.ConnectionState.SessionRunning;
             SetProgress(0);
@@ -386,8 +389,11 @@ namespace Radegast
             try
             {
                 netcom.ClientLoginStatus -= new EventHandler<LoginProgressEventArgs>(netcom_ClientLoginStatus);
-                UnregisterClientEvents();
-                gateway.Stop();
+                if (gateway != null)
+                {
+                    UnregisterClientEvents();
+                    gateway.Stop();
+                }
             }
             catch { }
         }