Browse Source

Merge pull request #1653 from AvaloniaUI/fix-inspection

Fix the inspection errors.
pull/1657/head
Jeremy Koritzinsky 8 years ago
committed by GitHub
parent
commit
707e4aed72
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      samples/ControlCatalog/DecoratedWindow.xaml.cs
  2. 2
      src/Avalonia.Controls/AutoCompleteBox.cs
  3. 95
      src/Avalonia.Controls/Calendar/Calendar.cs
  4. 2
      src/Avalonia.Controls/Calendar/CalendarDateRange.cs
  5. 31
      src/Avalonia.Controls/Calendar/CalendarItem.cs
  6. 2
      src/Avalonia.Controls/Calendar/DatePicker.cs
  7. 2
      src/Avalonia.Controls/Embedding/Offscreen/OffscreenTopLevel.cs
  8. 2
      src/Avalonia.Controls/Platform/InProcessDragSource.cs
  9. 5
      src/Avalonia.Themes.Default/Calendar.xaml
  10. 3
      src/Markup/Avalonia.Markup/Data/MultiBinding.cs
  11. 2
      src/Windows/Avalonia.Win32/SystemDialogImpl.cs

4
samples/ControlCatalog/DecoratedWindow.xaml.cs

@ -20,7 +20,7 @@ namespace ControlCatalog
ctl.Cursor = new Cursor(cursor);
ctl.PointerPressed += delegate
{
PlatformImpl.BeginResizeDrag(edge);
PlatformImpl?.BeginResizeDrag(edge);
};
}
@ -29,7 +29,7 @@ namespace ControlCatalog
AvaloniaXamlLoader.Load(this);
this.FindControl<Control>("TitleBar").PointerPressed += delegate
{
PlatformImpl.BeginMoveDrag();
PlatformImpl?.BeginMoveDrag();
};
SetupSide("Left", StandardCursorType.LeftSide, WindowEdge.West);
SetupSide("Right", StandardCursorType.RightSide, WindowEdge.East);

2
src/Avalonia.Controls/AutoCompleteBox.cs

@ -2150,7 +2150,7 @@ namespace Avalonia.Controls
}
// Update the view
if (e.Action == NotifyCollectionChangedAction.Remove || e.Action == NotifyCollectionChangedAction.Replace)
if ((e.Action == NotifyCollectionChangedAction.Remove || e.Action == NotifyCollectionChangedAction.Replace) && e.OldItems != null)
{
for (int index = 0; index < e.OldItems.Count; index++)
{

95
src/Avalonia.Controls/Calendar/Calendar.cs

@ -769,7 +769,7 @@ namespace Avalonia.Controls
}
private static void UpdateDisplayDate(Calendar c, DateTime addedDate, DateTime removedDate)
{
Debug.Assert(c != null, "c should not be null!");
Contract.Requires<ArgumentNullException>(c != null);
// If DisplayDate < DisplayDateStart, DisplayDate = DisplayDateStart
if (DateTime.Compare(addedDate, c.DisplayDateRangeStart) < 0)
@ -1016,8 +1016,6 @@ namespace Avalonia.Controls
internal CalendarDayButton FindDayButtonFromDay(DateTime day)
{
CalendarDayButton b;
DateTime? d;
CalendarItem monthControl = MonthControl;
// REMOVE_RTM: should be updated if we support MultiCalendar
@ -1028,14 +1026,16 @@ namespace Avalonia.Controls
{
for (int childIndex = ColumnsPerMonth; childIndex < count; childIndex++)
{
b = monthControl.MonthView.Children[childIndex] as CalendarDayButton;
d = b.DataContext as DateTime?;
if (d.HasValue)
if (monthControl.MonthView.Children[childIndex] is CalendarDayButton b)
{
if (DateTimeHelper.CompareDays(d.Value, day) == 0)
var d = b.DataContext as DateTime?;
if (d.HasValue)
{
return b;
if (DateTimeHelper.CompareDays(d.Value, day) == 0)
{
return b;
}
}
}
}
@ -1044,20 +1044,6 @@ namespace Avalonia.Controls
return null;
}
private void Calendar_SizeChanged(object sender, EventArgs e)
{
Debug.Assert(sender is Calendar, "The sender should be a Calendar!");
var size = Bounds.Size;
RectangleGeometry rg = new RectangleGeometry();
rg.Rect = new Rect(0, 0, size.Width, size.Height);
if (Root != null)
{
Root.Clip = rg;
}
}
private void OnSelectedMonthChanged(DateTime? selectedMonth)
{
if (selectedMonth.HasValue)
@ -1090,7 +1076,6 @@ namespace Avalonia.Controls
internal void ResetStates()
{
CalendarDayButton d;
CalendarItem monthControl = MonthControl;
int count = RowsPerMonth * ColumnsPerMonth;
if (monthControl != null)
@ -1099,7 +1084,7 @@ namespace Avalonia.Controls
{
for (int childIndex = ColumnsPerMonth; childIndex < count; childIndex++)
{
d = monthControl.MonthView.Children[childIndex] as CalendarDayButton;
var d = (CalendarDayButton)monthControl.MonthView.Children[childIndex];
d.IgnoreMouseOverState();
}
}
@ -1190,8 +1175,6 @@ namespace Avalonia.Controls
if (HoverEnd != null && HoverStart != null)
{
int startIndex, endIndex, i;
CalendarDayButton b;
DateTime? d;
CalendarItem monthControl = MonthControl;
// This assumes a contiguous set of dates:
@ -1201,18 +1184,20 @@ namespace Avalonia.Controls
for (i = startIndex; i <= endIndex; i++)
{
b = monthControl.MonthView.Children[i] as CalendarDayButton;
b.IsSelected = true;
d = b.DataContext as DateTime?;
if (d.HasValue && DateTimeHelper.CompareDays(HoverEnd.Value, d.Value) == 0)
if (monthControl.MonthView.Children[i] is CalendarDayButton b)
{
if (FocusButton != null)
b.IsSelected = true;
var d = b.DataContext as DateTime?;
if (d.HasValue && DateTimeHelper.CompareDays(HoverEnd.Value, d.Value) == 0)
{
FocusButton.IsCurrent = false;
if (FocusButton != null)
{
FocusButton.IsCurrent = false;
}
b.IsCurrent = HasFocusInternal;
FocusButton = b;
}
b.IsCurrent = HasFocusInternal;
FocusButton = b;
}
}
}
@ -1228,8 +1213,6 @@ namespace Avalonia.Controls
if (HoverEnd != null && HoverStart != null)
{
CalendarItem monthControl = MonthControl;
CalendarDayButton b;
DateTime? d;
if (HoverEndIndex != null && HoverStartIndex != null)
{
@ -1240,15 +1223,17 @@ namespace Avalonia.Controls
{
for (i = startIndex; i <= endIndex; i++)
{
b = monthControl.MonthView.Children[i] as CalendarDayButton;
d = b.DataContext as DateTime?;
if (d.HasValue)
if (monthControl.MonthView.Children[i] is CalendarDayButton b)
{
if (!SelectedDates.Contains(d.Value))
var d = b.DataContext as DateTime?;
if (d.HasValue)
{
b.IsSelected = false;
}
if (!SelectedDates.Contains(d.Value))
{
b.IsSelected = false;
}
}
}
}
}
@ -1257,7 +1242,7 @@ namespace Avalonia.Controls
// It is SingleRange
for (i = startIndex; i <= endIndex; i++)
{
(monthControl.MonthView.Children[i] as CalendarDayButton).IsSelected = false;
((CalendarDayButton)monthControl.MonthView.Children[i]).IsSelected = false;
}
}
}
@ -1628,16 +1613,15 @@ namespace Avalonia.Controls
e.Handled = true;
}
}
internal void Calendar_KeyDown(object sender, KeyEventArgs e)
{
Calendar c = sender as Calendar;
Debug.Assert(c != null, "c should not be null!");
if (!e.Handled && c.IsEnabled)
internal void Calendar_KeyDown(KeyEventArgs e)
{
if (!e.Handled && IsEnabled)
{
e.Handled = ProcessCalendarKey(e);
}
}
internal bool ProcessCalendarKey(KeyEventArgs e)
{
if (DisplayMode == CalendarMode.Month)
@ -1976,7 +1960,7 @@ namespace Avalonia.Controls
}
}
}
private void Calendar_KeyUp(object sender, KeyEventArgs e)
private void Calendar_KeyUp(KeyEventArgs e)
{
if (!e.Handled && (e.Key == Key.LeftShift || e.Key == Key.RightShift))
{
@ -2083,6 +2067,9 @@ namespace Avalonia.Controls
DisplayDateProperty.Changed.AddClassHandler<Calendar>(x => x.OnDisplayDateChanged);
DisplayDateStartProperty.Changed.AddClassHandler<Calendar>(x => x.OnDisplayDateStartChanged);
DisplayDateEndProperty.Changed.AddClassHandler<Calendar>(x => x.OnDisplayDateEndChanged);
KeyDownEvent.AddClassHandler<Calendar>(x => x.Calendar_KeyDown);
KeyUpEvent.AddClassHandler<Calendar>(x => x.Calendar_KeyUp);
}
/// <summary>
@ -2122,10 +2109,6 @@ namespace Avalonia.Controls
month.Owner = this;
}
}
LayoutUpdated += Calendar_SizeChanged;
KeyDown += Calendar_KeyDown;
KeyUp += Calendar_KeyUp;
}
}

2
src/Avalonia.Controls/Calendar/CalendarDateRange.cs

@ -66,7 +66,7 @@ namespace Avalonia.Controls
/// <returns>Inherited code: Requires comment 2.</returns>
internal bool ContainsAny(CalendarDateRange range)
{
Debug.Assert(range != null, "range should not be null!");
Contract.Requires<ArgumentNullException>(range != null);
int start = DateTime.Compare(Start, range.Start);

31
src/Avalonia.Controls/Calendar/CalendarItem.cs

@ -517,7 +517,7 @@ namespace Avalonia.Controls.Primitives
for (int childIndex = Calendar.ColumnsPerMonth; childIndex < count; childIndex++)
{
CalendarDayButton childButton = MonthView.Children[childIndex] as CalendarDayButton;
Debug.Assert(childButton != null, "childButton should not be null!");
Contract.Requires<ArgumentNullException>(childButton != null);
childButton.Index = childIndex;
SetButtonState(childButton, dateToAdd);
@ -554,7 +554,7 @@ namespace Avalonia.Controls.Primitives
for (int i = childIndex; i < count; i++)
{
childButton = MonthView.Children[i] as CalendarDayButton;
Debug.Assert(childButton != null, "childButton should not be null!");
Contract.Requires<ArgumentNullException>(childButton != null);
// button needs a content to occupy the necessary space
// for the content presenter
childButton.Content = i.ToString(DateTimeHelper.GetCurrentDateFormat());
@ -650,7 +650,7 @@ namespace Avalonia.Controls.Primitives
foreach (object child in YearView.Children)
{
CalendarButton childButton = child as CalendarButton;
Debug.Assert(childButton != null, "childButton should not be null!");
Contract.Requires<ArgumentNullException>(childButton != null);
// There should be no time component. Time is 12:00 AM
DateTime day = new DateTime(_currentMonth.Year, count + 1, 1);
childButton.DataContext = day;
@ -746,7 +746,7 @@ namespace Avalonia.Controls.Primitives
foreach (object child in YearView.Children)
{
CalendarButton childButton = child as CalendarButton;
Debug.Assert(childButton != null, "childButton should not be null!");
Contract.Requires<ArgumentNullException>(childButton != null);
year = decade + count;
if (year <= DateTime.MaxValue.Year && year >= DateTime.MinValue.Year)
@ -826,7 +826,7 @@ namespace Avalonia.Controls.Primitives
{
Owner.Focus();
}
Button b = sender as Button;
Button b = (Button)sender;
DateTime d;
if (b.IsEnabled)
@ -863,7 +863,7 @@ namespace Avalonia.Controls.Primitives
Owner.Focus();
}
Button b = sender as Button;
Button b = (Button)sender;
if (b.IsEnabled)
{
Owner.OnPreviousClick();
@ -878,7 +878,7 @@ namespace Avalonia.Controls.Primitives
{
Owner.Focus();
}
Button b = sender as Button;
Button b = (Button)sender;
if (b.IsEnabled)
{
@ -891,8 +891,7 @@ namespace Avalonia.Controls.Primitives
{
if (Owner != null)
{
CalendarDayButton b = sender as CalendarDayButton;
if (_isMouseLeftButtonDown && b != null && b.IsEnabled && !b.IsBlackout)
if (_isMouseLeftButtonDown && sender is CalendarDayButton b && b.IsEnabled && !b.IsBlackout)
{
// Update the states of all buttons to be selected starting
// from HoverStart to b
@ -918,7 +917,7 @@ namespace Avalonia.Controls.Primitives
Debug.Assert(b.DataContext != null, "The DataContext should not be null!");
Owner.UnHighlightDays();
Owner.HoverEndIndex = b.Index;
Owner.HoverEnd = (DateTime)b.DataContext;
Owner.HoverEnd = (DateTime?)b.DataContext;
// Update the States of the buttons
Owner.HighlightDays();
return;
@ -931,7 +930,7 @@ namespace Avalonia.Controls.Primitives
{
if (_isMouseLeftButtonDown)
{
CalendarDayButton b = sender as CalendarDayButton;
CalendarDayButton b = (CalendarDayButton)sender;
// The button is in Pressed state. Change the state to normal.
if (e.Device.Captured == b)
e.Device.Capture(null);
@ -973,7 +972,7 @@ namespace Avalonia.Controls.Primitives
if (b.IsEnabled && !b.IsBlackout)
{
DateTime selectedDate = (DateTime)b.DataContext;
Debug.Assert(selectedDate != null, "selectedDate should not be null!");
Contract.Requires<ArgumentNullException>(selectedDate != null);
_isMouseLeftButtonDown = true;
// null check is added for unit tests
if (e != null)
@ -1149,7 +1148,7 @@ namespace Avalonia.Controls.Primitives
if (_isControlPressed && Owner.SelectionMode == CalendarSelectionMode.MultipleRange)
{
CalendarDayButton b = sender as CalendarDayButton;
Debug.Assert(b != null, "The sender should be a non-null CalendarDayButton!");
Contract.Requires<ArgumentNullException>(b != null);
if (b.IsSelected)
{
@ -1169,7 +1168,7 @@ namespace Avalonia.Controls.Primitives
private void Month_CalendarButtonMouseDown(object sender, PointerPressedEventArgs e)
{
CalendarButton b = sender as CalendarButton;
Debug.Assert(b != null, "The sender should be a non-null CalendarDayButton!");
Contract.Requires<ArgumentNullException>(b != null);
_isMouseLeftButtonDownYearView = true;
@ -1208,7 +1207,7 @@ namespace Avalonia.Controls.Primitives
if (_isMouseLeftButtonDownYearView)
{
CalendarButton b = sender as CalendarButton;
Debug.Assert(b != null, "The sender should be a non-null CalendarDayButton!");
Contract.Requires<ArgumentNullException>(b != null);
UpdateYearViewSelection(b);
}
}
@ -1217,7 +1216,7 @@ namespace Avalonia.Controls.Primitives
{
if (_isMouseLeftButtonDownYearView)
{
CalendarButton b = sender as CalendarButton;
CalendarButton b = (CalendarButton)sender;
// The button is in Pressed state. Change the state to normal.
if (e.Device.Captured == b)
e.Device.Capture(null);

2
src/Avalonia.Controls/Calendar/DatePicker.cs

@ -842,7 +842,7 @@ namespace Avalonia.Controls
private void Calendar_KeyDown(object sender, KeyEventArgs e)
{
Calendar c = sender as Calendar;
Debug.Assert(c != null, "The Calendar should not be null!");
Contract.Requires<ArgumentNullException>(c != null);
if (!e.Handled && (e.Key == Key.Enter || e.Key == Key.Space || e.Key == Key.Escape) && c.DisplayMode == CalendarMode.Month)
{

2
src/Avalonia.Controls/Embedding/Offscreen/OffscreenTopLevel.cs

@ -57,7 +57,7 @@ namespace Avalonia.Controls.Embedding.Offscreen
Type IStyleable.StyleKey => typeof(EmbeddableControlRoot);
public void Dispose()
{
PlatformImpl.Dispose();
PlatformImpl?.Dispose();
}
}
}

2
src/Avalonia.Controls/Platform/InProcessDragSource.cs

@ -62,7 +62,7 @@ namespace Avalonia.Platform
RawDragEvent rawEvent = new RawDragEvent(_dragDrop, type, root, pt, _draggedData, _allowedEffects);
var tl = root.GetSelfAndVisualAncestors().OfType<TopLevel>().FirstOrDefault();
tl.PlatformImpl.Input(rawEvent);
tl.PlatformImpl?.Input(rawEvent);
var effect = GetPreferredEffect(rawEvent.Effects & _allowedEffects, modifiers);
UpdateCursor(root, effect);

5
src/Avalonia.Themes.Default/Calendar.xaml

@ -15,9 +15,10 @@
<Setter Property="Template">
<ControlTemplate>
<StackPanel Name="Root"
HorizontalAlignment="Center">
HorizontalAlignment="Center"
ClipToBounds="True">
<CalendarItem Name="CalendarItem"
<CalendarItem Name="CalendarItem"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"

3
src/Markup/Avalonia.Markup/Data/MultiBinding.cs

@ -10,6 +10,7 @@ using System.Reactive.Subjects;
using Avalonia.Controls;
using Avalonia.Data.Converters;
using Avalonia.Metadata;
using JetBrains.Annotations;
namespace Avalonia.Data
{
@ -65,7 +66,7 @@ namespace Avalonia.Data
var children = Bindings.Select(x => x.Initiate(target, null));
var input = children.Select(x => x.Subject).CombineLatest().Select(x => ConvertValue(x, targetType));
var mode = Mode == BindingMode.Default ?
targetProperty.GetMetadata(target.GetType()).DefaultBindingMode : Mode;
targetProperty?.GetMetadata(target.GetType()).DefaultBindingMode : Mode;
switch (mode)
{

2
src/Windows/Avalonia.Win32/SystemDialogImpl.cs

@ -54,7 +54,7 @@ namespace Avalonia.Win32
var fileBuffer = new char[256];
dialog.InitialFileName?.CopyTo(0, fileBuffer, 0, dialog.InitialFileName.Length);
string userSelectedExt = null;
string userSelectedExt = string.Empty;
var title = ToChars(dialog.Title);

Loading…
Cancel
Save