From 0133ada0a8c30618e39d261fdbda9589f3ff74a3 Mon Sep 17 00:00:00 2001 From: Lehonti Ramos <17771375+Lehonti@users.noreply.github.com> Date: Tue, 26 Sep 2023 01:07:10 +0200 Subject: [PATCH] In `Avalonia.ReactiveUI`, simplified null checks for delegate invocations (#13023) Co-authored-by: Lehonti Ramos --- .../AutoCompleteBox/AutoCompleteBox.cs | 5 +---- src/Avalonia.Controls/Calendar/Calendar.cs | 5 +---- src/Avalonia.Controls/DefinitionBase.cs | 2 +- .../Documents/InlineCollection.cs | 17 ++++------------ .../Flyouts/PopupFlyoutBase.cs | 5 +---- src/Avalonia.Controls/Primitives/Popup.cs | 5 +---- src/Avalonia.Controls/Primitives/Track.cs | 20 ++++--------------- .../SplitButton/SplitButton.cs | 10 ++-------- 8 files changed, 15 insertions(+), 54 deletions(-) diff --git a/src/Avalonia.Controls/AutoCompleteBox/AutoCompleteBox.cs b/src/Avalonia.Controls/AutoCompleteBox/AutoCompleteBox.cs index 6790a2fc41..6f56499191 100644 --- a/src/Avalonia.Controls/AutoCompleteBox/AutoCompleteBox.cs +++ b/src/Avalonia.Controls/AutoCompleteBox/AutoCompleteBox.cs @@ -1490,10 +1490,7 @@ namespace Avalonia.Controls _view?.AddRange(_newViewItems); // Clear the evaluator to discard a reference to the last item - if (_valueBindingEvaluator != null) - { - _valueBindingEvaluator.ClearDataContext(); - } + _valueBindingEvaluator?.ClearDataContext(); // indicate that filtering is not ongoing anymore _filterInAction = false; diff --git a/src/Avalonia.Controls/Calendar/Calendar.cs b/src/Avalonia.Controls/Calendar/Calendar.cs index 6468d0b4e8..c587668b11 100644 --- a/src/Avalonia.Controls/Calendar/Calendar.cs +++ b/src/Avalonia.Controls/Calendar/Calendar.cs @@ -2059,10 +2059,7 @@ namespace Avalonia.Controls Debug.Assert(e.NewValue is bool, "NewValue should be a boolean!"); bool isEnabled = (bool)e.NewValue; - if (MonthControl != null) - { - MonthControl.UpdateDisabled(isEnabled); - } + MonthControl?.UpdateDisabled(isEnabled); } static Calendar() diff --git a/src/Avalonia.Controls/DefinitionBase.cs b/src/Avalonia.Controls/DefinitionBase.cs index d0752b8aa6..8483a80f36 100644 --- a/src/Avalonia.Controls/DefinitionBase.cs +++ b/src/Avalonia.Controls/DefinitionBase.cs @@ -72,7 +72,7 @@ namespace Avalonia.Controls LayoutWasUpdated = true; // defer verification for shared definitions - if (_sharedState != null) { _sharedState.EnsureDeferredValidation(grid); } + _sharedState?.EnsureDeferredValidation(grid); } /// diff --git a/src/Avalonia.Controls/Documents/InlineCollection.cs b/src/Avalonia.Controls/Documents/InlineCollection.cs index 39750d3672..ef3e4799b6 100644 --- a/src/Avalonia.Controls/Documents/InlineCollection.cs +++ b/src/Avalonia.Controls/Documents/InlineCollection.cs @@ -140,10 +140,7 @@ namespace Avalonia.Controls.Documents /// protected void Invalidate() { - if (InlineHost != null) - { - InlineHost.Invalidate(); - } + InlineHost?.Invalidate(); Invalidated?.Invoke(this, EventArgs.Empty); } @@ -154,15 +151,9 @@ namespace Avalonia.Controls.Documents { if (oldParent != newParent) { - if (oldParent != null) - { - oldParent.Remove(child); - } - - if (newParent != null) - { - newParent.Add(child); - } + oldParent?.Remove(child); + + newParent?.Add(child); } } } diff --git a/src/Avalonia.Controls/Flyouts/PopupFlyoutBase.cs b/src/Avalonia.Controls/Flyouts/PopupFlyoutBase.cs index c3cf1f4897..08b6137246 100644 --- a/src/Avalonia.Controls/Flyouts/PopupFlyoutBase.cs +++ b/src/Avalonia.Controls/Flyouts/PopupFlyoutBase.cs @@ -256,10 +256,7 @@ namespace Avalonia.Controls.Primitives else { var nextFocus = KeyboardNavigationHandler.GetNext(Popup.Child, NavigationDirection.Next); - if (nextFocus != null) - { - nextFocus.Focus(); - } + nextFocus?.Focus(); } } else if (ShowMode == FlyoutShowMode.TransientWithDismissOnPointerMoveAway) diff --git a/src/Avalonia.Controls/Primitives/Popup.cs b/src/Avalonia.Controls/Primitives/Popup.cs index 7ac219aa83..343e71d698 100644 --- a/src/Avalonia.Controls/Primitives/Popup.cs +++ b/src/Avalonia.Controls/Primitives/Popup.cs @@ -750,10 +750,7 @@ namespace Avalonia.Controls.Primitives else { var anc = this.FindLogicalAncestorOfType(); - if (anc != null) - { - anc.Focus(); - } + anc?.Focus(); } } } diff --git a/src/Avalonia.Controls/Primitives/Track.cs b/src/Avalonia.Controls/Primitives/Track.cs index d823455e13..ca55361d8e 100644 --- a/src/Avalonia.Controls/Primitives/Track.cs +++ b/src/Avalonia.Controls/Primitives/Track.cs @@ -229,18 +229,12 @@ namespace Avalonia.Controls.Primitives offset = offset.WithY(isDirectionReversed ? decreaseButtonLength + thumbLength : 0.0); pieceSize = pieceSize.WithHeight(increaseButtonLength); - if (IncreaseButton != null) - { - IncreaseButton.Arrange(new Rect(offset, pieceSize)); - } + IncreaseButton?.Arrange(new Rect(offset, pieceSize)); offset = offset.WithY(isDirectionReversed ? 0.0 : increaseButtonLength + thumbLength); pieceSize = pieceSize.WithHeight(decreaseButtonLength); - if (DecreaseButton != null) - { - DecreaseButton.Arrange(new Rect(offset, pieceSize)); - } + DecreaseButton?.Arrange(new Rect(offset, pieceSize)); offset = offset.WithY(isDirectionReversed ? decreaseButtonLength : increaseButtonLength); pieceSize = pieceSize.WithHeight(thumbLength); @@ -264,18 +258,12 @@ namespace Avalonia.Controls.Primitives offset = offset.WithX(isDirectionReversed ? increaseButtonLength + thumbLength : 0.0); pieceSize = pieceSize.WithWidth(decreaseButtonLength); - if (DecreaseButton != null) - { - DecreaseButton.Arrange(new Rect(offset, pieceSize)); - } + DecreaseButton?.Arrange(new Rect(offset, pieceSize)); offset = offset.WithX(isDirectionReversed ? 0.0 : decreaseButtonLength + thumbLength); pieceSize = pieceSize.WithWidth(increaseButtonLength); - if (IncreaseButton != null) - { - IncreaseButton.Arrange(new Rect(offset, pieceSize)); - } + IncreaseButton?.Arrange(new Rect(offset, pieceSize)); offset = offset.WithX(isDirectionReversed ? increaseButtonLength : decreaseButtonLength); pieceSize = pieceSize.WithWidth(thumbLength); diff --git a/src/Avalonia.Controls/SplitButton/SplitButton.cs b/src/Avalonia.Controls/SplitButton/SplitButton.cs index bc46e549eb..c421fdc581 100644 --- a/src/Avalonia.Controls/SplitButton/SplitButton.cs +++ b/src/Avalonia.Controls/SplitButton/SplitButton.cs @@ -144,10 +144,7 @@ namespace Avalonia.Controls /// protected void OpenFlyout() { - if (Flyout != null) - { - Flyout.ShowAt(this); - } + Flyout?.ShowAt(this); } /// @@ -155,10 +152,7 @@ namespace Avalonia.Controls /// protected void CloseFlyout() { - if (Flyout != null) - { - Flyout.Hide(); - } + Flyout?.Hide(); } ///