Bug fix #657 : Settings dialog size was recently changed. Save and Cancel buttons were pushed outside of the dialog's bounds

This commit is contained in:
Robert McRackan 2023-07-06 09:27:52 -04:00
parent 22a3dcbc1f
commit bfa7f5cca9
7 changed files with 1727 additions and 1825 deletions

View File

@ -2,7 +2,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net7.0</TargetFramework> <TargetFramework>net7.0</TargetFramework>
<Version>10.5.0.1</Version> <Version>10.5.1.1</Version>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Octokit" Version="6.0.0" /> <PackageReference Include="Octokit" Version="6.0.0" />

View File

@ -5,165 +5,165 @@ using LibationUiBase;
namespace LibationWinForms.Dialogs namespace LibationWinForms.Dialogs
{ {
partial class SettingsDialog partial class SettingsDialog
{ {
private void Load_AudioSettings(Configuration config) private void Load_AudioSettings(Configuration config)
{ {
this.fileDownloadQualityLbl.Text = desc(nameof(config.FileDownloadQuality)); this.fileDownloadQualityLbl.Text = desc(nameof(config.FileDownloadQuality));
this.allowLibationFixupCbox.Text = desc(nameof(config.AllowLibationFixup)); this.allowLibationFixupCbox.Text = desc(nameof(config.AllowLibationFixup));
this.createCueSheetCbox.Text = desc(nameof(config.CreateCueSheet)); this.createCueSheetCbox.Text = desc(nameof(config.CreateCueSheet));
this.downloadCoverArtCbox.Text = desc(nameof(config.DownloadCoverArt)); this.downloadCoverArtCbox.Text = desc(nameof(config.DownloadCoverArt));
this.retainAaxFileCbox.Text = desc(nameof(config.RetainAaxFile)); this.retainAaxFileCbox.Text = desc(nameof(config.RetainAaxFile));
this.splitFilesByChapterCbox.Text = desc(nameof(config.SplitFilesByChapter)); this.splitFilesByChapterCbox.Text = desc(nameof(config.SplitFilesByChapter));
this.mergeOpeningEndCreditsCbox.Text = desc(nameof(config.MergeOpeningAndEndCredits)); this.mergeOpeningEndCreditsCbox.Text = desc(nameof(config.MergeOpeningAndEndCredits));
this.stripAudibleBrandingCbox.Text = desc(nameof(config.StripAudibleBrandAudio)); this.stripAudibleBrandingCbox.Text = desc(nameof(config.StripAudibleBrandAudio));
this.stripUnabridgedCbox.Text = desc(nameof(config.StripUnabridged)); this.stripUnabridgedCbox.Text = desc(nameof(config.StripUnabridged));
this.moveMoovAtomCbox.Text = desc(nameof(config.MoveMoovToBeginning)); this.moveMoovAtomCbox.Text = desc(nameof(config.MoveMoovToBeginning));
fileDownloadQualityCb.Items.AddRange( fileDownloadQualityCb.Items.AddRange(
new object[] new object[]
{ {
Configuration.DownloadQuality.Normal, Configuration.DownloadQuality.Normal,
Configuration.DownloadQuality.High Configuration.DownloadQuality.High
}); });
clipsBookmarksFormatCb.Items.AddRange( clipsBookmarksFormatCb.Items.AddRange(
new object[] new object[]
{ {
Configuration.ClipBookmarkFormat.CSV, Configuration.ClipBookmarkFormat.CSV,
Configuration.ClipBookmarkFormat.Xlsx, Configuration.ClipBookmarkFormat.Xlsx,
Configuration.ClipBookmarkFormat.Json Configuration.ClipBookmarkFormat.Json
}); });
maxSampleRateCb.Items.AddRange( maxSampleRateCb.Items.AddRange(
Enum.GetValues<AAXClean.SampleRate>() Enum.GetValues<AAXClean.SampleRate>()
.Select(v => new EnumDiaplay<AAXClean.SampleRate>(v, $"{(int)v} Hz")) .Select(v => new EnumDiaplay<AAXClean.SampleRate>(v, $"{(int)v} Hz"))
.ToArray()); .ToArray());
encoderQualityCb.Items.AddRange( encoderQualityCb.Items.AddRange(
new object[] new object[]
{ {
NAudio.Lame.EncoderQuality.High, NAudio.Lame.EncoderQuality.High,
NAudio.Lame.EncoderQuality.Standard, NAudio.Lame.EncoderQuality.Standard,
NAudio.Lame.EncoderQuality.Fast, NAudio.Lame.EncoderQuality.Fast,
}); });
allowLibationFixupCbox.Checked = config.AllowLibationFixup; allowLibationFixupCbox.Checked = config.AllowLibationFixup;
createCueSheetCbox.Checked = config.CreateCueSheet; createCueSheetCbox.Checked = config.CreateCueSheet;
downloadCoverArtCbox.Checked = config.DownloadCoverArt; downloadCoverArtCbox.Checked = config.DownloadCoverArt;
downloadClipsBookmarksCbox.Checked = config.DownloadClipsBookmarks; downloadClipsBookmarksCbox.Checked = config.DownloadClipsBookmarks;
fileDownloadQualityCb.SelectedItem = config.FileDownloadQuality; fileDownloadQualityCb.SelectedItem = config.FileDownloadQuality;
clipsBookmarksFormatCb.SelectedItem = config.ClipsBookmarksFileFormat; clipsBookmarksFormatCb.SelectedItem = config.ClipsBookmarksFileFormat;
retainAaxFileCbox.Checked = config.RetainAaxFile; retainAaxFileCbox.Checked = config.RetainAaxFile;
splitFilesByChapterCbox.Checked = config.SplitFilesByChapter; splitFilesByChapterCbox.Checked = config.SplitFilesByChapter;
mergeOpeningEndCreditsCbox.Checked = config.MergeOpeningAndEndCredits; mergeOpeningEndCreditsCbox.Checked = config.MergeOpeningAndEndCredits;
stripUnabridgedCbox.Checked = config.StripUnabridged; stripUnabridgedCbox.Checked = config.StripUnabridged;
stripAudibleBrandingCbox.Checked = config.StripAudibleBrandAudio; stripAudibleBrandingCbox.Checked = config.StripAudibleBrandAudio;
convertLosslessRb.Checked = !config.DecryptToLossy; convertLosslessRb.Checked = !config.DecryptToLossy;
convertLossyRb.Checked = config.DecryptToLossy; convertLossyRb.Checked = config.DecryptToLossy;
moveMoovAtomCbox.Checked = config.MoveMoovToBeginning; moveMoovAtomCbox.Checked = config.MoveMoovToBeginning;
lameTargetBitrateRb.Checked = config.LameTargetBitrate; lameTargetBitrateRb.Checked = config.LameTargetBitrate;
lameTargetQualityRb.Checked = !config.LameTargetBitrate; lameTargetQualityRb.Checked = !config.LameTargetBitrate;
maxSampleRateCb.SelectedItem maxSampleRateCb.SelectedItem
= maxSampleRateCb.Items = maxSampleRateCb.Items
.Cast<EnumDiaplay<AAXClean.SampleRate>>() .Cast<EnumDiaplay<AAXClean.SampleRate>>()
.SingleOrDefault(v => v.Value == config.MaxSampleRate) .SingleOrDefault(v => v.Value == config.MaxSampleRate)
?? maxSampleRateCb.Items[0]; ?? maxSampleRateCb.Items[0];
encoderQualityCb.SelectedItem = config.LameEncoderQuality; encoderQualityCb.SelectedItem = config.LameEncoderQuality;
lameDownsampleMonoCbox.Checked = config.LameDownsampleMono; lameDownsampleMonoCbox.Checked = config.LameDownsampleMono;
lameBitrateTb.Value = config.LameBitrate; lameBitrateTb.Value = config.LameBitrate;
lameConstantBitrateCbox.Checked = config.LameConstantBitrate; lameConstantBitrateCbox.Checked = config.LameConstantBitrate;
LameMatchSourceBRCbox.Checked = config.LameMatchSourceBR; LameMatchSourceBRCbox.Checked = config.LameMatchSourceBR;
lameVBRQualityTb.Value = config.LameVBRQuality; lameVBRQualityTb.Value = config.LameVBRQuality;
chapterTitleTemplateGb.Text = desc(nameof(config.ChapterTitleTemplate)); chapterTitleTemplateGb.Text = desc(nameof(config.ChapterTitleTemplate));
chapterTitleTemplateTb.Text = config.ChapterTitleTemplate; chapterTitleTemplateTb.Text = config.ChapterTitleTemplate;
lameTargetRb_CheckedChanged(this, EventArgs.Empty); lameTargetRb_CheckedChanged(this, EventArgs.Empty);
LameMatchSourceBRCbox_CheckedChanged(this, EventArgs.Empty); LameMatchSourceBRCbox_CheckedChanged(this, EventArgs.Empty);
convertFormatRb_CheckedChanged(this, EventArgs.Empty); convertFormatRb_CheckedChanged(this, EventArgs.Empty);
allowLibationFixupCbox_CheckedChanged(this, EventArgs.Empty); allowLibationFixupCbox_CheckedChanged(this, EventArgs.Empty);
splitFilesByChapterCbox_CheckedChanged(this, EventArgs.Empty); splitFilesByChapterCbox_CheckedChanged(this, EventArgs.Empty);
downloadClipsBookmarksCbox_CheckedChanged(this, EventArgs.Empty); downloadClipsBookmarksCbox_CheckedChanged(this, EventArgs.Empty);
} }
private void Save_AudioSettings(Configuration config) private void Save_AudioSettings(Configuration config)
{ {
config.AllowLibationFixup = allowLibationFixupCbox.Checked; config.AllowLibationFixup = allowLibationFixupCbox.Checked;
config.CreateCueSheet = createCueSheetCbox.Checked; config.CreateCueSheet = createCueSheetCbox.Checked;
config.DownloadCoverArt = downloadCoverArtCbox.Checked; config.DownloadCoverArt = downloadCoverArtCbox.Checked;
config.DownloadClipsBookmarks = downloadClipsBookmarksCbox.Checked; config.DownloadClipsBookmarks = downloadClipsBookmarksCbox.Checked;
config.FileDownloadQuality = (Configuration.DownloadQuality)fileDownloadQualityCb.SelectedItem; config.FileDownloadQuality = (Configuration.DownloadQuality)fileDownloadQualityCb.SelectedItem;
config.ClipsBookmarksFileFormat = (Configuration.ClipBookmarkFormat)clipsBookmarksFormatCb.SelectedItem; config.ClipsBookmarksFileFormat = (Configuration.ClipBookmarkFormat)clipsBookmarksFormatCb.SelectedItem;
config.RetainAaxFile = retainAaxFileCbox.Checked; config.RetainAaxFile = retainAaxFileCbox.Checked;
config.SplitFilesByChapter = splitFilesByChapterCbox.Checked; config.SplitFilesByChapter = splitFilesByChapterCbox.Checked;
config.MergeOpeningAndEndCredits = mergeOpeningEndCreditsCbox.Checked; config.MergeOpeningAndEndCredits = mergeOpeningEndCreditsCbox.Checked;
config.StripUnabridged = stripUnabridgedCbox.Checked; config.StripUnabridged = stripUnabridgedCbox.Checked;
config.StripAudibleBrandAudio = stripAudibleBrandingCbox.Checked; config.StripAudibleBrandAudio = stripAudibleBrandingCbox.Checked;
config.DecryptToLossy = convertLossyRb.Checked; config.DecryptToLossy = convertLossyRb.Checked;
config.MoveMoovToBeginning = moveMoovAtomCbox.Checked; config.MoveMoovToBeginning = moveMoovAtomCbox.Checked;
config.LameTargetBitrate = lameTargetBitrateRb.Checked; config.LameTargetBitrate = lameTargetBitrateRb.Checked;
config.MaxSampleRate = ((EnumDiaplay<AAXClean.SampleRate>)maxSampleRateCb.SelectedItem).Value; config.MaxSampleRate = ((EnumDiaplay<AAXClean.SampleRate>)maxSampleRateCb.SelectedItem).Value;
config.LameEncoderQuality = (NAudio.Lame.EncoderQuality)encoderQualityCb.SelectedItem; config.LameEncoderQuality = (NAudio.Lame.EncoderQuality)encoderQualityCb.SelectedItem;
config.LameDownsampleMono = lameDownsampleMonoCbox.Checked; config.LameDownsampleMono = lameDownsampleMonoCbox.Checked;
config.LameBitrate = lameBitrateTb.Value; config.LameBitrate = lameBitrateTb.Value;
config.LameConstantBitrate = lameConstantBitrateCbox.Checked; config.LameConstantBitrate = lameConstantBitrateCbox.Checked;
config.LameMatchSourceBR = LameMatchSourceBRCbox.Checked; config.LameMatchSourceBR = LameMatchSourceBRCbox.Checked;
config.LameVBRQuality = lameVBRQualityTb.Value; config.LameVBRQuality = lameVBRQualityTb.Value;
config.ChapterTitleTemplate = chapterTitleTemplateTb.Text; config.ChapterTitleTemplate = chapterTitleTemplateTb.Text;
} }
private void downloadClipsBookmarksCbox_CheckedChanged(object sender, EventArgs e) private void downloadClipsBookmarksCbox_CheckedChanged(object sender, EventArgs e)
{ {
clipsBookmarksFormatCb.Enabled = downloadClipsBookmarksCbox.Checked; clipsBookmarksFormatCb.Enabled = downloadClipsBookmarksCbox.Checked;
} }
private void lameTargetRb_CheckedChanged(object sender, EventArgs e) private void lameTargetRb_CheckedChanged(object sender, EventArgs e)
{ {
lameBitrateGb.Enabled = lameTargetBitrateRb.Checked; lameBitrateGb.Enabled = lameTargetBitrateRb.Checked;
lameQualityGb.Enabled = !lameTargetBitrateRb.Checked; lameQualityGb.Enabled = !lameTargetBitrateRb.Checked;
} }
private void LameMatchSourceBRCbox_CheckedChanged(object sender, EventArgs e) private void LameMatchSourceBRCbox_CheckedChanged(object sender, EventArgs e)
{ {
lameBitrateTb.Enabled = !LameMatchSourceBRCbox.Checked; lameBitrateTb.Enabled = !LameMatchSourceBRCbox.Checked;
} }
private void splitFilesByChapterCbox_CheckedChanged(object sender, EventArgs e) private void splitFilesByChapterCbox_CheckedChanged(object sender, EventArgs e)
{ {
chapterTitleTemplateGb.Enabled = splitFilesByChapterCbox.Checked; chapterTitleTemplateGb.Enabled = splitFilesByChapterCbox.Checked;
} }
private void chapterTitleTemplateBtn_Click(object sender, EventArgs e) private void chapterTitleTemplateBtn_Click(object sender, EventArgs e)
=> editTemplate(TemplateEditor<Templates.ChapterTitleTemplate>.CreateNameEditor(chapterTitleTemplateTb.Text), chapterTitleTemplateTb); => editTemplate(TemplateEditor<Templates.ChapterTitleTemplate>.CreateNameEditor(chapterTitleTemplateTb.Text), chapterTitleTemplateTb);
private void convertFormatRb_CheckedChanged(object sender, EventArgs e) private void convertFormatRb_CheckedChanged(object sender, EventArgs e)
{ {
moveMoovAtomCbox.Enabled = convertLosslessRb.Checked; moveMoovAtomCbox.Enabled = convertLosslessRb.Checked;
lameTargetRb_CheckedChanged(sender, e); lameTargetRb_CheckedChanged(sender, e);
LameMatchSourceBRCbox_CheckedChanged(sender, e); LameMatchSourceBRCbox_CheckedChanged(sender, e);
} }
private void allowLibationFixupCbox_CheckedChanged(object sender, EventArgs e) private void allowLibationFixupCbox_CheckedChanged(object sender, EventArgs e)
{ {
audiobookFixupsGb.Enabled = allowLibationFixupCbox.Checked; audiobookFixupsGb.Enabled = allowLibationFixupCbox.Checked;
convertLosslessRb.Enabled = allowLibationFixupCbox.Checked; convertLosslessRb.Enabled = allowLibationFixupCbox.Checked;
convertLossyRb.Enabled = allowLibationFixupCbox.Checked; convertLossyRb.Enabled = allowLibationFixupCbox.Checked;
splitFilesByChapterCbox.Enabled = allowLibationFixupCbox.Checked; splitFilesByChapterCbox.Enabled = allowLibationFixupCbox.Checked;
stripUnabridgedCbox.Enabled = allowLibationFixupCbox.Checked; stripUnabridgedCbox.Enabled = allowLibationFixupCbox.Checked;
stripAudibleBrandingCbox.Enabled = allowLibationFixupCbox.Checked; stripAudibleBrandingCbox.Enabled = allowLibationFixupCbox.Checked;
if (!allowLibationFixupCbox.Checked) if (!allowLibationFixupCbox.Checked)
{ {
convertLosslessRb.Checked = true; convertLosslessRb.Checked = true;
splitFilesByChapterCbox.Checked = false; splitFilesByChapterCbox.Checked = false;
stripUnabridgedCbox.Checked = false; stripUnabridgedCbox.Checked = false;
stripAudibleBrandingCbox.Checked = false; stripAudibleBrandingCbox.Checked = false;
} }
} }
} }
} }

File diff suppressed because it is too large Load Diff

View File

@ -5,78 +5,78 @@ using LibationFileManager;
namespace LibationWinForms.Dialogs namespace LibationWinForms.Dialogs
{ {
public partial class SettingsDialog public partial class SettingsDialog
{ {
private void folderTemplateBtn_Click(object sender, EventArgs e) private void folderTemplateBtn_Click(object sender, EventArgs e)
=> editTemplate(TemplateEditor<Templates.FolderTemplate>.CreateFilenameEditor(config.Books, folderTemplateTb.Text), folderTemplateTb); => editTemplate(TemplateEditor<Templates.FolderTemplate>.CreateFilenameEditor(config.Books, folderTemplateTb.Text), folderTemplateTb);
private void fileTemplateBtn_Click(object sender, EventArgs e) private void fileTemplateBtn_Click(object sender, EventArgs e)
=> editTemplate(TemplateEditor<Templates.FileTemplate>.CreateFilenameEditor(config.Books, fileTemplateTb.Text), fileTemplateTb); => editTemplate(TemplateEditor<Templates.FileTemplate>.CreateFilenameEditor(config.Books, fileTemplateTb.Text), fileTemplateTb);
private void chapterFileTemplateBtn_Click(object sender, EventArgs e) private void chapterFileTemplateBtn_Click(object sender, EventArgs e)
=> editTemplate(TemplateEditor<Templates.ChapterFileTemplate>.CreateFilenameEditor(config.Books, chapterFileTemplateTb.Text), chapterFileTemplateTb); => editTemplate(TemplateEditor<Templates.ChapterFileTemplate>.CreateFilenameEditor(config.Books, chapterFileTemplateTb.Text), chapterFileTemplateTb);
private void editCharreplacementBtn_Click(object sender, EventArgs e) private void editCharreplacementBtn_Click(object sender, EventArgs e)
{ {
var form = new EditReplacementChars(config); var form = new EditReplacementChars(config);
form.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; form.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
form.ShowDialog(this); form.ShowDialog(this);
} }
private void Load_DownloadDecrypt(Configuration config) private void Load_DownloadDecrypt(Configuration config)
{ {
inProgressDescLbl.Text = desc(nameof(config.InProgress)); inProgressDescLbl.Text = desc(nameof(config.InProgress));
editCharreplacementBtn.Text = desc(nameof(config.ReplacementCharacters)); editCharreplacementBtn.Text = desc(nameof(config.ReplacementCharacters));
badBookGb.Text = desc(nameof(config.BadBook)); badBookGb.Text = desc(nameof(config.BadBook));
badBookAskRb.Text = Configuration.BadBookAction.Ask.GetDescription(); badBookAskRb.Text = Configuration.BadBookAction.Ask.GetDescription();
badBookAbortRb.Text = Configuration.BadBookAction.Abort.GetDescription(); badBookAbortRb.Text = Configuration.BadBookAction.Abort.GetDescription();
badBookRetryRb.Text = Configuration.BadBookAction.Retry.GetDescription(); badBookRetryRb.Text = Configuration.BadBookAction.Retry.GetDescription();
badBookIgnoreRb.Text = Configuration.BadBookAction.Ignore.GetDescription(); badBookIgnoreRb.Text = Configuration.BadBookAction.Ignore.GetDescription();
useCoverAsFolderIconCb.Text = desc(nameof(config.UseCoverAsFolderIcon)); useCoverAsFolderIconCb.Text = desc(nameof(config.UseCoverAsFolderIcon));
inProgressSelectControl.SetDirectoryItems(new() inProgressSelectControl.SetDirectoryItems(new()
{ {
Configuration.KnownDirectories.WinTemp, Configuration.KnownDirectories.WinTemp,
Configuration.KnownDirectories.UserProfile, Configuration.KnownDirectories.UserProfile,
Configuration.KnownDirectories.AppDir, Configuration.KnownDirectories.AppDir,
Configuration.KnownDirectories.MyDocs, Configuration.KnownDirectories.MyDocs,
Configuration.KnownDirectories.LibationFiles Configuration.KnownDirectories.LibationFiles
}, Configuration.KnownDirectories.WinTemp); }, Configuration.KnownDirectories.WinTemp);
inProgressSelectControl.SelectDirectory(config.InProgress); inProgressSelectControl.SelectDirectory(config.InProgress);
var rb = config.BadBook switch var rb = config.BadBook switch
{ {
Configuration.BadBookAction.Ask => this.badBookAskRb, Configuration.BadBookAction.Ask => this.badBookAskRb,
Configuration.BadBookAction.Abort => this.badBookAbortRb, Configuration.BadBookAction.Abort => this.badBookAbortRb,
Configuration.BadBookAction.Retry => this.badBookRetryRb, Configuration.BadBookAction.Retry => this.badBookRetryRb,
Configuration.BadBookAction.Ignore => this.badBookIgnoreRb, Configuration.BadBookAction.Ignore => this.badBookIgnoreRb,
_ => this.badBookAskRb _ => this.badBookAskRb
}; };
rb.Checked = true; rb.Checked = true;
folderTemplateLbl.Text = desc(nameof(config.FolderTemplate)); folderTemplateLbl.Text = desc(nameof(config.FolderTemplate));
fileTemplateLbl.Text = desc(nameof(config.FileTemplate)); fileTemplateLbl.Text = desc(nameof(config.FileTemplate));
chapterFileTemplateLbl.Text = desc(nameof(config.ChapterFileTemplate)); chapterFileTemplateLbl.Text = desc(nameof(config.ChapterFileTemplate));
folderTemplateTb.Text = config.FolderTemplate; folderTemplateTb.Text = config.FolderTemplate;
fileTemplateTb.Text = config.FileTemplate; fileTemplateTb.Text = config.FileTemplate;
chapterFileTemplateTb.Text = config.ChapterFileTemplate; chapterFileTemplateTb.Text = config.ChapterFileTemplate;
useCoverAsFolderIconCb.Checked = config.UseCoverAsFolderIcon; useCoverAsFolderIconCb.Checked = config.UseCoverAsFolderIcon;
} }
private void Save_DownloadDecrypt(Configuration config) private void Save_DownloadDecrypt(Configuration config)
{ {
config.InProgress = inProgressSelectControl.SelectedDirectory; config.InProgress = inProgressSelectControl.SelectedDirectory;
config.BadBook config.BadBook
= badBookAskRb.Checked ? Configuration.BadBookAction.Ask = badBookAskRb.Checked ? Configuration.BadBookAction.Ask
: badBookAbortRb.Checked ? Configuration.BadBookAction.Abort : badBookAbortRb.Checked ? Configuration.BadBookAction.Abort
: badBookRetryRb.Checked ? Configuration.BadBookAction.Retry : badBookRetryRb.Checked ? Configuration.BadBookAction.Retry
: badBookIgnoreRb.Checked ? Configuration.BadBookAction.Ignore : badBookIgnoreRb.Checked ? Configuration.BadBookAction.Ignore
: Configuration.BadBookAction.Ask; : Configuration.BadBookAction.Ask;
config.FolderTemplate = folderTemplateTb.Text; config.FolderTemplate = folderTemplateTb.Text;
config.FileTemplate = fileTemplateTb.Text; config.FileTemplate = fileTemplateTb.Text;
config.ChapterFileTemplate = chapterFileTemplateTb.Text; config.ChapterFileTemplate = chapterFileTemplateTb.Text;
config.UseCoverAsFolderIcon = useCoverAsFolderIconCb.Checked; config.UseCoverAsFolderIcon = useCoverAsFolderIconCb.Checked;
} }
} }
} }

View File

@ -5,29 +5,29 @@ using System.Linq;
namespace LibationWinForms.Dialogs namespace LibationWinForms.Dialogs
{ {
public partial class SettingsDialog public partial class SettingsDialog
{ {
private void Load_ImportLibrary(Configuration config) private void Load_ImportLibrary(Configuration config)
{ {
this.autoScanCb.Text = desc(nameof(config.AutoScan)); this.autoScanCb.Text = desc(nameof(config.AutoScan));
this.showImportedStatsCb.Text = desc(nameof(config.ShowImportedStats)); this.showImportedStatsCb.Text = desc(nameof(config.ShowImportedStats));
this.importEpisodesCb.Text = desc(nameof(config.ImportEpisodes)); this.importEpisodesCb.Text = desc(nameof(config.ImportEpisodes));
this.downloadEpisodesCb.Text = desc(nameof(config.DownloadEpisodes)); this.downloadEpisodesCb.Text = desc(nameof(config.DownloadEpisodes));
this.autoDownloadEpisodesCb.Text = desc(nameof(config.AutoDownloadEpisodes)); this.autoDownloadEpisodesCb.Text = desc(nameof(config.AutoDownloadEpisodes));
autoScanCb.Checked = config.AutoScan; autoScanCb.Checked = config.AutoScan;
showImportedStatsCb.Checked = config.ShowImportedStats; showImportedStatsCb.Checked = config.ShowImportedStats;
importEpisodesCb.Checked = config.ImportEpisodes; importEpisodesCb.Checked = config.ImportEpisodes;
downloadEpisodesCb.Checked = config.DownloadEpisodes; downloadEpisodesCb.Checked = config.DownloadEpisodes;
autoDownloadEpisodesCb.Checked = config.AutoDownloadEpisodes; autoDownloadEpisodesCb.Checked = config.AutoDownloadEpisodes;
} }
private void Save_ImportLibrary(Configuration config) private void Save_ImportLibrary(Configuration config)
{ {
config.AutoScan = autoScanCb.Checked; config.AutoScan = autoScanCb.Checked;
config.ShowImportedStats = showImportedStatsCb.Checked; config.ShowImportedStats = showImportedStatsCb.Checked;
config.ImportEpisodes = importEpisodesCb.Checked; config.ImportEpisodes = importEpisodesCb.Checked;
config.DownloadEpisodes = downloadEpisodesCb.Checked; config.DownloadEpisodes = downloadEpisodesCb.Checked;
config.AutoDownloadEpisodes = autoDownloadEpisodesCb.Checked; config.AutoDownloadEpisodes = autoDownloadEpisodesCb.Checked;
} }
} }
} }

View File

@ -9,104 +9,104 @@ using System.Windows.Forms;
namespace LibationWinForms.Dialogs namespace LibationWinForms.Dialogs
{ {
public partial class SettingsDialog public partial class SettingsDialog
{ {
private void logsBtn_Click(object sender, EventArgs e) => Go.To.Folder(((LongPath)Configuration.Instance.LibationFiles).ShortPathName); private void logsBtn_Click(object sender, EventArgs e) => Go.To.Folder(((LongPath)Configuration.Instance.LibationFiles).ShortPathName);
private void Load_Important(Configuration config) private void Load_Important(Configuration config)
{ {
{ {
loggingLevelCb.Items.Clear(); loggingLevelCb.Items.Clear();
foreach (var level in Enum<Serilog.Events.LogEventLevel>.GetValues()) foreach (var level in Enum<Serilog.Events.LogEventLevel>.GetValues())
loggingLevelCb.Items.Add(level); loggingLevelCb.Items.Add(level);
loggingLevelCb.SelectedItem = config.LogLevel; loggingLevelCb.SelectedItem = config.LogLevel;
} }
booksLocationDescLbl.Text = desc(nameof(config.Books)); booksLocationDescLbl.Text = desc(nameof(config.Books));
betaOptInCbox.Text = desc(nameof(config.BetaOptIn)); betaOptInCbox.Text = desc(nameof(config.BetaOptIn));
saveEpisodesToSeriesFolderCbox.Text = desc(nameof(config.SavePodcastsToParentFolder)); saveEpisodesToSeriesFolderCbox.Text = desc(nameof(config.SavePodcastsToParentFolder));
overwriteExistingCbox.Text = desc(nameof(config.OverwriteExisting)); overwriteExistingCbox.Text = desc(nameof(config.OverwriteExisting));
creationTimeLbl.Text = desc(nameof(config.CreationTime)); creationTimeLbl.Text = desc(nameof(config.CreationTime));
lastWriteTimeLbl.Text = desc(nameof(config.LastWriteTime)); lastWriteTimeLbl.Text = desc(nameof(config.LastWriteTime));
var dateTimeSources = Enum.GetValues<Configuration.DateTimeSource>().Select(v => new EnumDiaplay<Configuration.DateTimeSource>(v)).ToArray(); var dateTimeSources = Enum.GetValues<Configuration.DateTimeSource>().Select(v => new EnumDiaplay<Configuration.DateTimeSource>(v)).ToArray();
creationTimeCb.Items.AddRange(dateTimeSources); creationTimeCb.Items.AddRange(dateTimeSources);
lastWriteTimeCb.Items.AddRange(dateTimeSources); lastWriteTimeCb.Items.AddRange(dateTimeSources);
creationTimeCb.SelectedItem = dateTimeSources.SingleOrDefault(v => v.Value == config.CreationTime) ?? dateTimeSources[0]; creationTimeCb.SelectedItem = dateTimeSources.SingleOrDefault(v => v.Value == config.CreationTime) ?? dateTimeSources[0];
lastWriteTimeCb.SelectedItem = dateTimeSources.SingleOrDefault(v => v.Value == config.LastWriteTime) ?? dateTimeSources[0]; lastWriteTimeCb.SelectedItem = dateTimeSources.SingleOrDefault(v => v.Value == config.LastWriteTime) ?? dateTimeSources[0];
booksSelectControl.SetSearchTitle("books location"); booksSelectControl.SetSearchTitle("books location");
booksSelectControl.SetDirectoryItems( booksSelectControl.SetDirectoryItems(
new() new()
{ {
Configuration.KnownDirectories.UserProfile, Configuration.KnownDirectories.UserProfile,
Configuration.KnownDirectories.AppDir, Configuration.KnownDirectories.AppDir,
Configuration.KnownDirectories.MyDocs Configuration.KnownDirectories.MyDocs
}, },
Configuration.KnownDirectories.UserProfile, Configuration.KnownDirectories.UserProfile,
"Books"); "Books");
booksSelectControl.SelectDirectory(config.Books.PathWithoutPrefix); booksSelectControl.SelectDirectory(config.Books.PathWithoutPrefix);
saveEpisodesToSeriesFolderCbox.Checked = config.SavePodcastsToParentFolder; saveEpisodesToSeriesFolderCbox.Checked = config.SavePodcastsToParentFolder;
overwriteExistingCbox.Checked = config.OverwriteExisting; overwriteExistingCbox.Checked = config.OverwriteExisting;
betaOptInCbox.Checked = config.BetaOptIn; betaOptInCbox.Checked = config.BetaOptIn;
if (!betaOptInCbox.Checked) if (!betaOptInCbox.Checked)
betaOptInCbox.CheckedChanged += betaOptInCbox_CheckedChanged; betaOptInCbox.CheckedChanged += betaOptInCbox_CheckedChanged;
} }
private void Save_Important(Configuration config) private void Save_Important(Configuration config)
{ {
var newBooks = booksSelectControl.SelectedDirectory; var newBooks = booksSelectControl.SelectedDirectory;
#region validation #region validation
static void validationError(string text, string caption) static void validationError(string text, string caption)
=> MessageBox.Show(text, caption, MessageBoxButtons.OK, MessageBoxIcon.Error); => MessageBox.Show(text, caption, MessageBoxButtons.OK, MessageBoxIcon.Error);
if (string.IsNullOrWhiteSpace(newBooks)) if (string.IsNullOrWhiteSpace(newBooks))
{ {
validationError("Cannot set Books Location to blank", "Location is blank"); validationError("Cannot set Books Location to blank", "Location is blank");
return; return;
} }
#endregion #endregion
LongPath lonNewBooks = newBooks; LongPath lonNewBooks = newBooks;
if (!Directory.Exists(lonNewBooks)) if (!Directory.Exists(lonNewBooks))
Directory.CreateDirectory(lonNewBooks); Directory.CreateDirectory(lonNewBooks);
config.Books = newBooks; config.Books = newBooks;
{ {
var logLevelOld = config.LogLevel; var logLevelOld = config.LogLevel;
var logLevelNew = (Serilog.Events.LogEventLevel)loggingLevelCb.SelectedItem; var logLevelNew = (Serilog.Events.LogEventLevel)loggingLevelCb.SelectedItem;
config.LogLevel = logLevelNew; config.LogLevel = logLevelNew;
// only warn if changed during this time. don't want to warn every time user happens to change settings while level is verbose // only warn if changed during this time. don't want to warn every time user happens to change settings while level is verbose
if (logLevelOld != logLevelNew) if (logLevelOld != logLevelNew)
MessageBoxLib.VerboseLoggingWarning_ShowIfTrue(); MessageBoxLib.VerboseLoggingWarning_ShowIfTrue();
} }
config.SavePodcastsToParentFolder = saveEpisodesToSeriesFolderCbox.Checked; config.SavePodcastsToParentFolder = saveEpisodesToSeriesFolderCbox.Checked;
config.OverwriteExisting = overwriteExistingCbox.Checked; config.OverwriteExisting = overwriteExistingCbox.Checked;
config.BetaOptIn = betaOptInCbox.Checked; config.BetaOptIn = betaOptInCbox.Checked;
config.CreationTime = ((EnumDiaplay<Configuration.DateTimeSource>)creationTimeCb.SelectedItem).Value; config.CreationTime = ((EnumDiaplay<Configuration.DateTimeSource>)creationTimeCb.SelectedItem).Value;
config.LastWriteTime = ((EnumDiaplay<Configuration.DateTimeSource>)lastWriteTimeCb.SelectedItem).Value; config.LastWriteTime = ((EnumDiaplay<Configuration.DateTimeSource>)lastWriteTimeCb.SelectedItem).Value;
} }
private void betaOptInCbox_CheckedChanged(object sender, EventArgs e) private void betaOptInCbox_CheckedChanged(object sender, EventArgs e)
{ {
if (!betaOptInCbox.Checked) if (!betaOptInCbox.Checked)
return; return;
var result = MessageBox.Show(this, @" var result = MessageBox.Show(this, @"
You've chosen to opt-in to Libation's beta releases. Thank you! We need all the testers we can get. You've chosen to opt-in to Libation's beta releases. Thank you! We need all the testers we can get.
@ -117,14 +117,14 @@ If bad/weird things happen, please report them at getlibation.com.
".Trim(), "A word of warning...", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2); ".Trim(), "A word of warning...", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2);
if (result == DialogResult.Yes) if (result == DialogResult.Yes)
{ {
betaOptInCbox.CheckedChanged -= betaOptInCbox_CheckedChanged; betaOptInCbox.CheckedChanged -= betaOptInCbox_CheckedChanged;
} }
else else
{ {
betaOptInCbox.Checked = false; betaOptInCbox.Checked = false;
} }
} }
} }
} }

View File

@ -5,50 +5,50 @@ using LibationFileManager;
namespace LibationWinForms.Dialogs namespace LibationWinForms.Dialogs
{ {
public partial class SettingsDialog : Form public partial class SettingsDialog : Form
{ {
private Configuration config { get; } = Configuration.Instance; private Configuration config { get; } = Configuration.Instance;
private Func<string, string> desc { get; } = Configuration.GetDescription; private Func<string, string> desc { get; } = Configuration.GetDescription;
public SettingsDialog() public SettingsDialog()
{ {
InitializeComponent(); InitializeComponent();
this.SetLibationIcon(); this.SetLibationIcon();
} }
private void SettingsDialog_Load(object sender, EventArgs e) private void SettingsDialog_Load(object sender, EventArgs e)
{ {
if (this.DesignMode) if (this.DesignMode)
return; return;
Load_Important(config); Load_Important(config);
Load_ImportLibrary(config); Load_ImportLibrary(config);
Load_DownloadDecrypt(config); Load_DownloadDecrypt(config);
Load_AudioSettings(config); Load_AudioSettings(config);
} }
private static void editTemplate(ITemplateEditor template, TextBox textBox) private static void editTemplate(ITemplateEditor template, TextBox textBox)
{ {
var form = new EditTemplateDialog(template); var form = new EditTemplateDialog(template);
if (form.ShowDialog() == DialogResult.OK) if (form.ShowDialog() == DialogResult.OK)
textBox.Text = template.EditingTemplate.TemplateText; textBox.Text = template.EditingTemplate.TemplateText;
} }
private void saveBtn_Click(object sender, EventArgs e) private void saveBtn_Click(object sender, EventArgs e)
{ {
Save_Important(config); Save_Important(config);
Save_ImportLibrary(config); Save_ImportLibrary(config);
Save_DownloadDecrypt(config); Save_DownloadDecrypt(config);
Save_AudioSettings(config); Save_AudioSettings(config);
this.DialogResult = DialogResult.OK; this.DialogResult = DialogResult.OK;
this.Close(); this.Close();
} }
private void cancelBtn_Click(object sender, EventArgs e) private void cancelBtn_Click(object sender, EventArgs e)
{ {
this.DialogResult = DialogResult.Cancel; this.DialogResult = DialogResult.Cancel;
this.Close(); this.Close();
} }
} }
} }