From 6786dc561558b7a79810934a195213d310887a36 Mon Sep 17 00:00:00 2001 From: hbeham Date: Sat, 20 Jul 2019 14:54:01 +0200 Subject: [PATCH] - using custom %LOCALAPPDATA%\ChanSort\chansort.xml config file instead of standard .NET Settings with user.config - .sdx files supported by the "SilvaSchneider" loader are also used by ITT, Medion, Nabo, ok., PEAQ, Schaub Lorenz and, Telefunken - fixed Sony DVB-T channel lists - fixed using wrong loader, when a file type was selected in the OpenFileDialog --- readme.md | 7 +- readme_de.md | 7 +- .../SerializerPlugin.cs | 2 +- source/ChanSort.Loader.Sony/Serializer.cs | 9 +- .../ChanSort.Loader.Sony/SerializerPlugin.cs | 2 +- source/ChanSort/ChanSort.csproj | 2 + source/ChanSort/MainForm.cs | 85 ++-- .../ChanSort/Printing/ReportOptionsDialog.cs | 15 +- source/ChanSort/Properties/Config.cs | 67 +++ .../ChanSort/Properties/Settings.Designer.cs | 468 ------------------ source/ChanSort/Properties/Settings.settings | 122 +---- source/ChanSort/app.config | 120 ----- source/changelog.md | 6 + 13 files changed, 141 insertions(+), 771 deletions(-) create mode 100644 source/ChanSort/Properties/Config.cs diff --git a/readme.md b/readme.md index 33fb9e7..3f2b061 100644 --- a/readme.md +++ b/readme.md @@ -11,7 +11,8 @@ About ChanSort -------------- ChanSort is a Windows application that allows you to reorder your TV's channel list. Most modern TVs can transfer channel lists via USB stick, which you can plug into your PC. -ChanSort supports various file formats from **Sony** (new), **Silva-Schneider** (new), Hisense, Samsung, LG, Panasonic, Toshiba and the Linux VDR project. +ChanSort supports various file formats from **Sony** (new), **ITT, Medion, Nabo, ok., PEAQ, Schaub-Lorenz, Silva-Schneider, Telefunken** (new), +Hisense, Samsung, LG, Panasonic, Toshiba and the Linux VDR project. ![screenshot](http://beham.biz/chansort/ChanSort-en.png) @@ -92,8 +93,8 @@ Android-TVs "sdb.xml" files using formats "FormateVer" 1.1.0 and "FormatVer" 1.0 Models that export a .zip file containing chmgt.db, dvbSysData.db and dvbMainData.db files. (e.g. RL, SL, TL, UL, VL, WL, XL, YL models of series 8xx/9xx) -**Silva-Schneider** -.sdx files (currently only satellite lists are supported) +**ITT, Medion, Nabo, ok., PEAQ, Schaub-Lorenz, Silva-Schneider, Telefunken** +These brands use .sdx files (currently only satellite lists are supported) **VDR (Linux Video Disk Recorder)** Supports the channels.conf file format. diff --git a/readme_de.md b/readme_de.md index ff958b5..fadc284 100644 --- a/readme_de.md +++ b/readme_de.md @@ -11,7 +11,8 @@ Links -------------- ChanSort ist eine Windows-Anwendung, die das Sortieren von Fernsehsenderlisten erlaubt. Die meisten modernen Fernseher können Senderlisten auf einen USB-Stick übertragen, den man danach am PC anschließt. -ChanSort unterstützt diverse Dateiformate von **Sony** (NEU), **Silva-Schneider** (NEU), Hisense, LG, Panasonic, Samsung, Toshiba und das Linux VDR Projekt. +ChanSort unterstützt diverse Dateiformate von **Sony** (new), **ITT, Medion, Nabo, ok., PEAQ, Schaub-Lorenz, Silva-Schneider, Telefunken** (new), +Hisense, Samsung, LG, Panasonic, Toshiba und dem Linux VDR Projekt. ![screenshot](http://beham.biz/chansort/ChanSort-de.png) @@ -83,8 +84,8 @@ Viera-Modelle mit svl.bin oder svl.db Dateien (die meisten Modelle seit 2011) **Sony** Android-TV "sdb.xml" Dateien mit Versionen "FormateVer" 1.1.0 and "FormatVer" 1.0.0, 1.1.0 and 1.2.0 -**Silva-Schneider** -.sdx Dateien (derzeit wird nur Satellitenempfang unterstützt) +**ITT, Medion, Nabo, ok., PEAQ, Schaub-Lorenz, Silva-Schneider, Telefunken** +Die Marken nutzen .sdx Dateien (derzeit wird nur Satellitenempfang unterstützt) **Toshiba** Modelle, die eine .zip-Datei mit folgendem Inhalt: chmgt.db, dvbSysData.db und dvbMainData.db. diff --git a/source/ChanSort.Loader.SilvaSchneider/SerializerPlugin.cs b/source/ChanSort.Loader.SilvaSchneider/SerializerPlugin.cs index b275cb3..43fcb5c 100644 --- a/source/ChanSort.Loader.SilvaSchneider/SerializerPlugin.cs +++ b/source/ChanSort.Loader.SilvaSchneider/SerializerPlugin.cs @@ -5,7 +5,7 @@ namespace ChanSort.Loader.SilvaSchneider public class SerializerPlugin : ISerializerPlugin { public string DllName { get; set; } - public string PluginName { get { return "Silva Schneider"; } } + public string PluginName { get { return "ITT/Medion/Nabo/ok./Peaq/Schaub-Lorenz/Silva-Schneider/Telefunken"; } } public string FileFilter { get { return "*.sdx"; } } public SerializerBase CreateSerializer(string inputFile) diff --git a/source/ChanSort.Loader.Sony/Serializer.cs b/source/ChanSort.Loader.Sony/Serializer.cs index 3faf3e3..a269fd4 100644 --- a/source/ChanSort.Loader.Sony/Serializer.cs +++ b/source/ChanSort.Loader.Sony/Serializer.cs @@ -212,8 +212,10 @@ namespace ChanSort.Loader.Sony var transp = new Transponder(int.Parse(muxIds[i]) + idAdjustment); if (isEFormat) { - transp.FrequencyInMhz = int.Parse(muxData["SysFreq"][i]); - transp.SymbolRate = int.Parse(muxData["ui4_sym_rate"][i]); + var freq = muxData.ContainsKey("ui4_freq") ? muxData["ui4_freq"] : muxData["SysFreq"]; + transp.FrequencyInMhz = int.Parse(freq[i]); + if (muxData.ContainsKey("ui4_sym_rate")) + transp.SymbolRate = int.Parse(muxData["ui4_sym_rate"][i]); if (Char.ToLowerInvariant(dvbSystem[dvbSystem.Length - 1]) == 's') // "DvbGs", "DvbPs", "DvbCis" { transp.Polarity = muxData["e_pol"][i] == "1" ? 'H' : 'V'; @@ -232,7 +234,8 @@ namespace ChanSort.Loader.Sony transp.TransportStreamId = this.ParseInt(muxData["Tsid"][i]); transp.FrequencyInMhz = int.Parse(rfParmData["Freq"][i]) / 1000; transp.Polarity = polarity == null ? ' ' : polarity[i] == "H_L" ? 'H' : 'V'; - transp.SymbolRate = int.Parse(dvbsData["SymbolRate"][i]) / 1000; + if (dvbsData.ContainsKey("SymbolRate")) + transp.SymbolRate = int.Parse(dvbsData["SymbolRate"][i]) / 1000; } this.DataRoot.AddTransponder(sat, transp); diff --git a/source/ChanSort.Loader.Sony/SerializerPlugin.cs b/source/ChanSort.Loader.Sony/SerializerPlugin.cs index 82ef869..8f9861c 100644 --- a/source/ChanSort.Loader.Sony/SerializerPlugin.cs +++ b/source/ChanSort.Loader.Sony/SerializerPlugin.cs @@ -6,7 +6,7 @@ namespace ChanSort.Loader.Sony { public string DllName { get; set; } public string PluginName => "Sony sdb.xml"; - public string FileFilter => "sdb*.xml"; + public string FileFilter => "*.xml"; public SerializerBase CreateSerializer(string inputFile) { diff --git a/source/ChanSort/ChanSort.csproj b/source/ChanSort/ChanSort.csproj index bf276a6..0a2d275 100644 --- a/source/ChanSort/ChanSort.csproj +++ b/source/ChanSort/ChanSort.csproj @@ -102,6 +102,7 @@ + @@ -157,6 +158,7 @@ True True + Form diff --git a/source/ChanSort/MainForm.cs b/source/ChanSort/MainForm.cs index 9a1f59b..7cb1561 100644 --- a/source/ChanSort/MainForm.cs +++ b/source/ChanSort/MainForm.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Generic; using System.ComponentModel; +using System.Configuration; using System.Drawing; using System.Globalization; using System.IO; @@ -55,8 +56,8 @@ namespace ChanSort.Ui public MainForm() { - if (!string.IsNullOrEmpty(Settings.Default.Language)) - Thread.CurrentThread.CurrentUICulture = new CultureInfo(Settings.Default.Language); + if (!string.IsNullOrEmpty(Config.Default.Language)) + Thread.CurrentThread.CurrentUICulture = new CultureInfo(Config.Default.Language); this.LookAndFeel.SetSkinStyle("Office 2010 Blue"); InitializeComponent(); @@ -69,8 +70,8 @@ namespace ChanSort.Ui foreach (GridColumn col in this.gviewRight.Columns) col.Tag = col.Visible; - if (!Settings.Default.WindowSize.IsEmpty) - this.Size = Settings.Default.WindowSize; + if (!Config.Default.WindowSize.IsEmpty) + this.Size = Config.Default.WindowSize; this.title = string.Format(base.Text, AppVersion); base.Text = title; this.Plugins = this.LoadSerializerPlugins(); @@ -152,7 +153,7 @@ namespace ChanSort.Ui } } - if (Settings.Default.CheckForUpdates) + if (Config.Default.CheckForUpdates) this.BeginInvoke((Action) UpdateCheck.CheckForNewVersion); } @@ -185,6 +186,7 @@ namespace ChanSort.Ui HandleException(new IOException("Plugin " + file + "\n" + ex.Message, ex)); } } + list.Sort((a, b) => a.PluginName.CompareTo(b.PluginName)); return list; } @@ -223,13 +225,11 @@ namespace ChanSort.Ui numberOfFilters = 0; var filter = new StringBuilder(); var extension = new StringBuilder(); - var sortedPlugins = this.Plugins.ToList(); - sortedPlugins.Sort((a, b) => a.PluginName.CompareTo(b.PluginName)); - foreach (var plugin in sortedPlugins) + foreach (var plugin in this.Plugins) { filter.Append(plugin.PluginName).Append("|").Append(plugin.FileFilter); filter.Append("|"); - if (!(";" + extension + ";").Contains(plugin.FileFilter)) + if (!(";" + extension + ";").Contains(";" + plugin.FileFilter + ";")) { extension.Append(plugin.FileFilter); extension.Append(";"); @@ -1243,31 +1243,26 @@ namespace ChanSort.Ui private void LoadSettings() { // note: WindowSize must be restored in ctor in order to make WindowStartPosition.CenterScreen work - if (!string.IsNullOrEmpty(Settings.Default.Encoding)) - this.defaultEncoding = Encoding.GetEncoding(Settings.Default.Encoding); + if (!string.IsNullOrEmpty(Config.Default.Encoding)) + this.defaultEncoding = Encoding.GetEncoding(Config.Default.Encoding); - var width = Settings.Default.LeftPanelWidth; + var width = Config.Default.LeftPanelWidth; if (width > 0) this.splitContainerControl1.SplitterPosition = width; this.SelectLanguageMenuItem(); - //this.SetGridLayout(this.gviewLeft, Settings.Default.OutputListLayout); + //this.SetGridLayout(this.gviewLeft, Config.Default.OutputListLayout); - this.miShowWarningsAfterLoad.Checked = Settings.Default.ShowWarningsAfterLoading; - this.cbCloseGap.Checked = Settings.Default.CloseGaps; + this.miShowWarningsAfterLoad.Checked = Config.Default.ShowWarningsAfterLoading; + this.cbCloseGap.Checked = Config.Default.CloseGaps; this.ClearLeftFilter(); this.ClearRightFilter(); - - for (var i = MaxMruEntries - 1; i >= 0; i--) - { - var prop = Settings.Default.GetType().GetProperty("MruFile" + i); - if (prop != null) - this.AddFileToMruList((string) prop.GetValue(Settings.Default, null)); - } + foreach(var path in Config.Default.MruFiles) + this.AddFileToMruList(path); this.UpdateMruMenu(); - this.miExplorerIntegration.Down = Settings.Default.ExplorerIntegration; - this.miCheckUpdates.Down = Settings.Default.CheckForUpdates; + this.miExplorerIntegration.Down = Config.Default.ExplorerIntegration; + this.miCheckUpdates.Down = Config.Default.CheckForUpdates; } #endregion @@ -1279,7 +1274,7 @@ namespace ChanSort.Ui this.barManager1.ForceLinkCreate(); foreach (BarItemLink itemLink in this.barSubItem1.ItemLinks) { - if (Settings.Default.Language.StartsWith((string) itemLink.Item.Tag)) + if (Config.Default.Language.StartsWith((string) itemLink.Item.Tag)) { this.ignoreLanguageChange = true; ((BarButtonItem) itemLink.Item).Down = true; @@ -1409,11 +1404,11 @@ namespace ChanSort.Ui string newLayout; var newSource = list.SignalSource; if ((newSource & SignalSource.Analog) != 0) - newLayout = Settings.Default.InputGridLayoutAnalog; + newLayout = Config.Default.InputGridLayoutAnalog; else if ((newSource & SignalSource.DvbS) != 0) - newLayout = Settings.Default.InputGridLayoutDvbS; + newLayout = Config.Default.InputGridLayoutDvbS; else - newLayout = Settings.Default.InputGridLayoutDvbCT; + newLayout = Config.Default.InputGridLayoutDvbCT; if (!string.IsNullOrEmpty(newLayout)) this.SetGridLayout(this.gviewRight, newLayout); #endif @@ -1441,11 +1436,11 @@ namespace ChanSort.Ui { var currentLayout = GetGridLayout(this.gviewRight); if ((signalSource & SignalSource.Analog) != 0) - Settings.Default.InputGridLayoutAnalog = currentLayout; + Config.Default.InputGridLayoutAnalog = currentLayout; else if ((signalSource & SignalSource.DvbS) != 0) - Settings.Default.InputGridLayoutDvbS = currentLayout; + Config.Default.InputGridLayoutDvbS = currentLayout; else //if ((signalSource & SignalSource.DvbCT) != 0) - Settings.Default.InputGridLayoutDvbCT = currentLayout; + Config.Default.InputGridLayoutDvbCT = currentLayout; } #endregion @@ -2597,21 +2592,21 @@ namespace ChanSort.Ui this.gviewRight.PostEditor(); this.gviewLeft.PostEditor(); - Settings.Default.WindowSize = this.WindowState == FormWindowState.Normal ? this.Size : this.RestoreBounds.Size; - Settings.Default.Encoding = this.defaultEncoding.WebName; - Settings.Default.Language = Thread.CurrentThread.CurrentUICulture.Name; - Settings.Default.LeftPanelWidth = this.splitContainerControl1.SplitterPosition; - Settings.Default.OutputListLayout = GetGridLayout(this.gviewLeft); + Config.Default.WindowSize = this.WindowState == FormWindowState.Normal ? this.Size : this.RestoreBounds.Size; + Config.Default.Encoding = this.defaultEncoding.WebName; + Config.Default.Language = Thread.CurrentThread.CurrentUICulture.Name; + Config.Default.LeftPanelWidth = this.splitContainerControl1.SplitterPosition; + Config.Default.OutputListLayout = GetGridLayout(this.gviewLeft); if (this.CurrentChannelList != null) SaveInputGridLayout(this.CurrentChannelList.SignalSource); - Settings.Default.ShowWarningsAfterLoading = this.miShowWarningsAfterLoad.Checked; - Settings.Default.CloseGaps = this.cbCloseGap.Checked; - for (var i = 0; i < this.mruFiles.Count; i++) - Settings.Default.GetType().GetProperty("MruFile" + i).SetValue(Settings.Default, this.mruFiles[i], null); - Settings.Default.ExplorerIntegration = this.miExplorerIntegration.Down; - Settings.Default.CheckForUpdates = this.miCheckUpdates.Down; + Config.Default.ShowWarningsAfterLoading = this.miShowWarningsAfterLoad.Checked; + Config.Default.CloseGaps = this.cbCloseGap.Checked; + Config.Default.MruFiles.Clear(); + Config.Default.MruFiles.AddRange(this.mruFiles); + Config.Default.ExplorerIntegration = this.miExplorerIntegration.Down; + Config.Default.CheckForUpdates = this.miCheckUpdates.Down; - Settings.Default.Save(); + Config.Default.Save(); } private string GetGridLayout(GridView grid) @@ -2954,7 +2949,7 @@ namespace ChanSort.Ui { try { - if (this.miExplorerIntegration.Down == Settings.Default.ExplorerIntegration) + if (this.miExplorerIntegration.Down == Config.Default.ExplorerIntegration) return; // get all file extensions from loader plugins @@ -2989,7 +2984,7 @@ namespace ChanSort.Ui { try { - if (this.miCheckUpdates.Down == Settings.Default.CheckForUpdates) + if (this.miCheckUpdates.Down == Config.Default.CheckForUpdates) return; if (this.miCheckUpdates.Down) diff --git a/source/ChanSort/Printing/ReportOptionsDialog.cs b/source/ChanSort/Printing/ReportOptionsDialog.cs index 51af713..b1e62b3 100644 --- a/source/ChanSort/Printing/ReportOptionsDialog.cs +++ b/source/ChanSort/Printing/ReportOptionsDialog.cs @@ -1,6 +1,7 @@ using System; using System.Drawing; using ChanSort.Api; +using ChanSort.Ui.Properties; using DevExpress.LookAndFeel; using DevExpress.XtraEditors; using DevExpress.XtraReports.UI; @@ -17,18 +18,18 @@ namespace ChanSort.Ui.Printing InitializeComponent(); this.channelList = channelList; this.subListIndex = subListIndex; - if (Properties.Settings.Default.PrintSortByName) + if (Config.Default.PrintSortByName) this.rbSortByName.Checked = true; - this.fontEdit1.EditValue = Properties.Settings.Default.PrintFontName; - this.spinFontSize.Value = Properties.Settings.Default.PrintFontSize; + this.fontEdit1.EditValue = Config.Default.PrintFontName; + this.spinFontSize.Value = Config.Default.PrintFontSize; } private void btnPreview_Click(object sender, EventArgs e) { - Properties.Settings.Default.PrintFontName = (string)this.fontEdit1.EditValue; - Properties.Settings.Default.PrintFontSize = this.spinFontSize.Value; - Properties.Settings.Default.PrintSortByName = this.rbSortByNumber.Checked; - Properties.Settings.Default.Save(); + Config.Default.PrintFontName = (string)this.fontEdit1.EditValue; + Config.Default.PrintFontSize = this.spinFontSize.Value; + Config.Default.PrintSortByName = this.rbSortByNumber.Checked; + Config.Default.Save(); using (var font = new Font(this.fontEdit1.Text, (float)this.spinFontSize.Value)) using (var report = new ChannelListReport(this.channelList, this.subListIndex, this.rbSortByName.Checked, font)) diff --git a/source/ChanSort/Properties/Config.cs b/source/ChanSort/Properties/Config.cs new file mode 100644 index 0000000..4a3ad10 --- /dev/null +++ b/source/ChanSort/Properties/Config.cs @@ -0,0 +1,67 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.IO; +using System.Xml.Serialization; + +namespace ChanSort.Ui.Properties +{ + public class Config + { + private static readonly XmlSerializer Serializer; + private static readonly string ConfigFilePath; + + #region static ctor() + static Config() + { + Serializer = new XmlSerializer(typeof(Config)); + + try + { + ConfigFilePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "ChanSort", "config.xml"); + if (File.Exists(ConfigFilePath)) + { + using (var stream = new StreamReader(ConfigFilePath, System.Text.Encoding.UTF8)) + Default = (Config)Serializer.Deserialize(stream); + return; + } + } + catch + { + // ignore + } + + Default = new Config(); + } + #endregion + + public static Config Default { get; set; } + + public string OutputListLayout { get; set; } = ""; + public string Language { get; set; } = ""; + public string Encoding { get; set; } = ""; + public Size WindowSize { get; set; } = new Size(0,0); + public string InputGridLayoutAnalog { get; set; } = ""; + public string InputGridLayoutDvbCT { get; set; } = ""; + public string InputGridLayoutDvbS { get; set; } = ""; + public int LeftPanelWidth { get; set; } = 0; + public bool ShowWarningsAfterLoading { get; set; } = false; + public bool CloseGaps { get; set; } = true; + [XmlArray("MruFiles")] + public List MruFiles { get; set; } = new List(); + public string PrintFontName { get; set; } = "Tahoma"; + public decimal PrintFontSize { get; set; } = 12; + public bool PrintSortByName { get; set; } = false; + public bool ExplorerIntegration { get; set; } = false; + public bool CheckForUpdates { get; set; } = true; + + public void Save() + { + using (var stream = new FileStream(ConfigFilePath, FileMode.Create)) + using (var writer = new StreamWriter(stream, System.Text.Encoding.UTF8)) + { + Serializer.Serialize(writer, this); + } + } + } +} diff --git a/source/ChanSort/Properties/Settings.Designer.cs b/source/ChanSort/Properties/Settings.Designer.cs index 17667cb..b4e9114 100644 --- a/source/ChanSort/Properties/Settings.Designer.cs +++ b/source/ChanSort/Properties/Settings.Designer.cs @@ -22,473 +22,5 @@ namespace ChanSort.Ui.Properties { return defaultInstance; } } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("0")] - public int InputListRowHandle { - get { - return ((int)(this["InputListRowHandle"])); - } - set { - this["InputListRowHandle"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("0")] - public int OutputListRowHandle { - get { - return ((int)(this["OutputListRowHandle"])); - } - set { - this["OutputListRowHandle"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string OutputListLayout { - get { - return ((string)(this["OutputListLayout"])); - } - set { - this["OutputListLayout"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string InputFilterName { - get { - return ((string)(this["InputFilterName"])); - } - set { - this["InputFilterName"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string InputFilterOldSlot { - get { - return ((string)(this["InputFilterOldSlot"])); - } - set { - this["InputFilterOldSlot"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string InputFilterCrypt { - get { - return ((string)(this["InputFilterCrypt"])); - } - set { - this["InputFilterCrypt"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string InputFilterNewSlot { - get { - return ((string)(this["InputFilterNewSlot"])); - } - set { - this["InputFilterNewSlot"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string InputFilterChannel { - get { - return ((string)(this["InputFilterChannel"])); - } - set { - this["InputFilterChannel"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string InputFilterUid { - get { - return ((string)(this["InputFilterUid"])); - } - set { - this["InputFilterUid"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string OutputFilterName { - get { - return ((string)(this["OutputFilterName"])); - } - set { - this["OutputFilterName"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string Language { - get { - return ((string)(this["Language"])); - } - set { - this["Language"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string OutputFilterNewSlot { - get { - return ((string)(this["OutputFilterNewSlot"])); - } - set { - this["OutputFilterNewSlot"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string Encoding { - get { - return ((string)(this["Encoding"])); - } - set { - this["Encoding"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("False")] - public bool HideLeftList { - get { - return ((bool)(this["HideLeftList"])); - } - set { - this["HideLeftList"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("0, 0")] - public global::System.Drawing.Size WindowSize { - get { - return ((global::System.Drawing.Size)(this["WindowSize"])); - } - set { - this["WindowSize"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string InputGridLayoutAnalog { - get { - return ((string)(this["InputGridLayoutAnalog"])); - } - set { - this["InputGridLayoutAnalog"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string InputGridLayoutDvbCT { - get { - return ((string)(this["InputGridLayoutDvbCT"])); - } - set { - this["InputGridLayoutDvbCT"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string InputGridLayoutDvbS { - get { - return ((string)(this["InputGridLayoutDvbS"])); - } - set { - this["InputGridLayoutDvbS"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("0")] - public int LeftPanelWidth { - get { - return ((int)(this["LeftPanelWidth"])); - } - set { - this["LeftPanelWidth"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("False")] - public bool ShowWarningsAfterLoading { - get { - return ((bool)(this["ShowWarningsAfterLoading"])); - } - set { - this["ShowWarningsAfterLoading"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("True")] - public bool EraseDuplicateChannels { - get { - return ((bool)(this["EraseDuplicateChannels"])); - } - set { - this["EraseDuplicateChannels"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("True")] - public bool AutoLoadRefList { - get { - return ((bool)(this["AutoLoadRefList"])); - } - set { - this["AutoLoadRefList"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("True")] - public bool AutoAppendUnsortedChannels { - get { - return ((bool)(this["AutoAppendUnsortedChannels"])); - } - set { - this["AutoAppendUnsortedChannels"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("True")] - public bool CloseGaps { - get { - return ((bool)(this["CloseGaps"])); - } - set { - this["CloseGaps"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string MruFile0 { - get { - return ((string)(this["MruFile0"])); - } - set { - this["MruFile0"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string MruFile1 { - get { - return ((string)(this["MruFile1"])); - } - set { - this["MruFile1"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string MruFile2 { - get { - return ((string)(this["MruFile2"])); - } - set { - this["MruFile2"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string MruFile3 { - get { - return ((string)(this["MruFile3"])); - } - set { - this["MruFile3"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string MruFile4 { - get { - return ((string)(this["MruFile4"])); - } - set { - this["MruFile4"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string MruFile5 { - get { - return ((string)(this["MruFile5"])); - } - set { - this["MruFile5"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string MruFile6 { - get { - return ((string)(this["MruFile6"])); - } - set { - this["MruFile6"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string MruFile7 { - get { - return ((string)(this["MruFile7"])); - } - set { - this["MruFile7"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string MruFile8 { - get { - return ((string)(this["MruFile8"])); - } - set { - this["MruFile8"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string MruFile9 { - get { - return ((string)(this["MruFile9"])); - } - set { - this["MruFile9"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("Tahoma")] - public string PrintFontName { - get { - return ((string)(this["PrintFontName"])); - } - set { - this["PrintFontName"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("12")] - public decimal PrintFontSize { - get { - return ((decimal)(this["PrintFontSize"])); - } - set { - this["PrintFontSize"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("False")] - public bool PrintSortByName { - get { - return ((bool)(this["PrintSortByName"])); - } - set { - this["PrintSortByName"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("False")] - public bool ExplorerIntegration { - get { - return ((bool)(this["ExplorerIntegration"])); - } - set { - this["ExplorerIntegration"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("True")] - public bool CheckForUpdates { - get { - return ((bool)(this["CheckForUpdates"])); - } - set { - this["CheckForUpdates"] = value; - } - } } } diff --git a/source/ChanSort/Properties/Settings.settings b/source/ChanSort/Properties/Settings.settings index bc8ca8e..8e615f2 100644 --- a/source/ChanSort/Properties/Settings.settings +++ b/source/ChanSort/Properties/Settings.settings @@ -1,123 +1,5 @@  - + - - - 0 - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - False - - - 0, 0 - - - - - - - - - - - - 0 - - - False - - - True - - - True - - - True - - - True - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Tahoma - - - 12 - - - False - - - False - - - True - - + \ No newline at end of file diff --git a/source/ChanSort/app.config b/source/ChanSort/app.config index 05b2ed6..229767b 100644 --- a/source/ChanSort/app.config +++ b/source/ChanSort/app.config @@ -2,130 +2,10 @@ -
- - - 0 - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - False - - - 0, 0 - - - - - - - - - - - - 0 - - - False - - - True - - - True - - - True - - - True - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Tahoma - - - 12 - - - False - - - False - - - True - - diff --git a/source/changelog.md b/source/changelog.md index bb8a6af..c1e27ff 100644 --- a/source/changelog.md +++ b/source/changelog.md @@ -1,6 +1,12 @@ ChanSort Change Log =================== +2019-07-20 +- user settings are now persisted across releases in %LOCALAPPDATA%\ChanSort\config.xml +- fixed Sony sdb.xml DVB-T channel lists +- added support for ITT, Medion, Nabo, ok., PEAQ, Schaub-Lorenz and Telefunken (same .sdx format as Silva-Schneider) +- fixed using wrong loader when the file type was manually selected in the "Open File" dialog + 2019-07-18 - fixed support for Sony "FormateVer 1.1.0" DVB-C channel lists