QuickFilters on save event
This commit is contained in:
parent
28625029cd
commit
0bde86ebfd
@ -9,6 +9,8 @@ namespace LibationFileManager
|
|||||||
{
|
{
|
||||||
public static class QuickFilters
|
public static class QuickFilters
|
||||||
{
|
{
|
||||||
|
public static event EventHandler Updated;
|
||||||
|
|
||||||
internal class FilterState
|
internal class FilterState
|
||||||
{
|
{
|
||||||
public bool UseDefault { get; set; }
|
public bool UseDefault { get; set; }
|
||||||
@ -34,7 +36,7 @@ namespace LibationFileManager
|
|||||||
lock (locker)
|
lock (locker)
|
||||||
{
|
{
|
||||||
inMemoryState.UseDefault = value;
|
inMemoryState.UseDefault = value;
|
||||||
save();
|
save(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -97,7 +99,7 @@ namespace LibationFileManager
|
|||||||
private static object locker { get; } = new object();
|
private static object locker { get; } = new object();
|
||||||
|
|
||||||
// ONLY call this within lock()
|
// ONLY call this within lock()
|
||||||
private static void save()
|
private static void save(bool invokeUpdatedEvent = true)
|
||||||
{
|
{
|
||||||
// create json if not exists
|
// create json if not exists
|
||||||
void resave() => File.WriteAllText(JsonFile, JsonConvert.SerializeObject(inMemoryState, Formatting.Indented));
|
void resave() => File.WriteAllText(JsonFile, JsonConvert.SerializeObject(inMemoryState, Formatting.Indented));
|
||||||
@ -111,6 +113,9 @@ namespace LibationFileManager
|
|||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (invokeUpdatedEvent)
|
||||||
|
Updated?.Invoke(null, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -53,7 +53,6 @@ namespace LibationWinForms.Dialogs
|
|||||||
.ToList();
|
.ToList();
|
||||||
QuickFilters.ReplaceAll(list);
|
QuickFilters.ReplaceAll(list);
|
||||||
|
|
||||||
_parent.UpdateFilterDropDown();
|
|
||||||
this.DialogResult = DialogResult.OK;
|
this.DialogResult = DialogResult.OK;
|
||||||
this.Close();
|
this.Close();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,9 +17,9 @@ namespace LibationWinForms.Dialogs
|
|||||||
public partial class RemoveBooksDialog : Form
|
public partial class RemoveBooksDialog : Form
|
||||||
{
|
{
|
||||||
private Account[] _accounts { get; }
|
private Account[] _accounts { get; }
|
||||||
private readonly List<LibraryBook> _libraryBooks;
|
private List<LibraryBook> _libraryBooks { get; }
|
||||||
private readonly SortableBindingList<RemovableGridEntry> _removableGridEntries;
|
private SortableBindingList<RemovableGridEntry> _removableGridEntries { get; }
|
||||||
private readonly string _labelFormat;
|
private string _labelFormat { get; }
|
||||||
private int SelectedCount => SelectedEntries?.Count() ?? 0;
|
private int SelectedCount => SelectedEntries?.Count() ?? 0;
|
||||||
private IEnumerable<RemovableGridEntry> SelectedEntries => _removableGridEntries?.Where(b => b.Remove);
|
private IEnumerable<RemovableGridEntry> SelectedEntries => _removableGridEntries?.Where(b => b.Remove);
|
||||||
|
|
||||||
|
|||||||
@ -34,6 +34,7 @@ namespace LibationWinForms
|
|||||||
this.FormClosing += (_, _) => this.SaveSizeAndLocation(Configuration.Instance);
|
this.FormClosing += (_, _) => this.SaveSizeAndLocation(Configuration.Instance);
|
||||||
LibraryCommands.LibrarySizeChanged += reloadGridAndUpdateBottomNumbers;
|
LibraryCommands.LibrarySizeChanged += reloadGridAndUpdateBottomNumbers;
|
||||||
LibraryCommands.BookUserDefinedItemCommitted += setBackupCounts;
|
LibraryCommands.BookUserDefinedItemCommitted += setBackupCounts;
|
||||||
|
QuickFilters.Updated += updateFiltersMenu;
|
||||||
|
|
||||||
var format = System.Drawing.Imaging.ImageFormat.Jpeg;
|
var format = System.Drawing.Imaging.ImageFormat.Jpeg;
|
||||||
PictureStorage.SetDefaultImage(PictureSize._80x80, Properties.Resources.default_cover_80x80.ToBytes(format));
|
PictureStorage.SetDefaultImage(PictureSize._80x80, Properties.Resources.default_cover_80x80.ToBytes(format));
|
||||||
@ -185,11 +186,7 @@ namespace LibationWinForms
|
|||||||
#region filter
|
#region filter
|
||||||
private void filterHelpBtn_Click(object sender, EventArgs e) => new SearchSyntaxDialog().ShowDialog();
|
private void filterHelpBtn_Click(object sender, EventArgs e) => new SearchSyntaxDialog().ShowDialog();
|
||||||
|
|
||||||
private void AddFilterBtn_Click(object sender, EventArgs e)
|
private void AddFilterBtn_Click(object sender, EventArgs e) => QuickFilters.Add(this.filterSearchTb.Text);
|
||||||
{
|
|
||||||
QuickFilters.Add(this.filterSearchTb.Text);
|
|
||||||
UpdateFilterDropDown();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void filterSearchTb_KeyPress(object sender, KeyPressEventArgs e)
|
private void filterSearchTb_KeyPress(object sender, KeyPressEventArgs e)
|
||||||
{
|
{
|
||||||
@ -399,6 +396,12 @@ namespace LibationWinForms
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region quick filters menu
|
#region quick filters menu
|
||||||
|
private void FirstFilterIsDefaultToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
firstFilterIsDefaultToolStripMenuItem.Checked = !firstFilterIsDefaultToolStripMenuItem.Checked;
|
||||||
|
QuickFilters.UseDefault = firstFilterIsDefaultToolStripMenuItem.Checked;
|
||||||
|
}
|
||||||
|
|
||||||
private void loadInitialQuickFilterState()
|
private void loadInitialQuickFilterState()
|
||||||
{
|
{
|
||||||
// set inital state. do once only
|
// set inital state. do once only
|
||||||
@ -408,18 +411,11 @@ namespace LibationWinForms
|
|||||||
if (QuickFilters.UseDefault)
|
if (QuickFilters.UseDefault)
|
||||||
doFilter(QuickFilters.Filters.FirstOrDefault());
|
doFilter(QuickFilters.Filters.FirstOrDefault());
|
||||||
|
|
||||||
// do after every save
|
updateFiltersMenu();
|
||||||
UpdateFilterDropDown();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void FirstFilterIsDefaultToolStripMenuItem_Click(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
firstFilterIsDefaultToolStripMenuItem.Checked = !firstFilterIsDefaultToolStripMenuItem.Checked;
|
|
||||||
QuickFilters.UseDefault = firstFilterIsDefaultToolStripMenuItem.Checked;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private object quickFilterTag { get; } = new object();
|
private object quickFilterTag { get; } = new object();
|
||||||
public void UpdateFilterDropDown()
|
private void updateFiltersMenu(object _ = null, object __ = null)
|
||||||
{
|
{
|
||||||
// remove old
|
// remove old
|
||||||
for (var i = quickFiltersToolStripMenuItem.DropDownItems.Count - 1; i >= 0; i--)
|
for (var i = quickFiltersToolStripMenuItem.DropDownItems.Count - 1; i >= 0; i--)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user