Add "Is Spatial" grid column.

This commit is contained in:
MBucari 2025-07-26 18:13:36 -06:00
parent 53eebcd6ba
commit a887bf4619
8 changed files with 80 additions and 56 deletions

View File

@ -479,6 +479,7 @@ namespace LibationAvalonia.ViewModels
public DataGridLength MiscWidth { get => getColumnWidth("Misc", 140); set => setColumnWidth("Misc", value); } public DataGridLength MiscWidth { get => getColumnWidth("Misc", 140); set => setColumnWidth("Misc", value); }
public DataGridLength LastDownloadWidth { get => getColumnWidth("LastDownload", 100); set => setColumnWidth("LastDownload", value); } public DataGridLength LastDownloadWidth { get => getColumnWidth("LastDownload", 100); set => setColumnWidth("LastDownload", value); }
public DataGridLength BookTagsWidth { get => getColumnWidth("BookTags", 100); set => setColumnWidth("BookTags", value); } public DataGridLength BookTagsWidth { get => getColumnWidth("BookTags", 100); set => setColumnWidth("BookTags", value); }
public DataGridLength IsSpatialWidth { get => getColumnWidth("IsSpatial", 100); set => setColumnWidth("IsSpatial", value); }
private static DataGridLength getColumnWidth(string columnName, double defaultWidth) private static DataGridLength getColumnWidth(string columnName, double defaultWidth)
=> Configuration.Instance.GridColumnsWidths.TryGetValue(columnName, out var val) => Configuration.Instance.GridColumnsWidths.TryGetValue(columnName, out var val)

View File

@ -3,9 +3,11 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:views="clr-namespace:LibationAvalonia.Views" xmlns:views="clr-namespace:LibationAvalonia.Views"
xmlns:vm="clr-namespace:LibationAvalonia.ViewModels"
xmlns:uibase="clr-namespace:LibationUiBase.GridView;assembly=LibationUiBase" xmlns:uibase="clr-namespace:LibationUiBase.GridView;assembly=LibationUiBase"
xmlns:controls="clr-namespace:LibationAvalonia.Controls" xmlns:controls="clr-namespace:LibationAvalonia.Controls"
mc:Ignorable="d" d:DesignWidth="1560" d:DesignHeight="400" mc:Ignorable="d" d:DesignWidth="1560" d:DesignHeight="400"
x:DataType="vm:ProductsDisplayViewModel"
x:Class="LibationAvalonia.Views.ProductsDisplay"> x:Class="LibationAvalonia.Views.ProductsDisplay">
<Grid> <Grid>
@ -15,7 +17,7 @@
ClipboardCopyMode="IncludeHeader" ClipboardCopyMode="IncludeHeader"
GridLinesVisibility="All" GridLinesVisibility="All"
AutoGenerateColumns="False" AutoGenerateColumns="False"
ItemsSource="{Binding GridEntries}" ItemsSource="{CompiledBinding GridEntries}"
CanUserSortColumns="True" BorderThickness="3" CanUserSortColumns="True" BorderThickness="3"
CanUserResizeColumns="True" CanUserResizeColumns="True"
LoadingRow="ProductsDisplay_LoadingRow" LoadingRow="ProductsDisplay_LoadingRow"
@ -51,7 +53,7 @@
<DataGridTemplateColumn <DataGridTemplateColumn
CanUserSort="True" CanUserSort="True"
CanUserResize="False" CanUserResize="False"
IsVisible="{Binding RemoveColumnVisible}" IsVisible="{CompiledBinding RemoveColumnVisible}"
PropertyChanged="RemoveColumn_PropertyChanged" PropertyChanged="RemoveColumn_PropertyChanged"
Header="Remove" Header="Remove"
IsReadOnly="False" IsReadOnly="False"
@ -83,7 +85,7 @@
</DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn.CellTemplate>
</controls:DataGridTemplateColumnExt> </controls:DataGridTemplateColumnExt>
<controls:DataGridTemplateColumnExt CanUserResize="False" CanUserSort="False" Header="Cover" SortMemberPath="Cover" ClipboardContentBinding="{Binding LibraryBook.Book.PictureLarge}"> <controls:DataGridTemplateColumnExt Header="Cover" CanUserResize="False" CanUserSort="False" SortMemberPath="Cover" ClipboardContentBinding="{Binding LibraryBook.Book.PictureLarge}">
<DataGridTemplateColumn.CellTemplate> <DataGridTemplateColumn.CellTemplate>
<DataTemplate x:DataType="uibase:GridEntry"> <DataTemplate x:DataType="uibase:GridEntry">
<Image Opacity="{CompiledBinding Liberate.Opacity}" Tapped="Cover_Click" Source="{CompiledBinding Cover}" ToolTip.Tip="Click to see full size" /> <Image Opacity="{CompiledBinding Liberate.Opacity}" Tapped="Cover_Click" Source="{CompiledBinding Cover}" ToolTip.Tip="Click to see full size" />
@ -91,7 +93,7 @@
</DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn.CellTemplate>
</controls:DataGridTemplateColumnExt> </controls:DataGridTemplateColumnExt>
<controls:DataGridTemplateColumnExt Header="Title" MinWidth="10" Width="{Binding TitleWidth, Mode=TwoWay}" CanUserSort="True" SortMemberPath="Title" ClipboardContentBinding="{Binding Title}"> <controls:DataGridTemplateColumnExt Header="Title" MinWidth="10" Width="{CompiledBinding TitleWidth, Mode=TwoWay}" CanUserSort="True" SortMemberPath="Title" ClipboardContentBinding="{Binding Title}">
<DataGridTemplateColumn.CellTemplate> <DataGridTemplateColumn.CellTemplate>
<DataTemplate x:DataType="uibase:GridEntry"> <DataTemplate x:DataType="uibase:GridEntry">
<Panel Opacity="{CompiledBinding Liberate.Opacity}"> <Panel Opacity="{CompiledBinding Liberate.Opacity}">
@ -101,7 +103,7 @@
</DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn.CellTemplate>
</controls:DataGridTemplateColumnExt> </controls:DataGridTemplateColumnExt>
<controls:DataGridTemplateColumnExt Header="Authors" MinWidth="10" Width="{Binding AuthorsWidth, Mode=TwoWay}" CanUserSort="True" SortMemberPath="Authors" ClipboardContentBinding="{Binding Authors}"> <controls:DataGridTemplateColumnExt Header="Authors" MinWidth="10" Width="{CompiledBinding AuthorsWidth, Mode=TwoWay}" CanUserSort="True" SortMemberPath="Authors" ClipboardContentBinding="{Binding Authors}">
<DataGridTemplateColumn.CellTemplate> <DataGridTemplateColumn.CellTemplate>
<DataTemplate x:DataType="uibase:GridEntry"> <DataTemplate x:DataType="uibase:GridEntry">
<Panel Opacity="{CompiledBinding Liberate.Opacity}"> <Panel Opacity="{CompiledBinding Liberate.Opacity}">
@ -111,7 +113,7 @@
</DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn.CellTemplate>
</controls:DataGridTemplateColumnExt> </controls:DataGridTemplateColumnExt>
<controls:DataGridTemplateColumnExt Header="Narrators" MinWidth="10" Width="{Binding NarratorsWidth, Mode=TwoWay}" CanUserSort="True" SortMemberPath="Narrators" ClipboardContentBinding="{Binding Narrators}"> <controls:DataGridTemplateColumnExt Header="Narrators" MinWidth="10" Width="{CompiledBinding NarratorsWidth, Mode=TwoWay}" CanUserSort="True" SortMemberPath="Narrators" ClipboardContentBinding="{Binding Narrators}">
<DataGridTemplateColumn.CellTemplate> <DataGridTemplateColumn.CellTemplate>
<DataTemplate x:DataType="uibase:GridEntry"> <DataTemplate x:DataType="uibase:GridEntry">
<Panel Opacity="{CompiledBinding Liberate.Opacity}"> <Panel Opacity="{CompiledBinding Liberate.Opacity}">
@ -121,7 +123,7 @@
</DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn.CellTemplate>
</controls:DataGridTemplateColumnExt> </controls:DataGridTemplateColumnExt>
<controls:DataGridTemplateColumnExt Header="Length" MinWidth="10" Width="{Binding LengthWidth, Mode=TwoWay}" CanUserSort="True" SortMemberPath="Length" ClipboardContentBinding="{Binding Length}"> <controls:DataGridTemplateColumnExt Header="Length" MinWidth="10" Width="{CompiledBinding LengthWidth, Mode=TwoWay}" CanUserSort="True" SortMemberPath="Length" ClipboardContentBinding="{Binding Length}">
<DataGridTemplateColumn.CellTemplate> <DataGridTemplateColumn.CellTemplate>
<DataTemplate x:DataType="uibase:GridEntry"> <DataTemplate x:DataType="uibase:GridEntry">
<Panel Opacity="{CompiledBinding Liberate.Opacity}"> <Panel Opacity="{CompiledBinding Liberate.Opacity}">
@ -131,7 +133,7 @@
</DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn.CellTemplate>
</controls:DataGridTemplateColumnExt> </controls:DataGridTemplateColumnExt>
<controls:DataGridTemplateColumnExt Header="Series" MinWidth="10" Width="{Binding SeriesWidth, Mode=TwoWay}" CanUserSort="True" SortMemberPath="Series" ClipboardContentBinding="{Binding Series}"> <controls:DataGridTemplateColumnExt Header="Series" MinWidth="10" Width="{CompiledBinding SeriesWidth, Mode=TwoWay}" CanUserSort="True" SortMemberPath="Series" ClipboardContentBinding="{Binding Series}">
<DataGridTemplateColumn.CellTemplate> <DataGridTemplateColumn.CellTemplate>
<DataTemplate x:DataType="uibase:GridEntry"> <DataTemplate x:DataType="uibase:GridEntry">
<Panel Opacity="{CompiledBinding Liberate.Opacity}"> <Panel Opacity="{CompiledBinding Liberate.Opacity}">
@ -141,7 +143,7 @@
</DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn.CellTemplate>
</controls:DataGridTemplateColumnExt> </controls:DataGridTemplateColumnExt>
<controls:DataGridTemplateColumnExt Header="Series&#xA;Order" MinWidth="10" Width="{Binding SeriesOrderWidth, Mode=TwoWay}" CanUserSort="True" SortMemberPath="SeriesOrder" ClipboardContentBinding="{Binding Series}"> <controls:DataGridTemplateColumnExt Header="Series&#xA;Order" MinWidth="10" Width="{CompiledBinding SeriesOrderWidth, Mode=TwoWay}" CanUserSort="True" SortMemberPath="SeriesOrder" ClipboardContentBinding="{Binding Series}">
<DataGridTemplateColumn.CellTemplate> <DataGridTemplateColumn.CellTemplate>
<DataTemplate x:DataType="uibase:GridEntry"> <DataTemplate x:DataType="uibase:GridEntry">
<Panel Opacity="{CompiledBinding Liberate.Opacity}"> <Panel Opacity="{CompiledBinding Liberate.Opacity}">
@ -151,7 +153,7 @@
</DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn.CellTemplate>
</controls:DataGridTemplateColumnExt> </controls:DataGridTemplateColumnExt>
<controls:DataGridTemplateColumnExt Header="Description" MinWidth="10" Width="{Binding DescriptionWidth, Mode=TwoWay}" CanUserSort="True" SortMemberPath="Description" ClipboardContentBinding="{Binding Description}"> <controls:DataGridTemplateColumnExt Header="Description" MinWidth="10" Width="{CompiledBinding DescriptionWidth, Mode=TwoWay}" CanUserSort="True" SortMemberPath="Description" ClipboardContentBinding="{Binding Description}">
<DataGridTemplateColumn.CellTemplate> <DataGridTemplateColumn.CellTemplate>
<DataTemplate x:DataType="uibase:GridEntry"> <DataTemplate x:DataType="uibase:GridEntry">
<Panel Opacity="{CompiledBinding Liberate.Opacity}" Tapped="Description_Click" ToolTip.Tip="Click to see full description" > <Panel Opacity="{CompiledBinding Liberate.Opacity}" Tapped="Description_Click" ToolTip.Tip="Click to see full description" >
@ -161,7 +163,7 @@
</DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn.CellTemplate>
</controls:DataGridTemplateColumnExt> </controls:DataGridTemplateColumnExt>
<controls:DataGridTemplateColumnExt Header="Category" MinWidth="10" Width="{Binding CategoryWidth, Mode=TwoWay}" CanUserSort="True" SortMemberPath="Category" ClipboardContentBinding="{Binding Category}"> <controls:DataGridTemplateColumnExt Header="Category" MinWidth="10" Width="{CompiledBinding CategoryWidth, Mode=TwoWay}" CanUserSort="True" SortMemberPath="Category" ClipboardContentBinding="{Binding Category}">
<DataGridTemplateColumn.CellTemplate> <DataGridTemplateColumn.CellTemplate>
<DataTemplate x:DataType="uibase:GridEntry"> <DataTemplate x:DataType="uibase:GridEntry">
<Panel Opacity="{CompiledBinding Liberate.Opacity}"> <Panel Opacity="{CompiledBinding Liberate.Opacity}">
@ -181,7 +183,7 @@
ClipboardContentBinding="{CompiledBinding ProductRating}" ClipboardContentBinding="{CompiledBinding ProductRating}"
Binding="{CompiledBinding ProductRating}" /> Binding="{CompiledBinding ProductRating}" />
<controls:DataGridTemplateColumnExt Header="Purchase&#xA;Date" MinWidth="10" Width="{Binding PurchaseDateWidth, Mode=TwoWay}" CanUserSort="True" SortMemberPath="PurchaseDate" ClipboardContentBinding="{Binding PurchaseDate}"> <controls:DataGridTemplateColumnExt Header="Purchase&#xA;Date" MinWidth="10" Width="{CompiledBinding PurchaseDateWidth, Mode=TwoWay}" CanUserSort="True" SortMemberPath="PurchaseDate" ClipboardContentBinding="{Binding PurchaseDate}">
<DataGridTemplateColumn.CellTemplate> <DataGridTemplateColumn.CellTemplate>
<DataTemplate x:DataType="uibase:GridEntry"> <DataTemplate x:DataType="uibase:GridEntry">
<Panel Opacity="{CompiledBinding Liberate.Opacity}"> <Panel Opacity="{CompiledBinding Liberate.Opacity}">
@ -201,7 +203,7 @@
ClipboardContentBinding="{CompiledBinding MyRating}" ClipboardContentBinding="{CompiledBinding MyRating}"
Binding="{CompiledBinding MyRating, Mode=TwoWay}" /> Binding="{CompiledBinding MyRating, Mode=TwoWay}" />
<controls:DataGridTemplateColumnExt Header="Misc" MinWidth="10" Width="{Binding MiscWidth, Mode=TwoWay}" CanUserSort="True" SortMemberPath="Misc" ClipboardContentBinding="{Binding Misc}"> <controls:DataGridTemplateColumnExt Header="Misc" MinWidth="10" Width="{CompiledBinding MiscWidth, Mode=TwoWay}" CanUserSort="True" SortMemberPath="Misc" ClipboardContentBinding="{Binding Misc}">
<DataGridTemplateColumn.CellTemplate> <DataGridTemplateColumn.CellTemplate>
<DataTemplate x:DataType="uibase:GridEntry"> <DataTemplate x:DataType="uibase:GridEntry">
<Panel Opacity="{CompiledBinding Liberate.Opacity}"> <Panel Opacity="{CompiledBinding Liberate.Opacity}">
@ -211,7 +213,7 @@
</DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn.CellTemplate>
</controls:DataGridTemplateColumnExt> </controls:DataGridTemplateColumnExt>
<controls:DataGridTemplateColumnExt Header="Last&#xA;Download" MinWidth="10" Width="{Binding LastDownloadWidth, Mode=TwoWay}" CanUserSort="True" SortMemberPath="LastDownload" ClipboardContentBinding="{Binding LastDownload}"> <controls:DataGridTemplateColumnExt Header="Last&#xA;Download" MinWidth="10" Width="{CompiledBinding LastDownloadWidth, Mode=TwoWay}" CanUserSort="True" SortMemberPath="LastDownload" ClipboardContentBinding="{Binding LastDownload}">
<DataGridTemplateColumn.CellTemplate> <DataGridTemplateColumn.CellTemplate>
<DataTemplate x:DataType="uibase:GridEntry"> <DataTemplate x:DataType="uibase:GridEntry">
<Panel Opacity="{CompiledBinding Liberate.Opacity}" ToolTip.Tip="{CompiledBinding LastDownload.ToolTipText}" DoubleTapped="Version_DoubleClick"> <Panel Opacity="{CompiledBinding Liberate.Opacity}" ToolTip.Tip="{CompiledBinding LastDownload.ToolTipText}" DoubleTapped="Version_DoubleClick">
@ -220,8 +222,18 @@
</DataTemplate> </DataTemplate>
</DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn.CellTemplate>
</controls:DataGridTemplateColumnExt> </controls:DataGridTemplateColumnExt>
<controls:DataGridTemplateColumnExt Header="Is&#xA;Spatial" MinWidth="10" Width="{CompiledBinding IsSpatialWidth, Mode=TwoWay}" CanUserSort="True" SortMemberPath="IsSpatial" ClipboardContentBinding="{Binding IsSpatial}">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate x:DataType="uibase:GridEntry">
<Panel Opacity="{CompiledBinding Liberate.Opacity}" ToolTip.Tip="{CompiledBinding LastDownload.ToolTipText}">
<CheckBox IsChecked="{CompiledBinding IsSpatial}" IsEnabled="False" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Panel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</controls:DataGridTemplateColumnExt>
<controls:DataGridTemplateColumnExt Header="Tags" MinWidth="10" Width="{Binding BookTagsWidth, Mode=TwoWay}" CanUserSort="True" SortMemberPath="BookTags" ClipboardContentBinding="{Binding BookTags}"> <controls:DataGridTemplateColumnExt Header="Tags" MinWidth="10" Width="{CompiledBinding BookTagsWidth, Mode=TwoWay}" CanUserSort="True" SortMemberPath="BookTags" ClipboardContentBinding="{Binding BookTags}">
<DataGridTemplateColumn.CellTemplate> <DataGridTemplateColumn.CellTemplate>
<DataTemplate x:DataType="uibase:GridEntry"> <DataTemplate x:DataType="uibase:GridEntry">
<Button <Button

View File

@ -426,7 +426,6 @@ namespace LibationAvalonia.Views
productsGrid.ColumnDisplayIndexChanged += ProductsGrid_ColumnDisplayIndexChanged; productsGrid.ColumnDisplayIndexChanged += ProductsGrid_ColumnDisplayIndexChanged;
var config = Configuration.Instance; var config = Configuration.Instance;
var gridColumnsVisibilities = config.GridColumnsVisibilities;
var displayIndices = config.GridColumnsDisplayIndices; var displayIndices = config.GridColumnsDisplayIndices;
var contextMenu = new ContextMenu(); var contextMenu = new ContextMenu();
@ -464,7 +463,7 @@ namespace LibationAvalonia.Views
if (headerCell is not null) if (headerCell is not null)
headerCell.ContextMenu = contextMenu; headerCell.ContextMenu = contextMenu;
column.IsVisible = gridColumnsVisibilities.GetValueOrDefault(itemName, true); column.IsVisible = config.GetColumnVisibility(itemName);
} }
//We must set DisplayIndex properties in ascending order //We must set DisplayIndex properties in ascending order

View File

@ -179,12 +179,14 @@ namespace LibationFileManager
[Description("Lame target VBR quality [10,100]")] [Description("Lame target VBR quality [10,100]")]
public int LameVBRQuality { get => GetNonString(defaultValue: 2); set => SetNonString(value); } public int LameVBRQuality { get => GetNonString(defaultValue: 2); set => SetNonString(value); }
private static readonly EquatableDictionary<string, bool> DefaultColumns = new( private static readonly EquatableDictionary<string, bool> DefaultColumns = new([
new KeyValuePair<string, bool>[]
{
new ("SeriesOrder", false), new ("SeriesOrder", false),
new ("LastDownload", false) new ("LastDownload", false),
}); new ("IsSpatial", false)
]);
public bool GetColumnVisibility(string columnName)
=> GridColumnsVisibilities.TryGetValue(columnName, out var isVisible) ? isVisible
:DefaultColumns.GetValueOrDefault(columnName, true);
[Description("A Dictionary of GridView data property names and bool indicating its column's visibility in ProductsGrid")] [Description("A Dictionary of GridView data property names and bool indicating its column's visibility in ProductsGrid")]
public Dictionary<string, bool> GridColumnsVisibilities { get => GetNonString(defaultValue: DefaultColumns).Clone(); set => SetNonString(value); } public Dictionary<string, bool> GridColumnsVisibilities { get => GetNonString(defaultValue: DefaultColumns).Clone(); set => SetNonString(value); }

View File

@ -48,7 +48,7 @@ namespace LibationUiBase.GridView
private Rating _productrating; private Rating _productrating;
private string _bookTags; private string _bookTags;
private Rating _myRating; private Rating _myRating;
private bool _isSpatial;
public abstract bool? Remove { get; set; } public abstract bool? Remove { get; set; }
public EntryStatus Liberate { get => _liberate; private set => RaiseAndSetIfChanged(ref _liberate, value); } public EntryStatus Liberate { get => _liberate; private set => RaiseAndSetIfChanged(ref _liberate, value); }
public string PurchaseDate { get => _purchasedate; protected set => RaiseAndSetIfChanged(ref _purchasedate, value); } public string PurchaseDate { get => _purchasedate; protected set => RaiseAndSetIfChanged(ref _purchasedate, value); }
@ -65,6 +65,7 @@ namespace LibationUiBase.GridView
public string Description { get => _description; private set => RaiseAndSetIfChanged(ref _description, value); } public string Description { get => _description; private set => RaiseAndSetIfChanged(ref _description, value); }
public Rating ProductRating { get => _productrating; private set => RaiseAndSetIfChanged(ref _productrating, value); } public Rating ProductRating { get => _productrating; private set => RaiseAndSetIfChanged(ref _productrating, value); }
public string BookTags { get => _bookTags; private set => RaiseAndSetIfChanged(ref _bookTags, value); } public string BookTags { get => _bookTags; private set => RaiseAndSetIfChanged(ref _bookTags, value); }
public bool IsSpatial { get => _isSpatial; protected set => RaiseAndSetIfChanged(ref _isSpatial, value); }
public Rating MyRating public Rating MyRating
{ {
@ -118,6 +119,7 @@ namespace LibationUiBase.GridView
Description = GetDescriptionDisplay(Book); Description = GetDescriptionDisplay(Book);
SeriesIndex = Book.SeriesLink.FirstOrDefault()?.Index ?? 0; SeriesIndex = Book.SeriesLink.FirstOrDefault()?.Index ?? 0;
BookTags = GetBookTags(); BookTags = GetBookTags();
IsSpatial = Book.IsSpatial;
UserDefinedItem.ItemChanged += UserDefinedItem_ItemChanged; UserDefinedItem.ItemChanged += UserDefinedItem_ItemChanged;
} }
@ -205,6 +207,7 @@ namespace LibationUiBase.GridView
nameof(BookTags) => BookTags ?? string.Empty, nameof(BookTags) => BookTags ?? string.Empty,
nameof(Liberate) => Liberate, nameof(Liberate) => Liberate,
nameof(DateAdded) => DateAdded, nameof(DateAdded) => DateAdded,
nameof(IsSpatial) => IsSpatial,
_ => null _ => null
}; };

View File

@ -34,6 +34,8 @@ namespace LibationWinForms.GridView
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
gridEntryDataGridView = new System.Windows.Forms.DataGridView(); gridEntryDataGridView = new System.Windows.Forms.DataGridView();
showHideColumnsContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(components);
syncBindingSource = new SyncBindingSource(components);
removeGVColumn = new System.Windows.Forms.DataGridViewCheckBoxColumn(); removeGVColumn = new System.Windows.Forms.DataGridViewCheckBoxColumn();
liberateGVColumn = new LiberateDataGridViewImageButtonColumn(); liberateGVColumn = new LiberateDataGridViewImageButtonColumn();
coverGVColumn = new System.Windows.Forms.DataGridViewImageColumn(); coverGVColumn = new System.Windows.Forms.DataGridViewImageColumn();
@ -50,9 +52,8 @@ namespace LibationWinForms.GridView
myRatingGVColumn = new MyRatingGridViewColumn(); myRatingGVColumn = new MyRatingGridViewColumn();
miscGVColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); miscGVColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
lastDownloadedGVColumn = new LastDownloadedGridViewColumn(); lastDownloadedGVColumn = new LastDownloadedGridViewColumn();
isSpatialGVColumn = new System.Windows.Forms.DataGridViewCheckBoxColumn();
tagAndDetailsGVColumn = new EditTagsDataGridViewImageButtonColumn(); tagAndDetailsGVColumn = new EditTagsDataGridViewImageButtonColumn();
showHideColumnsContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(components);
syncBindingSource = new SyncBindingSource(components);
((System.ComponentModel.ISupportInitialize)gridEntryDataGridView).BeginInit(); ((System.ComponentModel.ISupportInitialize)gridEntryDataGridView).BeginInit();
((System.ComponentModel.ISupportInitialize)syncBindingSource).BeginInit(); ((System.ComponentModel.ISupportInitialize)syncBindingSource).BeginInit();
SuspendLayout(); SuspendLayout();
@ -65,12 +66,12 @@ namespace LibationWinForms.GridView
gridEntryDataGridView.AllowUserToResizeRows = false; gridEntryDataGridView.AllowUserToResizeRows = false;
gridEntryDataGridView.AutoGenerateColumns = false; gridEntryDataGridView.AutoGenerateColumns = false;
gridEntryDataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; gridEntryDataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
gridEntryDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { removeGVColumn, liberateGVColumn, coverGVColumn, titleGVColumn, authorsGVColumn, narratorsGVColumn, lengthGVColumn, seriesGVColumn, seriesOrderGVColumn, descriptionGVColumn, categoryGVColumn, productRatingGVColumn, purchaseDateGVColumn, myRatingGVColumn, miscGVColumn, lastDownloadedGVColumn, tagAndDetailsGVColumn }); gridEntryDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { removeGVColumn, liberateGVColumn, coverGVColumn, titleGVColumn, authorsGVColumn, narratorsGVColumn, lengthGVColumn, seriesGVColumn, seriesOrderGVColumn, descriptionGVColumn, categoryGVColumn, productRatingGVColumn, purchaseDateGVColumn, myRatingGVColumn, miscGVColumn, lastDownloadedGVColumn, isSpatialGVColumn, tagAndDetailsGVColumn });
gridEntryDataGridView.ContextMenuStrip = showHideColumnsContextMenuStrip; gridEntryDataGridView.ContextMenuStrip = showHideColumnsContextMenuStrip;
gridEntryDataGridView.DataSource = syncBindingSource; gridEntryDataGridView.DataSource = syncBindingSource;
dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Window; dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle2.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); dataGridViewCellStyle2.Font = new System.Drawing.Font("Segoe UI", 9F);
dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.ControlText; dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight; dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
@ -84,11 +85,22 @@ namespace LibationWinForms.GridView
gridEntryDataGridView.RowHeadersVisible = false; gridEntryDataGridView.RowHeadersVisible = false;
gridEntryDataGridView.RowHeadersWidth = 82; gridEntryDataGridView.RowHeadersWidth = 82;
gridEntryDataGridView.RowTemplate.Height = 82; gridEntryDataGridView.RowTemplate.Height = 82;
gridEntryDataGridView.Size = new System.Drawing.Size(3140, 760); gridEntryDataGridView.Size = new System.Drawing.Size(1992, 380);
gridEntryDataGridView.TabIndex = 0; gridEntryDataGridView.TabIndex = 0;
gridEntryDataGridView.CellContentClick += DataGridView_CellContentClick; gridEntryDataGridView.CellContentClick += DataGridView_CellContentClick;
gridEntryDataGridView.CellToolTipTextNeeded += gridEntryDataGridView_CellToolTipTextNeeded; gridEntryDataGridView.CellToolTipTextNeeded += gridEntryDataGridView_CellToolTipTextNeeded;
// //
// showHideColumnsContextMenuStrip
//
showHideColumnsContextMenuStrip.ImageScalingSize = new System.Drawing.Size(32, 32);
showHideColumnsContextMenuStrip.Name = "contextMenuStrip1";
showHideColumnsContextMenuStrip.ShowCheckMargin = true;
showHideColumnsContextMenuStrip.Size = new System.Drawing.Size(83, 4);
//
// syncBindingSource
//
syncBindingSource.DataSource = typeof(GridEntry);
//
// removeGVColumn // removeGVColumn
// //
removeGVColumn.DataPropertyName = "Remove"; removeGVColumn.DataPropertyName = "Remove";
@ -144,7 +156,6 @@ namespace LibationWinForms.GridView
authorsGVColumn.MinimumWidth = 10; authorsGVColumn.MinimumWidth = 10;
authorsGVColumn.Name = "authorsGVColumn"; authorsGVColumn.Name = "authorsGVColumn";
authorsGVColumn.ReadOnly = true; authorsGVColumn.ReadOnly = true;
authorsGVColumn.Width = 100;
// //
// narratorsGVColumn // narratorsGVColumn
// //
@ -153,7 +164,6 @@ namespace LibationWinForms.GridView
narratorsGVColumn.MinimumWidth = 10; narratorsGVColumn.MinimumWidth = 10;
narratorsGVColumn.Name = "narratorsGVColumn"; narratorsGVColumn.Name = "narratorsGVColumn";
narratorsGVColumn.ReadOnly = true; narratorsGVColumn.ReadOnly = true;
narratorsGVColumn.Width = 100;
// //
// lengthGVColumn // lengthGVColumn
// //
@ -163,7 +173,6 @@ namespace LibationWinForms.GridView
lengthGVColumn.Name = "lengthGVColumn"; lengthGVColumn.Name = "lengthGVColumn";
lengthGVColumn.ReadOnly = true; lengthGVColumn.ReadOnly = true;
lengthGVColumn.ToolTipText = "Recording Length"; lengthGVColumn.ToolTipText = "Recording Length";
lengthGVColumn.Width = 100;
// //
// seriesGVColumn // seriesGVColumn
// //
@ -172,7 +181,6 @@ namespace LibationWinForms.GridView
seriesGVColumn.MinimumWidth = 10; seriesGVColumn.MinimumWidth = 10;
seriesGVColumn.Name = "seriesGVColumn"; seriesGVColumn.Name = "seriesGVColumn";
seriesGVColumn.ReadOnly = true; seriesGVColumn.ReadOnly = true;
seriesGVColumn.Width = 100;
// //
// seriesOrderGVColumn // seriesOrderGVColumn
// //
@ -192,7 +200,6 @@ namespace LibationWinForms.GridView
descriptionGVColumn.MinimumWidth = 10; descriptionGVColumn.MinimumWidth = 10;
descriptionGVColumn.Name = "descriptionGVColumn"; descriptionGVColumn.Name = "descriptionGVColumn";
descriptionGVColumn.ReadOnly = true; descriptionGVColumn.ReadOnly = true;
descriptionGVColumn.Width = 100;
// //
// categoryGVColumn // categoryGVColumn
// //
@ -201,7 +208,6 @@ namespace LibationWinForms.GridView
categoryGVColumn.MinimumWidth = 10; categoryGVColumn.MinimumWidth = 10;
categoryGVColumn.Name = "categoryGVColumn"; categoryGVColumn.Name = "categoryGVColumn";
categoryGVColumn.ReadOnly = true; categoryGVColumn.ReadOnly = true;
categoryGVColumn.Width = 100;
// //
// productRatingGVColumn // productRatingGVColumn
// //
@ -220,7 +226,6 @@ namespace LibationWinForms.GridView
purchaseDateGVColumn.MinimumWidth = 10; purchaseDateGVColumn.MinimumWidth = 10;
purchaseDateGVColumn.Name = "purchaseDateGVColumn"; purchaseDateGVColumn.Name = "purchaseDateGVColumn";
purchaseDateGVColumn.ReadOnly = true; purchaseDateGVColumn.ReadOnly = true;
purchaseDateGVColumn.Width = 100;
// //
// myRatingGVColumn // myRatingGVColumn
// //
@ -250,6 +255,17 @@ namespace LibationWinForms.GridView
lastDownloadedGVColumn.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; lastDownloadedGVColumn.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
lastDownloadedGVColumn.Width = 108; lastDownloadedGVColumn.Width = 108;
// //
// isSpatialGVColumn
//
isSpatialGVColumn.DataPropertyName = "IsSpatial";
isSpatialGVColumn.HeaderText = "Is Spatial";
isSpatialGVColumn.MinimumWidth = 20;
isSpatialGVColumn.Name = "isSpatialGVColumn";
isSpatialGVColumn.ReadOnly = true;
isSpatialGVColumn.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
isSpatialGVColumn.ToolTipText = "Indicates whether this title is available in Dolby Atmos \"spatial\" audio format. Note: Requires enabling \"Request Spatial Audio\" in Settings.";
isSpatialGVColumn.Width = 60;
//
// tagAndDetailsGVColumn // tagAndDetailsGVColumn
// //
tagAndDetailsGVColumn.DataPropertyName = "BookTags"; tagAndDetailsGVColumn.DataPropertyName = "BookTags";
@ -259,18 +275,6 @@ namespace LibationWinForms.GridView
tagAndDetailsGVColumn.ReadOnly = true; tagAndDetailsGVColumn.ReadOnly = true;
tagAndDetailsGVColumn.ScaleFactor = 0F; tagAndDetailsGVColumn.ScaleFactor = 0F;
tagAndDetailsGVColumn.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; tagAndDetailsGVColumn.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
tagAndDetailsGVColumn.Width = 100;
//
// showHideColumnsContextMenuStrip
//
showHideColumnsContextMenuStrip.ImageScalingSize = new System.Drawing.Size(32, 32);
showHideColumnsContextMenuStrip.Name = "contextMenuStrip1";
showHideColumnsContextMenuStrip.ShowCheckMargin = true;
showHideColumnsContextMenuStrip.Size = new System.Drawing.Size(83, 4);
//
// syncBindingSource
//
syncBindingSource.DataSource = typeof(GridEntry);
// //
// ProductsGrid // ProductsGrid
// //
@ -279,10 +283,10 @@ namespace LibationWinForms.GridView
AutoScroll = true; AutoScroll = true;
Controls.Add(gridEntryDataGridView); Controls.Add(gridEntryDataGridView);
Name = "ProductsGrid"; Name = "ProductsGrid";
Size = new System.Drawing.Size(1570, 380); Size = new System.Drawing.Size(1992, 380);
Load += new System.EventHandler(ProductsGrid_Load); Load += ProductsGrid_Load;
((System.ComponentModel.ISupportInitialize)(gridEntryDataGridView)).EndInit(); ((System.ComponentModel.ISupportInitialize)gridEntryDataGridView).EndInit();
((System.ComponentModel.ISupportInitialize)(syncBindingSource)).EndInit(); ((System.ComponentModel.ISupportInitialize)syncBindingSource).EndInit();
ResumeLayout(false); ResumeLayout(false);
} }
@ -308,6 +312,7 @@ namespace LibationWinForms.GridView
private MyRatingGridViewColumn myRatingGVColumn; private MyRatingGridViewColumn myRatingGVColumn;
private System.Windows.Forms.DataGridViewTextBoxColumn miscGVColumn; private System.Windows.Forms.DataGridViewTextBoxColumn miscGVColumn;
private LastDownloadedGridViewColumn lastDownloadedGVColumn; private LastDownloadedGridViewColumn lastDownloadedGVColumn;
private System.Windows.Forms.DataGridViewCheckBoxColumn isSpatialGVColumn;
private EditTagsDataGridViewImageButtonColumn tagAndDetailsGVColumn; private EditTagsDataGridViewImageButtonColumn tagAndDetailsGVColumn;
} }
} }

View File

@ -515,7 +515,6 @@ namespace LibationWinForms.GridView
//Restore Grid Display Settings //Restore Grid Display Settings
var config = Configuration.Instance; var config = Configuration.Instance;
var gridColumnsVisibilities = config.GridColumnsVisibilities;
var gridColumnsWidths = config.GridColumnsWidths; var gridColumnsWidths = config.GridColumnsWidths;
var displayIndices = config.GridColumnsDisplayIndices; var displayIndices = config.GridColumnsDisplayIndices;
@ -524,7 +523,7 @@ namespace LibationWinForms.GridView
foreach (DataGridViewColumn column in gridEntryDataGridView.Columns) foreach (DataGridViewColumn column in gridEntryDataGridView.Columns)
{ {
var itemName = column.DataPropertyName; var itemName = column.DataPropertyName;
var visible = gridColumnsVisibilities.GetValueOrDefault(itemName, true); var visible = config.GetColumnVisibility(itemName);
var menuItem = new ToolStripMenuItem(column.HeaderText) var menuItem = new ToolStripMenuItem(column.HeaderText)
{ {

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<root> <root>
<!-- <!--
Microsoft ResX Schema Microsoft ResX Schema
Version 2.0 Version 2.0
@ -18,7 +18,7 @@
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing"">Blue</data> <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value> <value>[base64 mime encoded serialized .NET Framework object]</value>
</data> </data>
@ -48,7 +48,7 @@
value : The object must be serialized with value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding. : and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64 mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
@ -120,6 +120,9 @@
<metadata name="removeGVColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="removeGVColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </metadata>
<metadata name="isSpatialGVColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="showHideColumnsContextMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="showHideColumnsContextMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>171, 17</value> <value>171, 17</value>
</metadata> </metadata>