From 718d21f6cb7dabff7726a4bc7078909877b5c0e6 Mon Sep 17 00:00:00 2001 From: Michael Bucari-Tovo Date: Mon, 23 May 2022 16:42:05 -0600 Subject: [PATCH] NotifyPropertyChanged series on update --- Source/LibationWinForms/grid/GridEntry.cs | 8 ++++---- .../grid/LiberateDataGridViewImageButtonColumn.cs | 2 +- Source/LibationWinForms/grid/LibraryBookEntry.cs | 4 ++-- Source/LibationWinForms/grid/ProductsGrid.cs | 6 +++++- Source/LibationWinForms/grid/SeriesEntry.cs | 8 ++------ 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Source/LibationWinForms/grid/GridEntry.cs b/Source/LibationWinForms/grid/GridEntry.cs index e0f19c1c..5c53f7e9 100644 --- a/Source/LibationWinForms/grid/GridEntry.cs +++ b/Source/LibationWinForms/grid/GridEntry.cs @@ -15,7 +15,7 @@ namespace LibationWinForms T Parent { get; } } - public class LiberateStatus : IComparable + public class LiberateButtonStatus : IComparable { public LiberatedStatus BookStatus; public LiberatedStatus? PdfStatus; @@ -24,7 +24,7 @@ namespace LibationWinForms public int CompareTo(object obj) { - if (obj is not LiberateStatus second) return -1; + if (obj is not LiberateButtonStatus second) return -1; if (IsSeries && !second.IsSeries) return -1; else if (!IsSeries && second.IsSeries) return 1; @@ -69,7 +69,7 @@ namespace LibationWinForms public abstract string Misc { get; protected set; } public abstract string Description { get; protected set; } public abstract string DisplayTags { get; } - public abstract LiberateStatus Liberate { get; } + public abstract LiberateButtonStatus Liberate { get; } public abstract object GetMemberValue(string memberName); #endregion public IComparer GetMemberComparer(Type memberType) => _memberTypeComparers[memberType]; @@ -105,7 +105,7 @@ namespace LibationWinForms { typeof(float), new ObjectComparer() }, { typeof(bool), new ObjectComparer() }, { typeof(DateTime), new ObjectComparer() }, - { typeof(LiberateStatus), new ObjectComparer() }, + { typeof(LiberateButtonStatus), new ObjectComparer() }, }; ~GridEntry() diff --git a/Source/LibationWinForms/grid/LiberateDataGridViewImageButtonColumn.cs b/Source/LibationWinForms/grid/LiberateDataGridViewImageButtonColumn.cs index 9d97dca9..feb9b0e0 100644 --- a/Source/LibationWinForms/grid/LiberateDataGridViewImageButtonColumn.cs +++ b/Source/LibationWinForms/grid/LiberateDataGridViewImageButtonColumn.cs @@ -20,7 +20,7 @@ namespace LibationWinForms { base.Paint(graphics, clipBounds, cellBounds, rowIndex, elementState, null, null, null, cellStyle, advancedBorderStyle, paintParts); - if (value is LiberateStatus status) + if (value is LiberateButtonStatus status) { if (status.IsSeries) { diff --git a/Source/LibationWinForms/grid/LibraryBookEntry.cs b/Source/LibationWinForms/grid/LibraryBookEntry.cs index c1be718c..a02686eb 100644 --- a/Source/LibationWinForms/grid/LibraryBookEntry.cs +++ b/Source/LibationWinForms/grid/LibraryBookEntry.cs @@ -53,7 +53,7 @@ namespace LibationWinForms public override string DisplayTags => string.Join("\r\n", Book.UserDefinedItem.TagsEnumerated); // these 2 values being in 1 field is the trick behind getting the liberated+pdf 'stoplight' icon to draw. See: LiberateDataGridViewImageButtonCell.Paint - public override LiberateStatus Liberate + public override LiberateButtonStatus Liberate { get { @@ -64,7 +64,7 @@ namespace LibationWinForms _pdfStatus = LibraryCommands.Pdf_Status(LibraryBook.Book); lastStatusUpdate = DateTime.Now; } - return new LiberateStatus { BookStatus = _bookStatus, PdfStatus = _pdfStatus, IsSeries = false }; + return new LiberateButtonStatus { BookStatus = _bookStatus, PdfStatus = _pdfStatus, IsSeries = false }; } } #endregion diff --git a/Source/LibationWinForms/grid/ProductsGrid.cs b/Source/LibationWinForms/grid/ProductsGrid.cs index 0593d743..f42a6de1 100644 --- a/Source/LibationWinForms/grid/ProductsGrid.cs +++ b/Source/LibationWinForms/grid/ProductsGrid.cs @@ -149,6 +149,8 @@ namespace LibationWinForms.grid //Add episode beneath the parent int seriesIndex = bindingList.IndexOf(series); bindingList.Insert(seriesIndex + 1, lb); + + series.NotifyPropertyChanged(); } else //Add the new product @@ -178,7 +180,9 @@ namespace LibationWinForms.grid foreach (var removed in removedBooks.Where(b => b.Parent is not null)) { - ((SeriesEntry)removed.Parent).Children.Remove(removed); + var series = removed.Parent as SeriesEntry; + series.Children.Remove(removed); + series.NotifyPropertyChanged(); } //Remove series that have no children diff --git a/Source/LibationWinForms/grid/SeriesEntry.cs b/Source/LibationWinForms/grid/SeriesEntry.cs index afe21444..bc74f147 100644 --- a/Source/LibationWinForms/grid/SeriesEntry.cs +++ b/Source/LibationWinForms/grid/SeriesEntry.cs @@ -1,12 +1,8 @@ using DataLayer; using Dinah.Core; using System; -using System.Collections; using System.Collections.Generic; -using System.Drawing; using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace LibationWinForms { @@ -51,13 +47,13 @@ namespace LibationWinForms public override string Description { get; protected set; } = string.Empty; public override string DisplayTags { get; } = string.Empty; - public override LiberateStatus Liberate => _liberate; + public override LiberateButtonStatus Liberate => _liberate; protected override Book Book => SeriesBook.Book; private SeriesBook SeriesBook { get; set; } - private LiberateStatus _liberate = new LiberateStatus { IsSeries = true }; + private LiberateButtonStatus _liberate = new LiberateButtonStatus { IsSeries = true }; public void setSeriesBook(SeriesBook seriesBook) {