Merge pull request #728 from Mbucari/master

Minor Bug fixes
This commit is contained in:
rmcrackan 2023-08-30 14:46:16 -04:00 committed by GitHub
commit cc6feb21ff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
22 changed files with 314 additions and 203 deletions

View File

@ -23,6 +23,17 @@ This walkthrough should get you up and running with Libation on your Mac.
``` ```
- Close the terminal and use Libation! - Close the terminal and use Libation!
## Troubleshooting
If Libation fails to start after completing the above steps, try the following:
1. Right-click the Libation app in your applications folder and select _Show Package Contents_
2. Open the `Contents` folder and then the `MacOS` folder.
3. Find the file named `Libation`, right-click it, and then select _Open_.
Libation _should_ launch, and you should now be able to open Libation by just double-clicking the app bundle in your applications folder.
## Running Hangover ## Running Hangover
Libation comes with a recovery app called Hangover. You can start it by running this command: Libation comes with a recovery app called Hangover. You can start it by running this command:

View File

@ -13,7 +13,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="AAXClean.Codecs" Version="1.1.0" /> <PackageReference Include="AAXClean.Codecs" Version="1.1.1" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -120,7 +120,12 @@ namespace ApplicationServices
logTime($"pre {nameof(scanAccountsAsync)} all"); logTime($"pre {nameof(scanAccountsAsync)} all");
var libraryOptions = new LibraryOptions var libraryOptions = new LibraryOptions
{ {
ResponseGroups = LibraryOptions.ResponseGroupOptions.ALL_OPTIONS, ResponseGroups
= LibraryOptions.ResponseGroupOptions.Rating | LibraryOptions.ResponseGroupOptions.Media
| LibraryOptions.ResponseGroupOptions.Relationships | LibraryOptions.ResponseGroupOptions.ProductDesc
| LibraryOptions.ResponseGroupOptions.Contributors | LibraryOptions.ResponseGroupOptions.ProvidedReview
| LibraryOptions.ResponseGroupOptions.ProductPlans | LibraryOptions.ResponseGroupOptions.Series
| LibraryOptions.ResponseGroupOptions.CategoryLadders | LibraryOptions.ResponseGroupOptions.ProductExtendedAttrs,
ImageSizes = LibraryOptions.ImageSizeOptions._500 | LibraryOptions.ImageSizeOptions._1215 ImageSizes = LibraryOptions.ImageSizeOptions._500 | LibraryOptions.ImageSizeOptions._1215
}; };
var importItems = await scanAccountsAsync(apiExtendedfunc, accounts, libraryOptions); var importItems = await scanAccountsAsync(apiExtendedfunc, accounts, libraryOptions);

View File

@ -207,7 +207,11 @@ namespace AudibleUtilities
try try
{ {
var sw = Stopwatch.StartNew(); var sw = Stopwatch.StartNew();
var items = await Api.GetCatalogProductsAsync(asins, CatalogOptions.ResponseGroupOptions.ALL_OPTIONS); var items = await Api.GetCatalogProductsAsync(asins, CatalogOptions.ResponseGroupOptions.Rating | CatalogOptions.ResponseGroupOptions.Media
| CatalogOptions.ResponseGroupOptions.Relationships | CatalogOptions.ResponseGroupOptions.ProductDesc
| CatalogOptions.ResponseGroupOptions.Contributors | CatalogOptions.ResponseGroupOptions.ProvidedReview
| CatalogOptions.ResponseGroupOptions.ProductPlans | CatalogOptions.ResponseGroupOptions.Series
| CatalogOptions.ResponseGroupOptions.CategoryLadders | CatalogOptions.ResponseGroupOptions.ProductExtendedAttrs);
sw.Stop(); sw.Stop();
Serilog.Log.Logger.Debug($"Batch {batchNum} End: Retrieved {items.Count} items in {sw.ElapsedMilliseconds} ms"); Serilog.Log.Logger.Debug($"Batch {batchNum} End: Retrieved {items.Count} items in {sw.ElapsedMilliseconds} ms");

View File

@ -60,6 +60,11 @@ namespace FileLiberator
config.LameMatchSourceBR, config.LameMatchSourceBR,
chapters); chapters);
if (m4bBook.AppleTags.Tracks is (int trackNum, int trackCount))
{
lameConfig.ID3.Track = trackCount > 0 ? $"{trackNum}/{trackCount}" : trackNum.ToString();
}
using var mp3File = File.Open(Path.GetTempFileName(), FileMode.OpenOrCreate, FileAccess.ReadWrite); using var mp3File = File.Open(Path.GetTempFileName(), FileMode.OpenOrCreate, FileAccess.ReadWrite);
try try
{ {

View File

@ -67,13 +67,13 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Avalonia" Version="11.0.3" /> <PackageReference Include="Avalonia" Version="11.0.4" />
<PackageReference Include="Avalonia.Desktop" Version="11.0.3" /> <PackageReference Include="Avalonia.Desktop" Version="11.0.4" />
<!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.--> <!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.-->
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="11.0.3" /> <PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="11.0.4" />
<PackageReference Include="Avalonia.ReactiveUI" Version="11.0.3" /> <PackageReference Include="Avalonia.ReactiveUI" Version="11.0.4" />
<PackageReference Include="Avalonia.Controls.ItemsRepeater" Version="11.0.3" /> <PackageReference Include="Avalonia.Controls.ItemsRepeater" Version="11.0.4" />
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.0.3" /> <PackageReference Include="Avalonia.Themes.Fluent" Version="11.0.4" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\HangoverBase\HangoverBase.csproj" /> <ProjectReference Include="..\HangoverBase\HangoverBase.csproj" />

View File

@ -27,6 +27,6 @@
Margin="5" Margin="5"
Padding="30,3,30,3" Padding="30,3,30,3"
Content="Save" Content="Save"
Command="{Binding SaveButtonAsync}" /> Click="Save_Click" />
</Grid> </Grid>
</Window> </Window>

View File

@ -1,11 +1,9 @@
using Avalonia.Controls;
using LibationFileManager; using LibationFileManager;
using System.Collections.Generic; using System.Collections.Generic;
using System.Threading.Tasks;
namespace LibationAvalonia.Dialogs namespace LibationAvalonia.Dialogs
{ {
public partial class LibationFilesDialog : Window public partial class LibationFilesDialog : DialogWindow
{ {
private class DirSelectOptions private class DirSelectOptions
{ {
@ -18,28 +16,26 @@ namespace LibationAvalonia.Dialogs
public string Directory { get; set; } = Configuration.GetKnownDirectoryPath(Configuration.KnownDirectories.UserProfile); public string Directory { get; set; } = Configuration.GetKnownDirectoryPath(Configuration.KnownDirectories.UserProfile);
} }
private DirSelectOptions dirSelectOptions;
private readonly DirSelectOptions dirSelectOptions;
public string SelectedDirectory => dirSelectOptions.Directory; public string SelectedDirectory => dirSelectOptions.Directory;
public DialogResult DialogResult { get; private set; }
public LibationFilesDialog() public LibationFilesDialog() : base(saveAndRestorePosition: false)
{ {
InitializeComponent(); InitializeComponent();
DataContext = dirSelectOptions = new(); DataContext = dirSelectOptions = new();
} }
public async Task SaveButtonAsync() public async void Save_Click(object sender, Avalonia.Interactivity.RoutedEventArgs e)
{ {
var libationDir = dirSelectOptions.Directory; if (!System.IO.Directory.Exists(SelectedDirectory))
if (!System.IO.Directory.Exists(libationDir))
{ {
await MessageBox.Show("Not saving change to Libation Files location. This folder does not exist:\r\n" + libationDir, "Folder does not exist", MessageBoxButtons.OK, MessageBoxIcon.Error, saveAndRestorePosition: false); await MessageBox.Show("Not saving change to Libation Files location. This folder does not exist:\r\n" + SelectedDirectory, "Folder does not exist", MessageBoxButtons.OK, MessageBoxIcon.Error, saveAndRestorePosition: false);
return; return;
} }
DialogResult = DialogResult.OK; await SaveAndCloseAsync();
Close(DialogResult);
} }
} }
} }

View File

@ -2,8 +2,8 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
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"
mc:Ignorable="d" d:DesignWidth="900" d:DesignHeight="750" mc:Ignorable="d" d:DesignWidth="900" d:DesignHeight="200"
MinWidth="900" MinHeight="750" MinWidth="900" MinHeight="200"
Width="900" Height="750" Width="900" Height="750"
x:Class="LibationAvalonia.Dialogs.SettingsDialog" x:Class="LibationAvalonia.Dialogs.SettingsDialog"
xmlns:controls="clr-namespace:LibationAvalonia.Controls" xmlns:controls="clr-namespace:LibationAvalonia.Controls"
@ -46,39 +46,41 @@
</TabControl.Styles> </TabControl.Styles>
<TabItem> <TabItem>
<TabItem.Header> <TabItem.Header>
<TextBlock Text="Important Settings"/> <TextBlock Text="Important Settings"/>
</TabItem.Header> </TabItem.Header>
<ScrollViewer VerticalScrollBarVisibility="Auto">
<settings:Important DataContext="{CompiledBinding ImportantSettings}" /> <settings:Important DataContext="{CompiledBinding ImportantSettings}" />
</ScrollViewer>
</TabItem> </TabItem>
<TabItem> <TabItem>
<TabItem.Header> <TabItem.Header>
<TextBlock Text="Import Library"/> <TextBlock Text="Import Library"/>
</TabItem.Header> </TabItem.Header>
<ScrollViewer VerticalScrollBarVisibility="Auto">
<settings:Import DataContext="{CompiledBinding ImportSettings}" /> <settings:Import DataContext="{CompiledBinding ImportSettings}" />
</ScrollViewer>
</TabItem> </TabItem>
<TabItem> <TabItem>
<TabItem.Header> <TabItem.Header>
<TextBlock Text="Download/Decrypt"/> <TextBlock Text="Download/Decrypt"/>
</TabItem.Header> </TabItem.Header>
<ScrollViewer VerticalScrollBarVisibility="Auto">
<settings:DownloadDecrypt DataContext="{CompiledBinding DownloadDecryptSettings}" /> <settings:DownloadDecrypt DataContext="{CompiledBinding DownloadDecryptSettings}" />
</ScrollViewer>
</TabItem> </TabItem>
<TabItem> <TabItem>
<TabItem.Header> <TabItem.Header>
<TextBlock Text="Audio File Settings"/> <TextBlock Text="Audio File Settings"/>
</TabItem.Header> </TabItem.Header>
<ScrollViewer VerticalScrollBarVisibility="Auto">
<settings:Audio DataContext="{CompiledBinding AudioSettings}" /> <settings:Audio DataContext="{CompiledBinding AudioSettings}" />
</ScrollViewer>
</TabItem> </TabItem>
</TabControl> </TabControl>
</Grid> </Grid>

View File

@ -70,13 +70,13 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Avalonia.Diagnostics" Version="11.0.3" Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'" /> <PackageReference Include="Avalonia.Diagnostics" Version="11.0.4" Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'" />
<PackageReference Include="Avalonia" Version="11.0.3" /> <PackageReference Include="Avalonia" Version="11.0.4" />
<PackageReference Include="Avalonia.Controls.DataGrid" Version="11.0.3" /> <PackageReference Include="Avalonia.Controls.DataGrid" Version="11.0.4" />
<PackageReference Include="Avalonia.Controls.ItemsRepeater" Version="11.0.3" /> <PackageReference Include="Avalonia.Controls.ItemsRepeater" Version="11.0.4" />
<PackageReference Include="Avalonia.Desktop" Version="11.0.3" /> <PackageReference Include="Avalonia.Desktop" Version="11.0.4" />
<PackageReference Include="Avalonia.ReactiveUI" Version="11.0.3" /> <PackageReference Include="Avalonia.ReactiveUI" Version="11.0.4" />
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.0.3" /> <PackageReference Include="Avalonia.Themes.Fluent" Version="11.0.4" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -8,6 +8,7 @@ using Dinah.Core;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Threading; using System.Threading;
using FileManager; using FileManager;
using AaxDecrypter;
#nullable enable #nullable enable
namespace LibationFileManager namespace LibationFileManager
@ -113,7 +114,7 @@ namespace LibationFileManager
{ {
RecurseSubdirectories = true, RecurseSubdirectories = true,
IgnoreInaccessible = true, IgnoreInaccessible = true,
MatchCasing = MatchCasing.CaseInsensitive AttributesToSkip = FileAttributes.Hidden,
}; };
protected override LongPath? GetFilePathCustom(string productId) protected override LongPath? GetFilePathCustom(string productId)
@ -157,22 +158,38 @@ namespace LibationFileManager
{ {
ArgumentValidator.EnsureNotNull(searchDirectory, nameof(searchDirectory)); ArgumentValidator.EnsureNotNull(searchDirectory, nameof(searchDirectory));
foreach (LongPath path in Directory.EnumerateFiles(searchDirectory, "*.M4B", enumerationOptions)) foreach (LongPath path in Directory.EnumerateFiles(searchDirectory, "*.*", enumerationOptions))
{ {
if (cancellationToken.IsCancellationRequested) if (cancellationToken.IsCancellationRequested)
yield break; yield break;
if (getFormatByExtension(path) is not OutputFormat format)
continue;
FilePathCache.CacheEntry? audioFile = default; FilePathCache.CacheEntry? audioFile = default;
try try
{
if (format is OutputFormat.M4b)
{
var tags = await Task.Run(() => AAXClean.AppleTags.FromFile(path));
if (tags?.Asin is not null)
audioFile = new FilePathCache.CacheEntry(tags.Asin, FileType.Audio, path);
}
else
{ {
using var fileStream = File.OpenRead(path); using var fileStream = File.OpenRead(path);
var id3 = await Task.Run(() => NAudio.Lame.ID3.Id3Tag.Create(fileStream));
var mp4File = await Task.Run(() => new AAXClean.Mp4File(fileStream), cancellationToken); var asin = id3?.Children
.OfType<NAudio.Lame.ID3.TXXXFrame>()
if (mp4File?.AppleTags?.Asin is not null) .FirstOrDefault(f => f.FieldName == "AUDIBLE_ASIN")
audioFile = new FilePathCache.CacheEntry(mp4File.AppleTags.Asin, FileType.Audio, path); ?.FieldValue;
if (!string.IsNullOrWhiteSpace(asin))
audioFile = new FilePathCache.CacheEntry(asin, FileType.Audio, path);
}
} }
catch (Exception ex) catch (Exception ex)
{ {
@ -186,6 +203,15 @@ namespace LibationFileManager
if (audioFile is not null) if (audioFile is not null)
yield return audioFile; yield return audioFile;
} }
static OutputFormat? getFormatByExtension(string path)
{
var ext = Path.GetExtension(path).ToLower();
return ext == ".mp3" ? OutputFormat.Mp3
: ext == ".m4b" ? OutputFormat.M4b
: null;
}
} }
} }
} }

View File

@ -6,6 +6,7 @@ using Newtonsoft.Json.Linq;
using Newtonsoft.Json; using Newtonsoft.Json;
using Serilog; using Serilog;
using Dinah.Core.Logging; using Dinah.Core.Logging;
using System.Diagnostics;
#nullable enable #nullable enable
namespace LibationFileManager namespace LibationFileManager
@ -75,17 +76,19 @@ namespace LibationFileManager
const string appsettings_filename = "appsettings.json"; const string appsettings_filename = "appsettings.json";
//Possible appsettings.json locations, in order of preference. //Possible appsettings.json locations, in order of preference.
string[] possibleAppsettingsFiles = new[] string[] possibleAppsettingsDirectories = new[]
{ {
Path.Combine(ProcessDirectory, appsettings_filename), ProcessDirectory,
Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Libation", appsettings_filename), Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Libation"),
Path.Combine(UserProfile, appsettings_filename), UserProfile,
Path.Combine(Path.GetTempPath(), "Libation", appsettings_filename) Path.Combine(Path.GetTempPath(), "Libation")
}; };
//Try to find and validate appsettings.json in each folder //Try to find and validate appsettings.json in each folder
foreach (var appsettingsFile in possibleAppsettingsFiles) foreach (var dir in possibleAppsettingsDirectories)
{ {
var appsettingsFile = Path.Combine(dir, appsettings_filename);
if (File.Exists(appsettingsFile)) if (File.Exists(appsettingsFile))
{ {
try try
@ -104,10 +107,13 @@ namespace LibationFileManager
//Valid appsettings.json not found. Try to create it in each folder. //Valid appsettings.json not found. Try to create it in each folder.
var endingContents = new JObject { { LIBATION_FILES_KEY, UserProfile } }.ToString(Formatting.Indented); var endingContents = new JObject { { LIBATION_FILES_KEY, UserProfile } }.ToString(Formatting.Indented);
foreach (var appsettingsFile in possibleAppsettingsFiles) foreach (var dir in possibleAppsettingsDirectories)
{ {
var appsettingsFile = Path.Combine(dir, appsettings_filename);
try try
{ {
Directory.CreateDirectory(dir);
File.WriteAllText(appsettingsFile, endingContents); File.WriteAllText(appsettingsFile, endingContents);
return appsettingsFile; return appsettingsFile;
} }
@ -129,7 +135,47 @@ namespace LibationFileManager
if (jObjFinal[LIBATION_FILES_KEY]?.Value<string>() is not string valueFinal) if (jObjFinal[LIBATION_FILES_KEY]?.Value<string>() is not string valueFinal)
throw new InvalidDataException($"{LIBATION_FILES_KEY} not found in {AppsettingsJsonFile}"); throw new InvalidDataException($"{LIBATION_FILES_KEY} not found in {AppsettingsJsonFile}");
if (IsWindows)
{
valueFinal = Environment.ExpandEnvironmentVariables(valueFinal);
}
else
{
//If the shell command fails and returns null, proceed with the verbatim
//LIBATION_FILES_KEY path and hope for the best. If Libation can't find
//anything at this path it will set LIBATION_FILES_KEY to UserProfile
valueFinal = runShellCommand("echo " + valueFinal) ?? valueFinal;
}
return valueFinal; return valueFinal;
static string? runShellCommand(string command)
{
var psi = new ProcessStartInfo
{
FileName = "/bin/sh",
RedirectStandardOutput = true,
UseShellExecute = false,
CreateNoWindow = true,
ArgumentList =
{
"-c",
command
}
};
try
{
var proc = Process.Start(psi);
proc?.WaitForExit();
return proc?.StandardOutput?.ReadToEnd()?.Trim();
}
catch (Exception e)
{
Serilog.Log.Error(e, "Failed to run shell command. {Arguments}", psi.ArgumentList);
return null;
}
}
} }
public static void SetLibationFiles(string directory) public static void SetLibationFiles(string directory)

View File

@ -95,20 +95,4 @@ public class GridContextMenu
return TemplateEditor<T>.CreateFilenameEditor(Configuration.Instance.Books, existingTemplate, folderDto, fileDto); return TemplateEditor<T>.CreateFilenameEditor(Configuration.Instance.Books, existingTemplate, folderDto, fileDto);
} }
}
class Command : ICommand
{
public event EventHandler CanExecuteChanged;
public bool CanExecute(object parameter)
{
throw new NotImplementedException();
}
public void Execute(object parameter)
{
throw new NotImplementedException();
}
} }

View File

@ -9,7 +9,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="SixLabors.ImageSharp" Version="3.0.1" /> <PackageReference Include="SixLabors.ImageSharp" Version="3.0.2" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -229,7 +229,7 @@
badBookGb.Controls.Add(badBookAskRb); badBookGb.Controls.Add(badBookAskRb);
badBookGb.Location = new System.Drawing.Point(7, 6); badBookGb.Location = new System.Drawing.Point(7, 6);
badBookGb.Name = "badBookGb"; badBookGb.Name = "badBookGb";
badBookGb.Size = new System.Drawing.Size(836, 76); badBookGb.Size = new System.Drawing.Size(841, 76);
badBookGb.TabIndex = 13; badBookGb.TabIndex = 13;
badBookGb.TabStop = false; badBookGb.TabStop = false;
badBookGb.Text = "[bad book desc]"; badBookGb.Text = "[bad book desc]";
@ -397,6 +397,7 @@
// //
// tab1ImportantSettings // tab1ImportantSettings
// //
tab1ImportantSettings.AutoScroll = true;
tab1ImportantSettings.Controls.Add(groupBox1); tab1ImportantSettings.Controls.Add(groupBox1);
tab1ImportantSettings.Controls.Add(booksGb); tab1ImportantSettings.Controls.Add(booksGb);
tab1ImportantSettings.Controls.Add(logsBtn); tab1ImportantSettings.Controls.Add(logsBtn);
@ -412,6 +413,7 @@
// //
// groupBox1 // groupBox1
// //
groupBox1.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
groupBox1.Controls.Add(applyDisplaySettingsBtn); groupBox1.Controls.Add(applyDisplaySettingsBtn);
groupBox1.Controls.Add(gridScaleFactorLbl); groupBox1.Controls.Add(gridScaleFactorLbl);
groupBox1.Controls.Add(gridScaleFactorTbar); groupBox1.Controls.Add(gridScaleFactorTbar);
@ -426,6 +428,7 @@
// //
// applyDisplaySettingsBtn // applyDisplaySettingsBtn
// //
applyDisplaySettingsBtn.Anchor = System.Windows.Forms.AnchorStyles.Right;
applyDisplaySettingsBtn.Location = new System.Drawing.Point(689, 26); applyDisplaySettingsBtn.Location = new System.Drawing.Point(689, 26);
applyDisplaySettingsBtn.Name = "applyDisplaySettingsBtn"; applyDisplaySettingsBtn.Name = "applyDisplaySettingsBtn";
applyDisplaySettingsBtn.Size = new System.Drawing.Size(148, 34); applyDisplaySettingsBtn.Size = new System.Drawing.Size(148, 34);
@ -554,6 +557,7 @@
// //
// tab2ImportLibrary // tab2ImportLibrary
// //
tab2ImportLibrary.AutoScroll = true;
tab2ImportLibrary.Controls.Add(autoDownloadEpisodesCb); tab2ImportLibrary.Controls.Add(autoDownloadEpisodesCb);
tab2ImportLibrary.Controls.Add(autoScanCb); tab2ImportLibrary.Controls.Add(autoScanCb);
tab2ImportLibrary.Controls.Add(showImportedStatsCb); tab2ImportLibrary.Controls.Add(showImportedStatsCb);
@ -599,6 +603,7 @@
// //
// tab3DownloadDecrypt // tab3DownloadDecrypt
// //
tab3DownloadDecrypt.AutoScroll = true;
tab3DownloadDecrypt.Controls.Add(saveMetadataToFileCbox); tab3DownloadDecrypt.Controls.Add(saveMetadataToFileCbox);
tab3DownloadDecrypt.Controls.Add(useCoverAsFolderIconCb); tab3DownloadDecrypt.Controls.Add(useCoverAsFolderIconCb);
tab3DownloadDecrypt.Controls.Add(inProgressFilesGb); tab3DownloadDecrypt.Controls.Add(inProgressFilesGb);
@ -764,6 +769,7 @@
// //
// tab4AudioFileOptions // tab4AudioFileOptions
// //
tab4AudioFileOptions.AutoScroll = true;
tab4AudioFileOptions.Controls.Add(fileDownloadQualityCb); tab4AudioFileOptions.Controls.Add(fileDownloadQualityCb);
tab4AudioFileOptions.Controls.Add(fileDownloadQualityLbl); tab4AudioFileOptions.Controls.Add(fileDownloadQualityLbl);
tab4AudioFileOptions.Controls.Add(combineNestedChapterTitlesCbox); tab4AudioFileOptions.Controls.Add(combineNestedChapterTitlesCbox);
@ -845,7 +851,7 @@
audiobookFixupsGb.Controls.Add(stripAudibleBrandingCbox); audiobookFixupsGb.Controls.Add(stripAudibleBrandingCbox);
audiobookFixupsGb.Location = new System.Drawing.Point(6, 200); audiobookFixupsGb.Location = new System.Drawing.Point(6, 200);
audiobookFixupsGb.Name = "audiobookFixupsGb"; audiobookFixupsGb.Name = "audiobookFixupsGb";
audiobookFixupsGb.Size = new System.Drawing.Size(403, 182); audiobookFixupsGb.Size = new System.Drawing.Size(385, 182);
audiobookFixupsGb.TabIndex = 19; audiobookFixupsGb.TabIndex = 19;
audiobookFixupsGb.TabStop = false; audiobookFixupsGb.TabStop = false;
audiobookFixupsGb.Text = "Audiobook Fix-ups"; audiobookFixupsGb.Text = "Audiobook Fix-ups";
@ -872,6 +878,7 @@
// //
// chapterTitleTemplateGb // chapterTitleTemplateGb
// //
chapterTitleTemplateGb.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
chapterTitleTemplateGb.Controls.Add(chapterTitleTemplateBtn); chapterTitleTemplateGb.Controls.Add(chapterTitleTemplateBtn);
chapterTitleTemplateGb.Controls.Add(chapterTitleTemplateTb); chapterTitleTemplateGb.Controls.Add(chapterTitleTemplateTb);
chapterTitleTemplateGb.Location = new System.Drawing.Point(3, 388); chapterTitleTemplateGb.Location = new System.Drawing.Point(3, 388);
@ -903,6 +910,7 @@
// //
// lameOptionsGb // lameOptionsGb
// //
lameOptionsGb.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
lameOptionsGb.Controls.Add(label20); lameOptionsGb.Controls.Add(label20);
lameOptionsGb.Controls.Add(label21); lameOptionsGb.Controls.Add(label21);
lameOptionsGb.Controls.Add(encoderQualityCb); lameOptionsGb.Controls.Add(encoderQualityCb);
@ -912,9 +920,9 @@
lameOptionsGb.Controls.Add(label1); lameOptionsGb.Controls.Add(label1);
lameOptionsGb.Controls.Add(lameQualityGb); lameOptionsGb.Controls.Add(lameQualityGb);
lameOptionsGb.Controls.Add(groupBox2); lameOptionsGb.Controls.Add(groupBox2);
lameOptionsGb.Location = new System.Drawing.Point(415, 6); lameOptionsGb.Location = new System.Drawing.Point(397, 6);
lameOptionsGb.Name = "lameOptionsGb"; lameOptionsGb.Name = "lameOptionsGb";
lameOptionsGb.Size = new System.Drawing.Size(433, 376); lameOptionsGb.Size = new System.Drawing.Size(450, 376);
lameOptionsGb.TabIndex = 14; lameOptionsGb.TabIndex = 14;
lameOptionsGb.TabStop = false; lameOptionsGb.TabStop = false;
lameOptionsGb.Text = "Mp3 Encoding Options"; lameOptionsGb.Text = "Mp3 Encoding Options";
@ -930,6 +938,7 @@
// //
// label21 // label21
// //
label21.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
label21.AutoSize = true; label21.AutoSize = true;
label21.Location = new System.Drawing.Point(239, 89); label21.Location = new System.Drawing.Point(239, 89);
label21.Name = "label21"; label21.Name = "label21";
@ -939,33 +948,37 @@
// //
// encoderQualityCb // encoderQualityCb
// //
encoderQualityCb.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
encoderQualityCb.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; encoderQualityCb.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
encoderQualityCb.FormattingEnabled = true; encoderQualityCb.FormattingEnabled = true;
encoderQualityCb.Location = new System.Drawing.Point(337, 86); encoderQualityCb.Location = new System.Drawing.Point(337, 86);
encoderQualityCb.Name = "encoderQualityCb"; encoderQualityCb.Name = "encoderQualityCb";
encoderQualityCb.Size = new System.Drawing.Size(90, 23); encoderQualityCb.Size = new System.Drawing.Size(107, 23);
encoderQualityCb.TabIndex = 2; encoderQualityCb.TabIndex = 2;
// //
// maxSampleRateCb // maxSampleRateCb
// //
maxSampleRateCb.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
maxSampleRateCb.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; maxSampleRateCb.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
maxSampleRateCb.FormattingEnabled = true; maxSampleRateCb.FormattingEnabled = true;
maxSampleRateCb.Location = new System.Drawing.Point(119, 86); maxSampleRateCb.Location = new System.Drawing.Point(119, 86);
maxSampleRateCb.Name = "maxSampleRateCb"; maxSampleRateCb.Name = "maxSampleRateCb";
maxSampleRateCb.Size = new System.Drawing.Size(101, 23); maxSampleRateCb.Size = new System.Drawing.Size(76, 23);
maxSampleRateCb.TabIndex = 2; maxSampleRateCb.TabIndex = 2;
// //
// lameDownsampleMonoCbox // lameDownsampleMonoCbox
// //
lameDownsampleMonoCbox.Location = new System.Drawing.Point(237, 30); lameDownsampleMonoCbox.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right;
lameDownsampleMonoCbox.Location = new System.Drawing.Point(247, 29);
lameDownsampleMonoCbox.Name = "lameDownsampleMonoCbox"; lameDownsampleMonoCbox.Name = "lameDownsampleMonoCbox";
lameDownsampleMonoCbox.Size = new System.Drawing.Size(184, 34); lameDownsampleMonoCbox.Size = new System.Drawing.Size(197, 34);
lameDownsampleMonoCbox.TabIndex = 1; lameDownsampleMonoCbox.TabIndex = 1;
lameDownsampleMonoCbox.Text = "Downsample stereo to mono?\r\n(Recommended)\r\n"; lameDownsampleMonoCbox.Text = "Downsample stereo to mono?\r\n(Recommended)\r\n";
lameDownsampleMonoCbox.UseVisualStyleBackColor = true; lameDownsampleMonoCbox.UseVisualStyleBackColor = true;
// //
// lameBitrateGb // lameBitrateGb
// //
lameBitrateGb.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
lameBitrateGb.Controls.Add(LameMatchSourceBRCbox); lameBitrateGb.Controls.Add(LameMatchSourceBRCbox);
lameBitrateGb.Controls.Add(lameConstantBitrateCbox); lameBitrateGb.Controls.Add(lameConstantBitrateCbox);
lameBitrateGb.Controls.Add(label7); lameBitrateGb.Controls.Add(label7);
@ -977,15 +990,16 @@
lameBitrateGb.Controls.Add(lameBitrateTb); lameBitrateGb.Controls.Add(lameBitrateTb);
lameBitrateGb.Location = new System.Drawing.Point(6, 116); lameBitrateGb.Location = new System.Drawing.Point(6, 116);
lameBitrateGb.Name = "lameBitrateGb"; lameBitrateGb.Name = "lameBitrateGb";
lameBitrateGb.Size = new System.Drawing.Size(421, 113); lameBitrateGb.Size = new System.Drawing.Size(438, 113);
lameBitrateGb.TabIndex = 0; lameBitrateGb.TabIndex = 0;
lameBitrateGb.TabStop = false; lameBitrateGb.TabStop = false;
lameBitrateGb.Text = "Bitrate"; lameBitrateGb.Text = "Bitrate";
// //
// LameMatchSourceBRCbox // LameMatchSourceBRCbox
// //
LameMatchSourceBRCbox.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right;
LameMatchSourceBRCbox.AutoSize = true; LameMatchSourceBRCbox.AutoSize = true;
LameMatchSourceBRCbox.Location = new System.Drawing.Point(275, 76); LameMatchSourceBRCbox.Location = new System.Drawing.Point(254, 76);
LameMatchSourceBRCbox.Name = "LameMatchSourceBRCbox"; LameMatchSourceBRCbox.Name = "LameMatchSourceBRCbox";
LameMatchSourceBRCbox.Size = new System.Drawing.Size(140, 19); LameMatchSourceBRCbox.Size = new System.Drawing.Size(140, 19);
LameMatchSourceBRCbox.TabIndex = 3; LameMatchSourceBRCbox.TabIndex = 3;
@ -1005,6 +1019,7 @@
// //
// label7 // label7
// //
label7.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
label7.AutoSize = true; label7.AutoSize = true;
label7.BackColor = System.Drawing.SystemColors.ControlLightLight; label7.BackColor = System.Drawing.SystemColors.ControlLightLight;
label7.Location = new System.Drawing.Point(390, 52); label7.Location = new System.Drawing.Point(390, 52);
@ -1015,6 +1030,7 @@
// //
// label6 // label6
// //
label6.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
label6.AutoSize = true; label6.AutoSize = true;
label6.BackColor = System.Drawing.SystemColors.ControlLightLight; label6.BackColor = System.Drawing.SystemColors.ControlLightLight;
label6.Location = new System.Drawing.Point(309, 52); label6.Location = new System.Drawing.Point(309, 52);
@ -1025,6 +1041,7 @@
// //
// label5 // label5
// //
label5.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
label5.AutoSize = true; label5.AutoSize = true;
label5.BackColor = System.Drawing.SystemColors.ControlLightLight; label5.BackColor = System.Drawing.SystemColors.ControlLightLight;
label5.Location = new System.Drawing.Point(228, 52); label5.Location = new System.Drawing.Point(228, 52);
@ -1035,6 +1052,7 @@
// //
// label4 // label4
// //
label4.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
label4.AutoSize = true; label4.AutoSize = true;
label4.BackColor = System.Drawing.SystemColors.ControlLightLight; label4.BackColor = System.Drawing.SystemColors.ControlLightLight;
label4.Location = new System.Drawing.Point(147, 52); label4.Location = new System.Drawing.Point(147, 52);
@ -1045,6 +1063,7 @@
// //
// label11 // label11
// //
label11.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
label11.AutoSize = true; label11.AutoSize = true;
label11.BackColor = System.Drawing.SystemColors.ControlLightLight; label11.BackColor = System.Drawing.SystemColors.ControlLightLight;
label11.Location = new System.Drawing.Point(10, 52); label11.Location = new System.Drawing.Point(10, 52);
@ -1055,6 +1074,7 @@
// //
// label3 // label3
// //
label3.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
label3.AutoSize = true; label3.AutoSize = true;
label3.BackColor = System.Drawing.SystemColors.ControlLightLight; label3.BackColor = System.Drawing.SystemColors.ControlLightLight;
label3.Location = new System.Drawing.Point(71, 52); label3.Location = new System.Drawing.Point(71, 52);
@ -1071,7 +1091,7 @@
lameBitrateTb.Maximum = 320; lameBitrateTb.Maximum = 320;
lameBitrateTb.Minimum = 16; lameBitrateTb.Minimum = 16;
lameBitrateTb.Name = "lameBitrateTb"; lameBitrateTb.Name = "lameBitrateTb";
lameBitrateTb.Size = new System.Drawing.Size(409, 45); lameBitrateTb.Size = new System.Drawing.Size(408, 45);
lameBitrateTb.SmallChange = 8; lameBitrateTb.SmallChange = 8;
lameBitrateTb.TabIndex = 0; lameBitrateTb.TabIndex = 0;
lameBitrateTb.TickFrequency = 16; lameBitrateTb.TickFrequency = 16;
@ -1090,6 +1110,7 @@
// //
// lameQualityGb // lameQualityGb
// //
lameQualityGb.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
lameQualityGb.Controls.Add(label19); lameQualityGb.Controls.Add(label19);
lameQualityGb.Controls.Add(label18); lameQualityGb.Controls.Add(label18);
lameQualityGb.Controls.Add(label17); lameQualityGb.Controls.Add(label17);
@ -1105,13 +1126,14 @@
lameQualityGb.Controls.Add(lameVBRQualityTb); lameQualityGb.Controls.Add(lameVBRQualityTb);
lameQualityGb.Location = new System.Drawing.Point(6, 235); lameQualityGb.Location = new System.Drawing.Point(6, 235);
lameQualityGb.Name = "lameQualityGb"; lameQualityGb.Name = "lameQualityGb";
lameQualityGb.Size = new System.Drawing.Size(421, 109); lameQualityGb.Size = new System.Drawing.Size(438, 109);
lameQualityGb.TabIndex = 0; lameQualityGb.TabIndex = 0;
lameQualityGb.TabStop = false; lameQualityGb.TabStop = false;
lameQualityGb.Text = "Quality"; lameQualityGb.Text = "Quality";
// //
// label19 // label19
// //
label19.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
label19.AutoSize = true; label19.AutoSize = true;
label19.Location = new System.Drawing.Point(349, 52); label19.Location = new System.Drawing.Point(349, 52);
label19.Name = "label19"; label19.Name = "label19";
@ -1121,6 +1143,7 @@
// //
// label18 // label18
// //
label18.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
label18.AutoSize = true; label18.AutoSize = true;
label18.Location = new System.Drawing.Point(307, 52); label18.Location = new System.Drawing.Point(307, 52);
label18.Name = "label18"; label18.Name = "label18";
@ -1130,6 +1153,7 @@
// //
// label17 // label17
// //
label17.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
label17.AutoSize = true; label17.AutoSize = true;
label17.Location = new System.Drawing.Point(265, 52); label17.Location = new System.Drawing.Point(265, 52);
label17.Name = "label17"; label17.Name = "label17";
@ -1139,6 +1163,7 @@
// //
// label16 // label16
// //
label16.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
label16.AutoSize = true; label16.AutoSize = true;
label16.Location = new System.Drawing.Point(223, 52); label16.Location = new System.Drawing.Point(223, 52);
label16.Name = "label16"; label16.Name = "label16";
@ -1148,6 +1173,7 @@
// //
// label12 // label12
// //
label12.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
label12.AutoSize = true; label12.AutoSize = true;
label12.Location = new System.Drawing.Point(182, 52); label12.Location = new System.Drawing.Point(182, 52);
label12.Name = "label12"; label12.Name = "label12";
@ -1157,6 +1183,7 @@
// //
// label15 // label15
// //
label15.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
label15.AutoSize = true; label15.AutoSize = true;
label15.Location = new System.Drawing.Point(140, 52); label15.Location = new System.Drawing.Point(140, 52);
label15.Name = "label15"; label15.Name = "label15";
@ -1166,6 +1193,7 @@
// //
// label9 // label9
// //
label9.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
label9.AutoSize = true; label9.AutoSize = true;
label9.Location = new System.Drawing.Point(97, 52); label9.Location = new System.Drawing.Point(97, 52);
label9.Name = "label9"; label9.Name = "label9";
@ -1175,6 +1203,7 @@
// //
// label8 // label8
// //
label8.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
label8.AutoSize = true; label8.AutoSize = true;
label8.Location = new System.Drawing.Point(391, 52); label8.Location = new System.Drawing.Point(391, 52);
label8.Name = "label8"; label8.Name = "label8";
@ -1202,6 +1231,7 @@
// //
// label14 // label14
// //
label14.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
label14.AutoSize = true; label14.AutoSize = true;
label14.Location = new System.Drawing.Point(56, 52); label14.Location = new System.Drawing.Point(56, 52);
label14.Name = "label14"; label14.Name = "label14";
@ -1211,6 +1241,7 @@
// //
// label2 // label2
// //
label2.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
label2.AutoSize = true; label2.AutoSize = true;
label2.Location = new System.Drawing.Point(14, 52); label2.Location = new System.Drawing.Point(14, 52);
label2.Name = "label2"; label2.Name = "label2";
@ -1225,25 +1256,27 @@
lameVBRQualityTb.Location = new System.Drawing.Point(10, 22); lameVBRQualityTb.Location = new System.Drawing.Point(10, 22);
lameVBRQualityTb.Maximum = 9; lameVBRQualityTb.Maximum = 9;
lameVBRQualityTb.Name = "lameVBRQualityTb"; lameVBRQualityTb.Name = "lameVBRQualityTb";
lameVBRQualityTb.Size = new System.Drawing.Size(405, 45); lameVBRQualityTb.Size = new System.Drawing.Size(404, 45);
lameVBRQualityTb.TabIndex = 0; lameVBRQualityTb.TabIndex = 0;
lameVBRQualityTb.Value = 9; lameVBRQualityTb.Value = 9;
// //
// groupBox2 // groupBox2
// //
groupBox2.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
groupBox2.Controls.Add(lameTargetQualityRb); groupBox2.Controls.Add(lameTargetQualityRb);
groupBox2.Controls.Add(lameTargetBitrateRb); groupBox2.Controls.Add(lameTargetBitrateRb);
groupBox2.Location = new System.Drawing.Point(6, 22); groupBox2.Location = new System.Drawing.Point(6, 22);
groupBox2.Name = "groupBox2"; groupBox2.Name = "groupBox2";
groupBox2.Size = new System.Drawing.Size(214, 58); groupBox2.Size = new System.Drawing.Size(189, 58);
groupBox2.TabIndex = 0; groupBox2.TabIndex = 0;
groupBox2.TabStop = false; groupBox2.TabStop = false;
groupBox2.Text = "Target"; groupBox2.Text = "Target";
// //
// lameTargetQualityRb // lameTargetQualityRb
// //
lameTargetQualityRb.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right;
lameTargetQualityRb.AutoSize = true; lameTargetQualityRb.AutoSize = true;
lameTargetQualityRb.Location = new System.Drawing.Point(139, 22); lameTargetQualityRb.Location = new System.Drawing.Point(118, 22);
lameTargetQualityRb.Name = "lameTargetQualityRb"; lameTargetQualityRb.Name = "lameTargetQualityRb";
lameTargetQualityRb.Size = new System.Drawing.Size(63, 19); lameTargetQualityRb.Size = new System.Drawing.Size(63, 19);
lameTargetQualityRb.TabIndex = 0; lameTargetQualityRb.TabIndex = 0;
@ -1321,7 +1354,6 @@
Controls.Add(tabControl); Controls.Add(tabControl);
Controls.Add(cancelBtn); Controls.Add(cancelBtn);
Controls.Add(saveBtn); Controls.Add(saveBtn);
FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
MaximizeBox = false; MaximizeBox = false;
MinimizeBox = false; MinimizeBox = false;

View File

@ -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>

View File

@ -26,7 +26,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.Web.WebView2" Version="1.0.1901.177" /> <PackageReference Include="Microsoft.Web.WebView2" Version="1.0.1938.49" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -6,8 +6,8 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="FluentAssertions" Version="6.11.0" /> <PackageReference Include="FluentAssertions" Version="6.12.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.0" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.2" />
<PackageReference Include="MSTest.TestAdapter" Version="3.1.1" /> <PackageReference Include="MSTest.TestAdapter" Version="3.1.1" />
<PackageReference Include="MSTest.TestFramework" Version="3.1.1" /> <PackageReference Include="MSTest.TestFramework" Version="3.1.1" />
<PackageReference Include="coverlet.collector" Version="6.0.0"> <PackageReference Include="coverlet.collector" Version="6.0.0">

View File

@ -6,8 +6,8 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="FluentAssertions" Version="6.11.0" /> <PackageReference Include="FluentAssertions" Version="6.12.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.0" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.2" />
<PackageReference Include="MSTest.TestAdapter" Version="3.1.1" /> <PackageReference Include="MSTest.TestAdapter" Version="3.1.1" />
<PackageReference Include="MSTest.TestFramework" Version="3.1.1" /> <PackageReference Include="MSTest.TestFramework" Version="3.1.1" />
<PackageReference Include="coverlet.collector" Version="6.0.0"> <PackageReference Include="coverlet.collector" Version="6.0.0">

View File

@ -7,8 +7,8 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="FluentAssertions" Version="6.11.0" /> <PackageReference Include="FluentAssertions" Version="6.12.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.0" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.2" />
<PackageReference Include="MSTest.TestAdapter" Version="3.1.1" /> <PackageReference Include="MSTest.TestAdapter" Version="3.1.1" />
<PackageReference Include="MSTest.TestFramework" Version="3.1.1" /> <PackageReference Include="MSTest.TestFramework" Version="3.1.1" />
<PackageReference Include="coverlet.collector" Version="6.0.0"> <PackageReference Include="coverlet.collector" Version="6.0.0">

View File

@ -7,8 +7,8 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="FluentAssertions" Version="6.11.0" /> <PackageReference Include="FluentAssertions" Version="6.12.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.0" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.2" />
<PackageReference Include="MSTest.TestAdapter" Version="3.1.1" /> <PackageReference Include="MSTest.TestAdapter" Version="3.1.1" />
<PackageReference Include="MSTest.TestFramework" Version="3.1.1" /> <PackageReference Include="MSTest.TestFramework" Version="3.1.1" />
<PackageReference Include="coverlet.collector" Version="6.0.0"> <PackageReference Include="coverlet.collector" Version="6.0.0">

View File

@ -7,8 +7,8 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="FluentAssertions" Version="6.11.0" /> <PackageReference Include="FluentAssertions" Version="6.12.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.0" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.2" />
<PackageReference Include="MSTest.TestAdapter" Version="3.1.1" /> <PackageReference Include="MSTest.TestAdapter" Version="3.1.1" />
<PackageReference Include="MSTest.TestFramework" Version="3.1.1" /> <PackageReference Include="MSTest.TestFramework" Version="3.1.1" />
<PackageReference Include="coverlet.collector" Version="6.0.0"> <PackageReference Include="coverlet.collector" Version="6.0.0">