From 6cf1ca288f578874c84adf1c3468851d9d1b6f11 Mon Sep 17 00:00:00 2001 From: Paul Teng Date: Sat, 11 May 2019 19:13:48 -0400 Subject: [PATCH 1/7] Do not try to join the Add-channel button --- osu.Game/Online/Chat/ChannelManager.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/osu.Game/Online/Chat/ChannelManager.cs b/osu.Game/Online/Chat/ChannelManager.cs index 8c6422afe3..1165c77977 100644 --- a/osu.Game/Online/Chat/ChannelManager.cs +++ b/osu.Game/Online/Chat/ChannelManager.cs @@ -84,7 +84,11 @@ namespace osu.Game.Online.Chat ?? new Channel(user); } - private void currentChannelChanged(ValueChangedEvent e) => JoinChannel(e.NewValue); + private void currentChannelChanged(ValueChangedEvent e) + { + if (e.NewValue?.Name != "+") + JoinChannel(e.NewValue); + } /// /// Ensure we run post actions in sequence, once at a time. From 3971a495491ac5e0317b7c3b5d462c5271a56a89 Mon Sep 17 00:00:00 2001 From: Paul Teng Date: Sat, 11 May 2019 19:16:15 -0400 Subject: [PATCH 2/7] Ignore Add-channel button --- osu.Game/Overlays/ChatOverlay.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/osu.Game/Overlays/ChatOverlay.cs b/osu.Game/Overlays/ChatOverlay.cs index 221fd35576..6d18d3dae8 100644 --- a/osu.Game/Overlays/ChatOverlay.cs +++ b/osu.Game/Overlays/ChatOverlay.cs @@ -198,6 +198,11 @@ namespace osu.Game.Overlays channelSelectionOverlay.State = Visibility.Visible; return; } + + if (e.NewValue.Name == "+") + { + return; + } textbox.Current.Disabled = e.NewValue.ReadOnly; From c508b8ed6b1a8f3df9a59f904b73c3d1e5abd07a Mon Sep 17 00:00:00 2001 From: Paul Teng Date: Sat, 11 May 2019 19:21:12 -0400 Subject: [PATCH 3/7] Trim whitespace --- osu.Game/Overlays/ChatOverlay.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Game/Overlays/ChatOverlay.cs b/osu.Game/Overlays/ChatOverlay.cs index 6d18d3dae8..fa1c289007 100644 --- a/osu.Game/Overlays/ChatOverlay.cs +++ b/osu.Game/Overlays/ChatOverlay.cs @@ -198,7 +198,7 @@ namespace osu.Game.Overlays channelSelectionOverlay.State = Visibility.Visible; return; } - + if (e.NewValue.Name == "+") { return; From 496a9dd41dc74460463ad3341541874f97f938a7 Mon Sep 17 00:00:00 2001 From: Paul Teng Date: Sun, 12 May 2019 06:02:21 -0400 Subject: [PATCH 4/7] Create separate type for Join-Channel button --- .../Chat/Tabs/ChannelSelectorTabChannel.cs | 15 +++++++++++++++ osu.Game/Overlays/Chat/Tabs/ChannelTabControl.cs | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 osu.Game/Overlays/Chat/Tabs/ChannelSelectorTabChannel.cs diff --git a/osu.Game/Overlays/Chat/Tabs/ChannelSelectorTabChannel.cs b/osu.Game/Overlays/Chat/Tabs/ChannelSelectorTabChannel.cs new file mode 100644 index 0000000000..39c570b239 --- /dev/null +++ b/osu.Game/Overlays/Chat/Tabs/ChannelSelectorTabChannel.cs @@ -0,0 +1,15 @@ +// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. +// See the LICENCE file in the repository root for full licence text. + +using osu.Game.Online.Chat; + +namespace osu.Game.Overlays.Chat.Tabs +{ + public class ChannelSelectorTabChannel : Channel + { + public ChannelSelectorTabChannel() + { + Name = "+"; + } + } +} diff --git a/osu.Game/Overlays/Chat/Tabs/ChannelTabControl.cs b/osu.Game/Overlays/Chat/Tabs/ChannelTabControl.cs index 67d9356b76..1d0dd3f192 100644 --- a/osu.Game/Overlays/Chat/Tabs/ChannelTabControl.cs +++ b/osu.Game/Overlays/Chat/Tabs/ChannelTabControl.cs @@ -38,7 +38,7 @@ namespace osu.Game.Overlays.Chat.Tabs Margin = new MarginPadding(10), }); - AddTabItem(selectorTab = new ChannelSelectorTabItem(new Channel { Name = "+" })); + AddTabItem(selectorTab = new ChannelSelectorTabItem(new ChannelSelectorTabChannel())); ChannelSelectorActive.BindTo(selectorTab.Active); } From d53fb9a5c8b58d54bcedc82c5be5ca3fb62f33b8 Mon Sep 17 00:00:00 2001 From: Paul Teng Date: Sun, 12 May 2019 06:11:16 -0400 Subject: [PATCH 5/7] Check against type instead of channel name --- osu.Game.Tests/Visual/Online/TestCaseChannelTabControl.cs | 2 +- osu.Game/Online/Chat/ChannelManager.cs | 3 ++- osu.Game/Overlays/ChatOverlay.cs | 6 ++---- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/osu.Game.Tests/Visual/Online/TestCaseChannelTabControl.cs b/osu.Game.Tests/Visual/Online/TestCaseChannelTabControl.cs index fdc3d5394f..85488e36e7 100644 --- a/osu.Game.Tests/Visual/Online/TestCaseChannelTabControl.cs +++ b/osu.Game.Tests/Visual/Online/TestCaseChannelTabControl.cs @@ -93,7 +93,7 @@ namespace osu.Game.Tests.Visual.Online AddUntilStep("remove all channels", () => { var first = channelTabControl.Items.First(); - if (first.Name == "+") + if (first is ChannelSelectorTabChannel) return true; channelTabControl.RemoveChannel(first); diff --git a/osu.Game/Online/Chat/ChannelManager.cs b/osu.Game/Online/Chat/ChannelManager.cs index 1165c77977..bf624ccbe7 100644 --- a/osu.Game/Online/Chat/ChannelManager.cs +++ b/osu.Game/Online/Chat/ChannelManager.cs @@ -10,6 +10,7 @@ using osu.Framework.Bindables; using osu.Framework.Logging; using osu.Game.Online.API; using osu.Game.Online.API.Requests; +using osu.Game.Overlays.Chat.Tabs; using osu.Game.Users; namespace osu.Game.Online.Chat @@ -86,7 +87,7 @@ namespace osu.Game.Online.Chat private void currentChannelChanged(ValueChangedEvent e) { - if (e.NewValue?.Name != "+") + if (!(e.NewValue is ChannelSelectorTabChannel)) JoinChannel(e.NewValue); } diff --git a/osu.Game/Overlays/ChatOverlay.cs b/osu.Game/Overlays/ChatOverlay.cs index fa1c289007..a418fb1e78 100644 --- a/osu.Game/Overlays/ChatOverlay.cs +++ b/osu.Game/Overlays/ChatOverlay.cs @@ -199,10 +199,8 @@ namespace osu.Game.Overlays return; } - if (e.NewValue.Name == "+") - { + if (e.NewValue is ChannelSelectorTabChannel) return; - } textbox.Current.Disabled = e.NewValue.ReadOnly; @@ -273,7 +271,7 @@ namespace osu.Game.Overlays private void selectTab(int index) { var channel = channelTabControl.Items.Skip(index).FirstOrDefault(); - if (channel != null && channel.Name != "+") + if (channel != null && !(channel is ChannelSelectorTabChannel)) channelTabControl.Current.Value = channel; } From 8957ad5a7e9f0da1342ee194279b6953b3a62919 Mon Sep 17 00:00:00 2001 From: Paul Teng Date: Sun, 12 May 2019 06:26:03 -0400 Subject: [PATCH 6/7] Instantiate channel in tab item --- osu.Game/Overlays/Chat/Tabs/ChannelSelectorTabItem.cs | 4 ++-- osu.Game/Overlays/Chat/Tabs/ChannelTabControl.cs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/osu.Game/Overlays/Chat/Tabs/ChannelSelectorTabItem.cs b/osu.Game/Overlays/Chat/Tabs/ChannelSelectorTabItem.cs index c26ecfd86f..9f22ab6923 100644 --- a/osu.Game/Overlays/Chat/Tabs/ChannelSelectorTabItem.cs +++ b/osu.Game/Overlays/Chat/Tabs/ChannelSelectorTabItem.cs @@ -13,8 +13,8 @@ namespace osu.Game.Overlays.Chat.Tabs public override bool IsSwitchable => false; - public ChannelSelectorTabItem(Channel value) - : base(value) + public ChannelSelectorTabItem() + : base(new ChannelSelectorTabChannel()) { Depth = float.MaxValue; Width = 45; diff --git a/osu.Game/Overlays/Chat/Tabs/ChannelTabControl.cs b/osu.Game/Overlays/Chat/Tabs/ChannelTabControl.cs index 1d0dd3f192..fafcb0a72d 100644 --- a/osu.Game/Overlays/Chat/Tabs/ChannelTabControl.cs +++ b/osu.Game/Overlays/Chat/Tabs/ChannelTabControl.cs @@ -38,7 +38,7 @@ namespace osu.Game.Overlays.Chat.Tabs Margin = new MarginPadding(10), }); - AddTabItem(selectorTab = new ChannelSelectorTabItem(new ChannelSelectorTabChannel())); + AddTabItem(selectorTab = new ChannelSelectorTabItem()); ChannelSelectorActive.BindTo(selectorTab.Active); } From 7adaa092630f7f41ea268c0a161d326abc5d1564 Mon Sep 17 00:00:00 2001 From: Paul Teng Date: Sun, 12 May 2019 06:31:11 -0400 Subject: [PATCH 7/7] Move tab channel class into tab item class --- .../Visual/Online/TestCaseChannelTabControl.cs | 2 +- osu.Game/Online/Chat/ChannelManager.cs | 2 +- .../Chat/Tabs/ChannelSelectorTabChannel.cs | 15 --------------- .../Overlays/Chat/Tabs/ChannelSelectorTabItem.cs | 8 ++++++++ osu.Game/Overlays/ChatOverlay.cs | 4 ++-- 5 files changed, 12 insertions(+), 19 deletions(-) delete mode 100644 osu.Game/Overlays/Chat/Tabs/ChannelSelectorTabChannel.cs diff --git a/osu.Game.Tests/Visual/Online/TestCaseChannelTabControl.cs b/osu.Game.Tests/Visual/Online/TestCaseChannelTabControl.cs index 85488e36e7..356ede0d57 100644 --- a/osu.Game.Tests/Visual/Online/TestCaseChannelTabControl.cs +++ b/osu.Game.Tests/Visual/Online/TestCaseChannelTabControl.cs @@ -93,7 +93,7 @@ namespace osu.Game.Tests.Visual.Online AddUntilStep("remove all channels", () => { var first = channelTabControl.Items.First(); - if (first is ChannelSelectorTabChannel) + if (first is ChannelSelectorTabItem.ChannelSelectorTabChannel) return true; channelTabControl.RemoveChannel(first); diff --git a/osu.Game/Online/Chat/ChannelManager.cs b/osu.Game/Online/Chat/ChannelManager.cs index bf624ccbe7..2efc9f4968 100644 --- a/osu.Game/Online/Chat/ChannelManager.cs +++ b/osu.Game/Online/Chat/ChannelManager.cs @@ -87,7 +87,7 @@ namespace osu.Game.Online.Chat private void currentChannelChanged(ValueChangedEvent e) { - if (!(e.NewValue is ChannelSelectorTabChannel)) + if (!(e.NewValue is ChannelSelectorTabItem.ChannelSelectorTabChannel)) JoinChannel(e.NewValue); } diff --git a/osu.Game/Overlays/Chat/Tabs/ChannelSelectorTabChannel.cs b/osu.Game/Overlays/Chat/Tabs/ChannelSelectorTabChannel.cs deleted file mode 100644 index 39c570b239..0000000000 --- a/osu.Game/Overlays/Chat/Tabs/ChannelSelectorTabChannel.cs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. -// See the LICENCE file in the repository root for full licence text. - -using osu.Game.Online.Chat; - -namespace osu.Game.Overlays.Chat.Tabs -{ - public class ChannelSelectorTabChannel : Channel - { - public ChannelSelectorTabChannel() - { - Name = "+"; - } - } -} diff --git a/osu.Game/Overlays/Chat/Tabs/ChannelSelectorTabItem.cs b/osu.Game/Overlays/Chat/Tabs/ChannelSelectorTabItem.cs index 9f22ab6923..7386bffb1a 100644 --- a/osu.Game/Overlays/Chat/Tabs/ChannelSelectorTabItem.cs +++ b/osu.Game/Overlays/Chat/Tabs/ChannelSelectorTabItem.cs @@ -31,5 +31,13 @@ namespace osu.Game.Overlays.Chat.Tabs BackgroundInactive = colour.Gray2; BackgroundActive = colour.Gray3; } + + public class ChannelSelectorTabChannel : Channel + { + public ChannelSelectorTabChannel() + { + Name = "+"; + } + } } } diff --git a/osu.Game/Overlays/ChatOverlay.cs b/osu.Game/Overlays/ChatOverlay.cs index a418fb1e78..eb95fabe02 100644 --- a/osu.Game/Overlays/ChatOverlay.cs +++ b/osu.Game/Overlays/ChatOverlay.cs @@ -199,7 +199,7 @@ namespace osu.Game.Overlays return; } - if (e.NewValue is ChannelSelectorTabChannel) + if (e.NewValue is ChannelSelectorTabItem.ChannelSelectorTabChannel) return; textbox.Current.Disabled = e.NewValue.ReadOnly; @@ -271,7 +271,7 @@ namespace osu.Game.Overlays private void selectTab(int index) { var channel = channelTabControl.Items.Skip(index).FirstOrDefault(); - if (channel != null && !(channel is ChannelSelectorTabChannel)) + if (channel != null && !(channel is ChannelSelectorTabItem.ChannelSelectorTabChannel)) channelTabControl.Current.Value = channel; }