diff --git a/source/ChanSort.Api/ChanSort.Api.csproj b/source/ChanSort.Api/ChanSort.Api.csproj index 734dd47..04aff2d 100644 --- a/source/ChanSort.Api/ChanSort.Api.csproj +++ b/source/ChanSort.Api/ChanSort.Api.csproj @@ -73,6 +73,7 @@ + diff --git a/source/ChanSort.Api/Controller/CsvRefListSerializer.cs b/source/ChanSort.Api/Controller/CsvRefListSerializer.cs index a49fc6e..0e2f444 100644 --- a/source/ChanSort.Api/Controller/CsvRefListSerializer.cs +++ b/source/ChanSort.Api/Controller/CsvRefListSerializer.cs @@ -52,7 +52,7 @@ namespace ChanSort.Api var line = stream.ReadLine(); if (line != null && line.StartsWith("--------") && line.Contains(" Program Data!--------")) - throw new FileLoadException("ignoring .csv file with Sharp/Dyon/Blaupunkt/Hisense header line"); + throw LoaderException.TryNext("ignoring .csv file with Sharp/Dyon/Blaupunkt/Hisense header line"); try { @@ -64,7 +64,7 @@ namespace ChanSort.Api } catch (Exception ex) { - throw new FileLoadException($"Error in reference file line #{lineNr}: {line}", ex); + throw LoaderException.TryNext($"Error in reference file line #{lineNr}: {line}", ex); } } } diff --git a/source/ChanSort.Api/LoaderException.cs b/source/ChanSort.Api/LoaderException.cs new file mode 100644 index 0000000..9f0cc11 --- /dev/null +++ b/source/ChanSort.Api/LoaderException.cs @@ -0,0 +1,26 @@ +using System; + +namespace ChanSort; + +public class LoaderException : Exception +{ + public enum RecoveryMode { TryNext, Fail } + + public RecoveryMode Recovery { get; } + + private LoaderException(RecoveryMode recovery, string message, Exception inner) : base(message, inner) + { + Recovery = recovery; + } + + /// + /// In case the loader detects an unsupported file content (or knows another loader is responsible for loading it) + /// + public static LoaderException TryNext(string message, Exception inner = null) => throw new LoaderException(RecoveryMode.TryNext, message, inner); + + /// + /// Stop all loading attempts for the file + /// + public static LoaderException Fail(string message, Exception inner = null) => throw new LoaderException(RecoveryMode.Fail, message, inner); +} + diff --git a/source/ChanSort.Api/Utils/MappingPool.cs b/source/ChanSort.Api/Utils/MappingPool.cs index 2559088..21e60f9 100644 --- a/source/ChanSort.Api/Utils/MappingPool.cs +++ b/source/ChanSort.Api/Utils/MappingPool.cs @@ -1,5 +1,4 @@ using System.Collections.Generic; -using System.IO; namespace ChanSort.Api { @@ -37,7 +36,7 @@ namespace ChanSort.Api T mapping; if (!mappings.TryGetValue(id, out mapping) && throwException) - throw new FileLoadException(string.Format(ERR_unknownACTChannelDataLength, this.caption, id)); + throw LoaderException.Fail(string.Format(ERR_unknownACTChannelDataLength, this.caption, id)); if (mapping != null && this.DefaultEncoding != null) mapping.DefaultEncoding = this.DefaultEncoding; diff --git a/source/ChanSort.Loader.Android/AldenSerializer.cs b/source/ChanSort.Loader.Android/AldenSerializer.cs index ea5a49b..a586852 100644 --- a/source/ChanSort.Loader.Android/AldenSerializer.cs +++ b/source/ChanSort.Loader.Android/AldenSerializer.cs @@ -97,7 +97,7 @@ namespace ChanSort.Loader.Android { cmd.CommandText = $"select count(1) from sqlite_master where type='table' and name='{table}'"; if ((long)cmd.ExecuteScalar() == 0) - throw new FileLoadException(ERR_UnknownFormat); + throw LoaderException.TryNext(ERR_UnknownFormat); } var columns = "_id, type, service_type, original_network_id, transport_stream_id, service_id, display_number, display_name, browsable, searchable, locked, " diff --git a/source/ChanSort.Loader.Android/AndroidPlugin.cs b/source/ChanSort.Loader.Android/AndroidPlugin.cs index b6c198e..5fc5c7b 100644 --- a/source/ChanSort.Loader.Android/AndroidPlugin.cs +++ b/source/ChanSort.Loader.Android/AndroidPlugin.cs @@ -17,7 +17,7 @@ namespace ChanSort.Loader.Android if (file.StartsWith("dvr_rtk_tv") && file.EndsWith(".db")) return new AldenSerializer(inputFile); - throw new FileLoadException(SerializerBase.ERR_UnknownFormat); + throw LoaderException.TryNext(SerializerBase.ERR_UnknownFormat); } } } diff --git a/source/ChanSort.Loader.CmdbBin/CmdbFileSerializer.cs b/source/ChanSort.Loader.CmdbBin/CmdbFileSerializer.cs index f63b426..ec761dc 100644 --- a/source/ChanSort.Loader.CmdbBin/CmdbFileSerializer.cs +++ b/source/ChanSort.Loader.CmdbBin/CmdbFileSerializer.cs @@ -69,7 +69,7 @@ namespace ChanSort.Loader.CmdbBin } if (!this.loaded) - throw new FileLoadException("\"" + this.FileName + "\" does not belong to a supported dtv_cmdb_* file system"); + throw LoaderException.Fail("\"" + this.FileName + "\" does not belong to a supported dtv_cmdb_* file system"); } #endregion diff --git a/source/ChanSort.Loader.Enigma2/Serializer.cs b/source/ChanSort.Loader.Enigma2/Serializer.cs index eaaef95..4de9ec3 100644 --- a/source/ChanSort.Loader.Enigma2/Serializer.cs +++ b/source/ChanSort.Loader.Enigma2/Serializer.cs @@ -99,12 +99,12 @@ namespace ChanSort.Loader.Enigma2 { var path = Path.Combine(Path.GetDirectoryName(this.FileName), "lamedb"); if (!File.Exists(path)) - throw new FileLoadException($"Could not find required file \"{path}\""); + throw LoaderException.Fail($"Could not find required file \"{path}\""); using var r = new StreamReader(File.OpenRead(path), utf8WithoutBom); var line = r.ReadLine(); if (line != "eDVB services /4/") - throw new FileLoadException($"lamedb version 4 is required"); + throw LoaderException.Fail($"lamedb version 4 is required"); string mode = null; Transponder tp = null; diff --git a/source/ChanSort.Loader.Grundig/Serializer.cs b/source/ChanSort.Loader.Grundig/Serializer.cs index 01ec4c0..d35d863 100644 --- a/source/ChanSort.Loader.Grundig/Serializer.cs +++ b/source/ChanSort.Loader.Grundig/Serializer.cs @@ -78,7 +78,7 @@ namespace ChanSort.Loader.Grundig this.LoadFile(fullPath); } if (this.fileDataList.Count == 0) - throw new FileLoadException("No dvb*_config.xml files found in folder structure"); + throw LoaderException.TryNext("No dvb*_config.xml files found in folder structure"); } #endregion @@ -134,7 +134,7 @@ namespace ChanSort.Loader.Grundig while (root.LocalName == "#whitespace") root = root.NextSibling; if (fail || root == null || root.LocalName != "CONFIG") - throw new FileLoadException("\"" + fileName + "\" is not a supported Grundig XML file"); + throw LoaderException.Fail("\"" + fileName + "\" is not a supported Grundig XML file"); int transponderId = 0; int chanId = 0; diff --git a/source/ChanSort.Loader.Hisense/ChannelDb/ChannelDbSerializer.cs b/source/ChanSort.Loader.Hisense/ChannelDb/ChannelDbSerializer.cs index 22b9873..f3b089a 100644 --- a/source/ChanSort.Loader.Hisense/ChannelDb/ChannelDbSerializer.cs +++ b/source/ChanSort.Loader.Hisense/ChannelDb/ChannelDbSerializer.cs @@ -150,7 +150,7 @@ namespace ChanSort.Loader.Hisense.ChannelDb this.LoadTableNames(cmd); if (!tableNames.Contains("svl_1") && !tableNames.Contains("svl_2") && !tableNames.Contains("svl_3")) - throw new FileLoadException("File doesn't contain svl_* tables"); + throw LoaderException.Fail("File doesn't contain svl_* tables"); this.LoadSatelliteData(cmd); this.LoadTslData(cmd); diff --git a/source/ChanSort.Loader.Hisense/ServicelistDb/ServicelistDbSerializer.cs b/source/ChanSort.Loader.Hisense/ServicelistDb/ServicelistDbSerializer.cs index b21fe1f..4293500 100644 --- a/source/ChanSort.Loader.Hisense/ServicelistDb/ServicelistDbSerializer.cs +++ b/source/ChanSort.Loader.Hisense/ServicelistDb/ServicelistDbSerializer.cs @@ -130,7 +130,7 @@ namespace ChanSort.Loader.Hisense.ServicelistDb // make sure this .db file contains the required tables if (dbSchema == null || !tableNames.Contains("service") || !tableNames.Contains("tuner")) - throw new FileLoadException("File doesn't contain the expected tables"); + throw LoaderException.Fail("File doesn't contain the expected tables"); LoadLists(cmd); LoadTunerData(cmd); diff --git a/source/ChanSort.Loader.LG.UI/ChanSort.Loader.LG.UI.csproj b/source/ChanSort.Loader.LG.UI/ChanSort.Loader.LG.UI.csproj index 73d2d08..df88c86 100644 --- a/source/ChanSort.Loader.LG.UI/ChanSort.Loader.LG.UI.csproj +++ b/source/ChanSort.Loader.LG.UI/ChanSort.Loader.LG.UI.csproj @@ -33,14 +33,14 @@ latest - + False - - - - - + + + + + diff --git a/source/ChanSort.Loader.LG.UI/PresetProgramNrDialog.resx b/source/ChanSort.Loader.LG.UI/PresetProgramNrDialog.resx index acc1685..8a8cc68 100644 --- a/source/ChanSort.Loader.LG.UI/PresetProgramNrDialog.resx +++ b/source/ChanSort.Loader.LG.UI/PresetProgramNrDialog.resx @@ -121,7 +121,7 @@ Top, Left, Right - + Vertical @@ -143,7 +143,7 @@ labelControl1 - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -176,7 +176,7 @@ labelControl3 - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -209,7 +209,7 @@ labelControl4 - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -239,7 +239,7 @@ labelControl5 - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -269,7 +269,7 @@ labelControl6 - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -299,7 +299,7 @@ labelControl7 - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -353,7 +353,7 @@ btnOk - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -383,7 +383,7 @@ labelControl2 - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -410,6 +410,6 @@ PresetProgramNrDialog - DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a \ No newline at end of file diff --git a/source/ChanSort.Loader.LG.UI/TvSettingsForm.resx b/source/ChanSort.Loader.LG.UI/TvSettingsForm.resx index 7ecad8e..0009543 100644 --- a/source/ChanSort.Loader.LG.UI/TvSettingsForm.resx +++ b/source/ChanSort.Loader.LG.UI/TvSettingsForm.resx @@ -139,7 +139,7 @@ cbHbbTv - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpOption @@ -166,7 +166,7 @@ cbCustomCountry - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpOption @@ -177,7 +177,7 @@ 72, 29 - + Combo @@ -191,7 +191,7 @@ comboBoxEdit1 - DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpOption @@ -215,7 +215,7 @@ labelControl1 - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpOption @@ -242,7 +242,7 @@ grpOption - DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -269,7 +269,7 @@ btnOk - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -296,7 +296,7 @@ btnCancel - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -304,7 +304,7 @@ 2 - + Vertical @@ -324,7 +324,7 @@ labelControl3 - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpHotelMode @@ -348,7 +348,7 @@ labelControl2 - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpHotelMode @@ -375,7 +375,7 @@ cbDtvUpdate - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpHotelMode @@ -402,7 +402,7 @@ cbHotelMode - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpHotelMode @@ -429,7 +429,7 @@ grpHotelMode - DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -456,7 +456,7 @@ cbAutoChannelUpdate - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpSetup @@ -483,7 +483,7 @@ grpSetup - DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -510,7 +510,7 @@ labelControl4 - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpInformation @@ -537,7 +537,7 @@ grpInformation - DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -567,7 +567,7 @@ lblHotelMenuAutoDetect - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -594,6 +594,6 @@ TvSettingsForm - DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a \ No newline at end of file diff --git a/source/ChanSort.Loader.LG/Binary/TllFileSerializer.cs b/source/ChanSort.Loader.LG/Binary/TllFileSerializer.cs index 86e90d7..3a13499 100644 --- a/source/ChanSort.Loader.LG/Binary/TllFileSerializer.cs +++ b/source/ChanSort.Loader.LG/Binary/TllFileSerializer.cs @@ -162,11 +162,11 @@ namespace ChanSort.Loader.LG.Binary long fileSize = new FileInfo(this.FileName).Length; if (fileSize > MaxFileSize) - throw new FileLoadException(string.Format(ERR_fileTooBig, fileSize, MaxFileSize), this.FileName); + throw LoaderException.Fail(string.Format(ERR_fileTooBig, fileSize, MaxFileSize)); this.fileContent = File.ReadAllBytes(this.FileName); if (this.fileContent[0] == '<') - throw new FileLoadException("Invalid binary TLL file format. Maybe a GlobalClone/XML file?", this.FileName); + throw LoaderException.Fail("Invalid binary TLL file format. Maybe a GlobalClone/XML file?"); int off = 0; @@ -240,7 +240,7 @@ Due to issues with most recent LG firmwares such lists can no longer be modified private void ReadFileHeader(ref int off) { if (fileContent.Length < 4) - throw new FileLoadException(ERR_modelUnknown); + throw LoaderException.Fail(ERR_modelUnknown); var magic = BitConverter.ToUInt32(fileContent, off); if (magic == 0x5A5A5A5A || magic == 0xA5A5A5A5) off += 4; @@ -386,7 +386,7 @@ Due to issues with most recent LG firmwares such lists can no longer be modified { long len = BitConverter.ToUInt32(fileContent, off); if (len < minSize || off + 4 + len > fileContent.Length) - throw new FileLoadException(ERR_modelUnknown); + throw LoaderException.Fail(ERR_modelUnknown); return (int)len; } #endregion @@ -395,10 +395,10 @@ Due to issues with most recent LG firmwares such lists can no longer be modified private int GetActChannelRecordSize(int off, int blockSize, int channelCount) { if ((blockSize - 4) % channelCount != 0) - throw new FileLoadException(ERR_modelUnknown); + throw LoaderException.Fail(ERR_modelUnknown); int recordSize = (blockSize - 4) / channelCount; if (off + channelCount * recordSize > fileContent.Length) - throw new FileLoadException(ERR_modelUnknown); + throw LoaderException.Fail(ERR_modelUnknown); return recordSize; } #endregion @@ -477,7 +477,7 @@ Due to issues with most recent LG firmwares such lists can no longer be modified uint fileCrc = BitConverter.ToUInt32(fileContent, off); uint calcCrc = Crc32.Reversed.CalcCrc32(fileContent, off + 4, subblockLength); if (fileCrc != calcCrc) - throw new FileLoadException(string.Format(ERR_wrongChecksum, fileCrc, calcCrc)); + throw LoaderException.Fail(string.Format(ERR_wrongChecksum, fileCrc, calcCrc)); off += 4 + subblockLength; } } diff --git a/source/ChanSort.Loader.LG/GlobalClone/GcJsonSerializer.cs b/source/ChanSort.Loader.LG/GlobalClone/GcJsonSerializer.cs index b3ca2e3..d84fc6c 100644 --- a/source/ChanSort.Loader.LG/GlobalClone/GcJsonSerializer.cs +++ b/source/ChanSort.Loader.LG/GlobalClone/GcJsonSerializer.cs @@ -68,7 +68,7 @@ namespace ChanSort.Loader.GlobalClone } if (json == null) - throw new FileLoadException($"File does not contain a {startTag}...{endTag} node"); + throw LoaderException.Fail($"File does not contain a {startTag}...{endTag} node"); this.doc = JObject.Parse(json); LoadSatellites(); @@ -87,7 +87,7 @@ namespace ChanSort.Loader.GlobalClone switch (dlg.SelectedAction) { case 0: - throw new FileLoadException(ChanSort.Loader.LG.Resource.LG_BlindscanInfo_Rejected); + throw LoaderException.Fail(ChanSort.Loader.LG.Resource.LG_BlindscanInfo_Rejected); case 1: System.Diagnostics.Process.Start("https://github.com/PredatH0r/ChanSort/discussions/207"); break; @@ -200,7 +200,7 @@ namespace ChanSort.Loader.GlobalClone private void LoadChannels() { if (this.doc["channelList"] == null) - throw new FileLoadException("JSON does not contain a channelList node"); + throw LoaderException.Fail("JSON does not contain a channelList node"); var dec = new DvbStringDecoder(this.DefaultEncoding); int i = 0; diff --git a/source/ChanSort.Loader.LG/GlobalClone/GcXmlSerializer.cs b/source/ChanSort.Loader.LG/GlobalClone/GcXmlSerializer.cs index b9441b2..07072fc 100644 --- a/source/ChanSort.Loader.LG/GlobalClone/GcXmlSerializer.cs +++ b/source/ChanSort.Loader.LG/GlobalClone/GcXmlSerializer.cs @@ -50,7 +50,7 @@ namespace ChanSort.Loader.GlobalClone this.doc = new XmlDocument(); string textContent = File.ReadAllText(this.FileName, Encoding.UTF8); if (textContent[0] != '<') - throw new FileLoadException("Invalid GlobalClone/XML file format. Maybe a binary xx*.TLL file?", this.FileName); + throw LoaderException.Fail("Invalid GlobalClone/XML file format. Maybe a binary xx*.TLL file?"); textContent = ReplaceInvalidXmlCharacters(textContent); var settings = new XmlReaderSettings { CheckCharacters = false }; using (var reader = XmlReader.Create(new StringReader(textContent), settings)) @@ -67,7 +67,7 @@ namespace ChanSort.Loader.GlobalClone if (root is XmlDeclaration) root = root.NextSibling; if (fail || root == null || root.LocalName != "TLLDATA") - throw new FileLoadException("\"" + this.FileName + "\" is not a supported GlobalClone XML file"); + throw LoaderException.Fail("\"" + this.FileName + "\" is not a supported GlobalClone XML file"); foreach (XmlNode child in root.ChildNodes) { diff --git a/source/ChanSort.Loader.Loewe/Serializer.cs b/source/ChanSort.Loader.Loewe/Serializer.cs index bdad521..ce09b1b 100644 --- a/source/ChanSort.Loader.Loewe/Serializer.cs +++ b/source/ChanSort.Loader.Loewe/Serializer.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.IO; using System.Linq; using System.Text; using System.Xml; @@ -127,19 +126,19 @@ class Serializer : SerializerBase doc.Load(this.FileName); var sl = doc["servicelist"]; if (sl == null) - throw new FileLoadException("expected root element "); + throw LoaderException.TryNext("expected root element "); var tuners = sl["tuners"]; if (tuners == null) - throw new FileLoadException("missing list"); + throw LoaderException.TryNext("missing list"); var services = sl["services"]; if (services == null) - throw new FileLoadException("missing list"); + throw LoaderException.TryNext("missing list"); var favorites = sl["favorites"]; if (favorites == null) - throw new FileLoadException("missing list"); + throw LoaderException.TryNext("missing list"); LoadTuners(tuners); LoadServices(services); diff --git a/source/ChanSort.Loader.M3u/Serializer.cs b/source/ChanSort.Loader.M3u/Serializer.cs index fccd7c7..7d6a7ba 100644 --- a/source/ChanSort.Loader.M3u/Serializer.cs +++ b/source/ChanSort.Loader.M3u/Serializer.cs @@ -61,7 +61,7 @@ namespace ChanSort.Loader.M3u var rdr = new StreamReader(new MemoryStream(content), overrideEncoding ?? this.DefaultEncoding); string line = rdr.ReadLine()?.TrimEnd(); if (line == null || !(line == "#EXTM3U" || line.StartsWith("#EXTM3U "))) - throw new FileLoadException("Unsupported .m3u file: " + this.FileName); + throw LoaderException.Fail("Unsupported .m3u file: " + this.FileName); this.headerLines.Add(line); diff --git a/source/ChanSort.Loader.Panasonic/IdtvChannelSerializer.cs b/source/ChanSort.Loader.Panasonic/IdtvChannelSerializer.cs index 7c8e87a..f244ea0 100644 --- a/source/ChanSort.Loader.Panasonic/IdtvChannelSerializer.cs +++ b/source/ChanSort.Loader.Panasonic/IdtvChannelSerializer.cs @@ -180,9 +180,9 @@ internal class IdtvChannelSerializer : SerializerBase public override void Load() { if (!File.Exists(dbFile)) - throw new FileLoadException("expected file not found: " + dbFile); + throw LoaderException.Fail("expected file not found: " + dbFile); if (!File.Exists(binFile)) - throw new FileLoadException("expected file not found: " + binFile); + throw LoaderException.Fail("expected file not found: " + binFile); string connString = "Data Source=" + this.dbFile; using var db = new SqliteConnection(connString); @@ -194,7 +194,7 @@ internal class IdtvChannelSerializer : SerializerBase cmd.CommandText = "SELECT count(1) FROM sqlite_master WHERE type = 'table' and name in ('android_metadata', 'channels')"; var result = Convert.ToInt32(cmd.ExecuteScalar()); // if the database file is corrupted, the execption will be thrown here and not when opening it if (result != 2) - throw new FileLoadException("File doesn't contain the expected android_metadata/channels tables"); + throw LoaderException.Fail("File doesn't contain the expected android_metadata/channels tables"); } catch (SqliteException) { @@ -223,7 +223,7 @@ internal class IdtvChannelSerializer : SerializerBase for (i = 0; i < 16; i++) { if (binFileData[8 + i] != hash[i]) - throw new FileLoadException("Invalid MD5 checksum in " + binFile); + throw LoaderException.Fail("Invalid MD5 checksum in " + binFile); } using var strm = new MemoryStream(binFileData); @@ -256,7 +256,7 @@ internal class IdtvChannelSerializer : SerializerBase var key = (ushort)chan.InternalProviderFlag2; if (this.binChannelByInternalProviderFlag2.TryGetValue(key, out var ch)) - throw new FileLoadException($"{binFile} channel records {ch.Index} and {i} have duplicate internal_provider_flag2 value {key}."); + throw LoaderException.Fail($"{binFile} channel records {ch.Index} and {i} have duplicate internal_provider_flag2 value {key}."); this.binChannelByInternalProviderFlag2.Add(key, new BinChannelEntry(i, chan, name, off)); @@ -274,7 +274,7 @@ internal class IdtvChannelSerializer : SerializerBase } if (i < numRecords) - throw new FileLoadException($"idtvChannel contains only {i} data records, but expected {numRecords}"); + throw LoaderException.Fail($"idtvChannel contains only {i} data records, but expected {numRecords}"); } #endregion @@ -368,7 +368,7 @@ internal class IdtvChannelSerializer : SerializerBase // validate consistency between .db and .bin (multiple .db rows can reference the same .bin record) if (!this.binChannelByInternalProviderFlag2.TryGetValue((ushort)ch.InternalProviderFlag2, out var idtvEntry)) - throw new FileLoadException($"{list.ShortCaption} channel with _id {ch.RecordIndex} refers to non-existing idtvChannel.bin record with internal_provider_flag2 {ch.InternalProviderFlag2}"); + throw LoaderException.Fail($"{list.ShortCaption} channel with _id {ch.RecordIndex} refers to non-existing idtvChannel.bin record with internal_provider_flag2 {ch.InternalProviderFlag2}"); ValidateChannelData(ch, idtvEntry); } } @@ -388,13 +388,13 @@ internal class IdtvChannelSerializer : SerializerBase //var progNr = chan.ProgNr; //if (ch.OldProgramNr != progNr) // multiple .db rows with different display_number can reference the same .db row, so skip this check - // throw new FileLoadException($"mismatching display_number between tv.db _id {ch.RecordIndex} ({ch.OldProgramNr}) and idtvChannel.bin record {i} ({progNr})"); + // throw new LoaderException.Fail($"mismatching display_number between tv.db _id {ch.RecordIndex} ({ch.OldProgramNr}) and idtvChannel.bin record {i} ({progNr})"); if (ch.Name != name) - throw new FileLoadException($"mismatching name between tv.db _id {ch.RecordIndex} ({ch.Name}) and idtvChannel.bin record {i} ({name})"); + throw LoaderException.Fail($"mismatching name between tv.db _id {ch.RecordIndex} ({ch.Name}) and idtvChannel.bin record {i} ({name})"); if (Math.Abs(ch.FreqInMhz - freq) > 2) - throw new FileLoadException($"mismatching frequency between tv.db _id {ch.RecordIndex} ({ch.FreqInMhz}) and idtvChannel.bin record {i} ({freq})"); + throw LoaderException.Fail($"mismatching frequency between tv.db _id {ch.RecordIndex} ({ch.FreqInMhz}) and idtvChannel.bin record {i} ({freq})"); if (Math.Abs(ch.SymbolRate - symRate) > 2) - throw new FileLoadException($"mismatching symbol rate between tv.db _id {ch.RecordIndex} ({ch.SymbolRate}) and idtvChannel.bin record {i} ({symRate})"); + throw LoaderException.Fail($"mismatching symbol rate between tv.db _id {ch.RecordIndex} ({ch.SymbolRate}) and idtvChannel.bin record {i} ({symRate})"); if (ch.Encrypted != ((chan.Flags & Flags.Encrypted) != 0)) log.AppendLine($"mismatching crypt-flag between tv.db _id {ch.RecordIndex} ({ch.Encrypted}) and idtvChannel.bin record {i}"); diff --git a/source/ChanSort.Loader.Panasonic/Serializer.cs b/source/ChanSort.Loader.Panasonic/Serializer.cs index c983d94..a9d8d46 100644 --- a/source/ChanSort.Loader.Panasonic/Serializer.cs +++ b/source/ChanSort.Loader.Panasonic/Serializer.cs @@ -75,21 +75,17 @@ namespace ChanSort.Loader.Panasonic this.CreateDummySatellites(); string channelConnString = "Data Source=" + this.workFile; - using (var conn = new SqliteConnection(channelConnString)) - { - conn.Open(); - using (var cmd = conn.CreateCommand()) - { - RepairCorruptedDatabaseImage(cmd); - InitCharacterEncoding(cmd); + using var conn = new SqliteConnection(channelConnString); + conn.Open(); + using var cmd = conn.CreateCommand(); + RepairCorruptedDatabaseImage(cmd); + InitCharacterEncoding(cmd); - cmd.CommandText = "SELECT count(1) FROM sqlite_master WHERE type = 'table' and name in ('SVL', 'TSL')"; - if (Convert.ToInt32(cmd.ExecuteScalar()) != 2) - throw new FileLoadException("File doesn't contain the expected TSL/SVL tables"); + cmd.CommandText = "SELECT count(1) FROM sqlite_master WHERE type = 'table' and name in ('SVL', 'TSL')"; + if (Convert.ToInt32(cmd.ExecuteScalar()) != 2) + throw LoaderException.TryNext("File doesn't contain the expected TSL/SVL tables"); - this.ReadChannels(cmd); - } - } + this.ReadChannels(cmd); } #endregion @@ -98,7 +94,7 @@ namespace ChanSort.Loader.Panasonic { this.cypherMode = this.GetCypherMode(this.FileName); if (cypherMode == CypherMode.Unknown) - throw new FileLoadException(ERR_UnknownFormat); + throw LoaderException.TryNext(ERR_UnknownFormat); if (cypherMode == CypherMode.None) return this.FileName; @@ -137,7 +133,7 @@ namespace ChanSort.Loader.Panasonic byte[] fileContent = File.ReadAllBytes(input); if (!encrypt && this.CalcChecksum(fileContent, fileContent.Length) != 0) - throw new FileLoadException("Checksum validation failed"); + throw LoaderException.Fail("Checksum validation failed"); int chiffre = 0x0388; int step = 0; @@ -167,12 +163,12 @@ namespace ChanSort.Loader.Panasonic { var data = File.ReadAllBytes(inputFile); if (this.CalcChecksum(data, data.Length) != 0) - throw new FileLoadException("Checksum validation failed"); + throw LoaderException.Fail("Checksum validation failed"); int offset; if (!this.ValidateFileSize(data, ByteOrder.BigEndian, out offset) && !this.ValidateFileSize(data, ByteOrder.LittleEndian, out offset)) - throw new FileLoadException("File size validation failed"); + throw LoaderException.Fail("File size validation failed"); using (var stream = new FileStream(outputFile, FileMode.Create, FileAccess.Write)) stream.Write(data, offset, data.Length - offset - 4); diff --git a/source/ChanSort.Loader.Panasonic/XmlSerializer.cs b/source/ChanSort.Loader.Panasonic/XmlSerializer.cs index a1e3ceb..e83fcbf 100644 --- a/source/ChanSort.Loader.Panasonic/XmlSerializer.cs +++ b/source/ChanSort.Loader.Panasonic/XmlSerializer.cs @@ -99,7 +99,7 @@ namespace ChanSort.Loader.Panasonic if (root is XmlDeclaration) root = root.NextSibling; if (fail || root == null || root.LocalName != "ChannelList" || !root.HasChildNodes || root.ChildNodes[0].LocalName != "ChannelInfo") - throw new FileLoadException("File is not a supported Panasonic XML file"); + throw LoaderException.TryNext("File is not a supported Panasonic XML file"); foreach (XmlNode child in root.ChildNodes) { diff --git a/source/ChanSort.Loader.Philips/BinarySerializer.cs b/source/ChanSort.Loader.Philips/BinarySerializer.cs index 7984408..1ed0a92 100644 --- a/source/ChanSort.Loader.Philips/BinarySerializer.cs +++ b/source/ChanSort.Loader.Philips/BinarySerializer.cs @@ -169,7 +169,7 @@ namespace ChanSort.Loader.Philips } else { - throw new FileLoadException("Only Philips channel list format version 1.x and 25-45 are supported by this loader"); + throw LoaderException.Fail("Only Philips channel list format version 1.x and 25-45 are supported by this loader"); } // for a proper ChanSort backup/restore with .bak files, the Philips _backup.dat files must also be included @@ -234,7 +234,7 @@ namespace ChanSort.Loader.Philips mapping.SetDword("offChecksum", 0); var crc = FaultyCrc32(data, mapping.BaseOffset + mapping.GetConst("offChecksum", 0), recordSize); if (crc != checksum) - throw new FileLoadException($"Invalid CRC in record {i} in {path}"); + throw LoaderException.Fail($"Invalid CRC in record {i} in {path}"); } var ch = new Channel(list.SignalSource & SignalSource.MaskAntennaCableSat, i, progNr, channelName); @@ -326,7 +326,7 @@ namespace ChanSort.Loader.Philips recordSize = BitConverter.ToInt32(data, 8); recordCount = BitConverter.ToInt32(data, 12); if (data.Length != 20 + recordCount * recordSize) - throw new FileLoadException("Unsupported file content: " + path); + throw LoaderException.Fail("Unsupported file content: " + path); } else { @@ -336,7 +336,7 @@ namespace ChanSort.Loader.Philips recordSize = 156; // Map45 recordCount = BitConverter.ToInt32(data, 8); if (data.Length != 12 + recordCount * recordSize) - throw new FileLoadException("Unsupported file content: " + path); + throw LoaderException.Fail("Unsupported file content: " + path); } @@ -442,7 +442,7 @@ namespace ChanSort.Loader.Philips var crcObj = new Crc32(false, Crc32.NormalPoly); var crc = ~crcObj.CalcCrc32(data, 0, data.Length - 4); if (checksum != crc) - throw new FileLoadException("Invalid CRC32 in " + path); + throw LoaderException.Fail("Invalid CRC32 in " + path); } @@ -456,7 +456,7 @@ namespace ChanSort.Loader.Philips // 12 bytes header, then a "next/prev" table, then the service records, then a CRC32 // the "next/prev" table is a ring-list, every entry consists of 2 ushorts with the next and previous channel, wrapping around on the ends if (data.Length != 12 + recordCount * 4 + recordCount * recordSize + 4) - throw new FileLoadException("Unsupported file content: " + path); + throw LoaderException.Fail("Unsupported file content: " + path); } this.dataFilePaths.Add(path); diff --git a/source/ChanSort.Loader.Philips/ChanLstBin.cs b/source/ChanSort.Loader.Philips/ChanLstBin.cs index 9b76973..8c3eccf 100644 --- a/source/ChanSort.Loader.Philips/ChanLstBin.cs +++ b/source/ChanSort.Loader.Philips/ChanLstBin.cs @@ -136,7 +136,7 @@ namespace ChanSort.Loader.Philips switch (dlg.SelectedAction) { case 0: - throw new FileLoadException("Aborted due to checksum errors"); + throw LoaderException.Fail("Aborted due to checksum errors"); } } } diff --git a/source/ChanSort.Loader.Philips/DbSerializer.cs b/source/ChanSort.Loader.Philips/DbSerializer.cs index a1f995a..7de200b 100644 --- a/source/ChanSort.Loader.Philips/DbSerializer.cs +++ b/source/ChanSort.Loader.Philips/DbSerializer.cs @@ -145,7 +145,7 @@ namespace ChanSort.Loader.Philips } if (!validList) - throw new FileLoadException(this.FileName + " is not a supported Philips Repair/channel_db_ver.db channel list"); + throw LoaderException.TryNext(this.FileName + " is not a supported Philips Repair/channel_db_ver.db channel list"); foreach (var channelList in this.DataRoot.ChannelLists) { @@ -206,7 +206,7 @@ namespace ChanSort.Loader.Philips var expectedChecksum = BitConverter.ToUInt16(data, offChecksum); var actualChecksum = (UInt16)CalcChecksum(data, 0, offChecksum); if (actualChecksum != expectedChecksum) - throw new FileLoadException($"File {path} contains invalid checksum. Expected {expectedChecksum:x4} but calculated {actualChecksum:x4}"); + throw LoaderException.Fail($"File {path} contains invalid checksum. Expected {expectedChecksum:x4} but calculated {actualChecksum:x4}"); channelRecordLength = lenEntry; @@ -302,7 +302,7 @@ namespace ChanSort.Loader.Philips var expectedChecksum = BitConverter.ToUInt32(data, data.Length - 4); var actualChecksum = CalcChecksum(data, 0, data.Length - 4); if (actualChecksum != expectedChecksum) - throw new FileLoadException($"File {path} contains invalid checksum. Expected {expectedChecksum:x8} but calculated {actualChecksum:x8}"); + throw LoaderException.Fail($"File {path} contains invalid checksum. Expected {expectedChecksum:x8} but calculated {actualChecksum:x8}"); var settings = this.ini.GetSection(sectionName + ":" + dbChannelRecordLength, true); var mapping = new DataMapping(settings, data); diff --git a/source/ChanSort.Loader.Philips/PhilipsPlugin.cs b/source/ChanSort.Loader.Philips/PhilipsPlugin.cs index c2cb4fb..1849606 100644 --- a/source/ChanSort.Loader.Philips/PhilipsPlugin.cs +++ b/source/ChanSort.Loader.Philips/PhilipsPlugin.cs @@ -138,7 +138,7 @@ namespace ChanSort.Loader.Philips if (majorVersion == -1) return new DbSerializer(inputFile); - throw new FileLoadException(majorVersion == int.MinValue ? SerializerBase.ERR_UnknownFormat : $"Philips ChannelMap format version {majorVersion} is not supported (yet)."); + throw LoaderException.Fail(majorVersion == int.MinValue ? SerializerBase.ERR_UnknownFormat : $"Philips ChannelMap format version {majorVersion} is not supported (yet)."); } } } diff --git a/source/ChanSort.Loader.Philips/XmlSerializer.cs b/source/ChanSort.Loader.Philips/XmlSerializer.cs index 4ea2824..0629ce7 100644 --- a/source/ChanSort.Loader.Philips/XmlSerializer.cs +++ b/source/ChanSort.Loader.Philips/XmlSerializer.cs @@ -209,7 +209,7 @@ namespace ChanSort.Loader.Philips this.LoadFile(fullPath); } if (this.fileDataList.Count == 0) - throw new FileLoadException("No XML files found in folder structure"); + throw LoaderException.TryNext("No XML files found in folder structure"); } else { @@ -285,7 +285,7 @@ namespace ChanSort.Loader.Philips if (root?.LocalName == "ECSM") root = root.FirstChild; if (fail || root == null || (root.LocalName != "ChannelMap" && root.LocalName != "FavoriteListMAP")) - throw new FileLoadException("\"" + fileName + "\" is not a supported Philips XML file"); + throw LoaderException.TryNext("\"" + fileName + "\" is not a supported Philips XML file"); int rowId = 0; ChannelList curList = null; @@ -312,8 +312,8 @@ namespace ChanSort.Loader.Philips private ChannelList DetectFormatAndFeatures(FileData file, XmlNode node) { - var setupNode = node["Setup"] ?? throw new FileLoadException("Missing Setup XML element"); - var bcastNode = node["Broadcast"] ?? throw new FileLoadException("Missing Broadcast XML element"); + var setupNode = node["Setup"] ?? throw LoaderException.Fail("Missing Setup XML element"); + var bcastNode = node["Broadcast"] ?? throw LoaderException.Fail("Missing Broadcast XML element"); var fname = Path.GetFileNameWithoutExtension(file.path).ToLowerInvariant(); var medium = bcastNode.GetAttribute("medium"); @@ -359,7 +359,7 @@ namespace ChanSort.Loader.Philips hasEncrypt = setupNode.HasAttribute("Scramble") || setupNode.HasAttribute("Scrambled"); } else - throw new FileLoadException("Unknown data format"); + throw LoaderException.Fail("Unknown data format"); ChannelList chList = null; switch (medium) @@ -420,8 +420,8 @@ namespace ChanSort.Loader.Philips #region ReadChannel() private void ReadChannel(FileData file, ChannelList curList, XmlNode node, int rowId) { - var setupNode = node["Setup"] ?? throw new FileLoadException("Missing Setup XML element"); - var bcastNode = node["Broadcast"] ?? throw new FileLoadException("Missing Broadcast XML element"); + var setupNode = node["Setup"] ?? throw LoaderException.Fail("Missing Setup XML element"); + var bcastNode = node["Broadcast"] ?? throw LoaderException.Fail("Missing Broadcast XML element"); var data = new Dictionary(StringComparer.InvariantCultureIgnoreCase); foreach (var n in new[] {setupNode, bcastNode}) { diff --git a/source/ChanSort.Loader.Samsung/Scm/ScmSerializer.cs b/source/ChanSort.Loader.Samsung/Scm/ScmSerializer.cs index 6211378..44e8718 100644 --- a/source/ChanSort.Loader.Samsung/Scm/ScmSerializer.cs +++ b/source/ChanSort.Loader.Samsung/Scm/ScmSerializer.cs @@ -160,7 +160,7 @@ namespace ChanSort.Loader.Samsung.Scm if (DetectModelFromFileName()) return; if (DetectModelFromCloneInfoFile(tempDir)) return; if (DetectModelFromContentFileLengths(tempDir)) return; - throw new FileLoadException("Unable to determine TV model from file content or name"); + throw LoaderException.Fail("Unable to determine TV model from file content or name"); } #endregion @@ -554,7 +554,7 @@ namespace ChanSort.Loader.Samsung.Scm this.DataRoot.Satellites.Add(satMapping.SatelliteNr, satellite); } else if (satMapping.MagicMarker != 'E') - throw new FileLoadException("Unknown SatDataBase.dat format"); + throw LoaderException.Fail("Unknown SatDataBase.dat format"); satMapping.BaseOffset += this.c.dvbsSatelliteLength; } diff --git a/source/ChanSort.Loader.Samsung/Zip/DbSerializer.cs b/source/ChanSort.Loader.Samsung/Zip/DbSerializer.cs index ed35995..434e372 100644 --- a/source/ChanSort.Loader.Samsung/Zip/DbSerializer.cs +++ b/source/ChanSort.Loader.Samsung/Zip/DbSerializer.cs @@ -12,7 +12,7 @@ namespace ChanSort.Loader.Samsung.Zip /// /// Loader for Samsung J/K/M/N/R/Q series .zip files (2015 - 2020) /// - class DbSerializer : SerializerBase + internal class DbSerializer : SerializerBase { private readonly Dictionary channelById = new Dictionary(); private readonly Dictionary dbPathByChannelList = new Dictionary(); @@ -44,7 +44,7 @@ namespace ChanSort.Loader.Samsung.Zip this.UnzipFileToTempFolder(); if (File.Exists(this.TempPath + "\\sat")) { - try +// try { using (var conn = new SqliteConnection("Data Source=" + this.TempPath + "\\sat")) { @@ -52,14 +52,14 @@ namespace ChanSort.Loader.Samsung.Zip this.ReadSatDatabase(conn); } } - catch - { - } + // catch + //{ + //} } var files = Directory.GetFiles(this.TempPath, "*."); if (files.Length == 0) - throw new FileLoadException("The Samsung .zip channel list archive does not contain any supported files."); + throw LoaderException.TryNext("The Samsung .zip channel list archive does not contain any supported files."); foreach (var filePath in files) { diff --git a/source/ChanSort.Loader.SatcoDX/Channel.cs b/source/ChanSort.Loader.SatcoDX/Channel.cs index d469d8b..5425d09 100644 --- a/source/ChanSort.Loader.SatcoDX/Channel.cs +++ b/source/ChanSort.Loader.SatcoDX/Channel.cs @@ -1,6 +1,5 @@ using System; using System.Globalization; -using System.IO; using System.Text; using ChanSort.Api; @@ -23,9 +22,9 @@ namespace ChanSort.Loader.SatcoDX this.RecordOrder = this.OldProgramNr = pos + 1; if (!line.StartsWith("SATCODX")) - throw new FileLoadException("Only SAT channels are supported"); + throw LoaderException.Fail("Only SAT channels are supported"); if (line.Length < 106) - throw new FileLoadException("Unrecognized channel format"); + throw LoaderException.Fail("Unrecognized channel format"); // 10-27: satellite name this.Satellite = line.Substring(10, 18); diff --git a/source/ChanSort.Loader.Sharp/SharpSerializer.cs b/source/ChanSort.Loader.Sharp/SharpSerializer.cs index 82446be..1b98d25 100644 --- a/source/ChanSort.Loader.Sharp/SharpSerializer.cs +++ b/source/ChanSort.Loader.Sharp/SharpSerializer.cs @@ -246,7 +246,7 @@ namespace ChanSort.Loader.Sharp } } } - throw new FileLoadException("File does not contain the expected 3 header lines"); + throw LoaderException.Fail("File does not contain the expected 3 header lines"); } #endregion diff --git a/source/ChanSort.Loader.Sony/Serializer.cs b/source/ChanSort.Loader.Sony/Serializer.cs index 1a5f0d3..6b7f359 100644 --- a/source/ChanSort.Loader.Sony/Serializer.cs +++ b/source/ChanSort.Loader.Sony/Serializer.cs @@ -146,7 +146,7 @@ namespace ChanSort.Loader.Sony if (root is XmlDeclaration) root = root.NextSibling; if (fail || root == null || root.LocalName != "SdbRoot") - throw new FileLoadException("\"" + this.FileName + "\" is not a supported Sony XML file"); + throw LoaderException.TryNext("\"" + this.FileName + "\" is not a supported Sony XML file"); foreach (XmlNode child in root.ChildNodes) { @@ -196,7 +196,7 @@ namespace ChanSort.Loader.Sony } if (SupportedFormatVersions.IndexOf(" " + this.format + " ", StringComparison.Ordinal) < 0) - throw new FileLoadException("Unsupported file format version: " + this.format); + throw LoaderException.TryNext("Unsupported file format version: " + this.format); foreach(XmlNode child in node.ChildNodes) { @@ -259,7 +259,7 @@ namespace ChanSort.Loader.Sony #region ReadTransponder() private void ReadTransponder(XmlNode node, int idAdjustment, string dvbSystem) { - var mux = node["Multiplex"] ?? throw new FileLoadException("Missing Multiplex XML element"); + var mux = node["Multiplex"] ?? throw LoaderException.Fail("Missing Multiplex XML element"); var transpList = new List(); @@ -331,7 +331,7 @@ namespace ChanSort.Loader.Sony #region ReadServicesE110() private void ReadServicesE110(XmlNode node, SignalSource signalSource, int idAdjustment) { - var serviceNode = node["Service"] ?? throw new FileLoadException("Missing Service XML element"); + var serviceNode = node["Service"] ?? throw LoaderException.Fail("Missing Service XML element"); var svcData = SplitLines(serviceNode); var dvbData = SplitLines(serviceNode["dvb_info"]); @@ -415,10 +415,10 @@ namespace ChanSort.Loader.Sony #region ReadServices() private void ReadServices(XmlNode node, SignalSource signalSource, int idAdjustment) { - var serviceNode = node["Service"] ?? throw new FileLoadException("Missing Service XML element"); + var serviceNode = node["Service"] ?? throw LoaderException.Fail("Missing Service XML element"); var svcData = SplitLines(serviceNode); - var progNode = node["Programme"] ?? throw new FileLoadException("Missing Programme XML element"); + var progNode = node["Programme"] ?? throw LoaderException.Fail("Missing Programme XML element"); var progData = SplitLines(progNode); // remember the nodes that need to be updated when saving diff --git a/source/ChanSort.Loader.Toshiba/SettingsDbSerializer.cs b/source/ChanSort.Loader.Toshiba/SettingsDbSerializer.cs index 5ae3115..227cf0c 100644 --- a/source/ChanSort.Loader.Toshiba/SettingsDbSerializer.cs +++ b/source/ChanSort.Loader.Toshiba/SettingsDbSerializer.cs @@ -83,7 +83,7 @@ namespace ChanSort.Loader.Toshiba } if (!this.tableNames.Contains("easisertable")) - throw new FileLoadException("File doesn't contain the expected tables"); + throw LoaderException.TryNext("File doesn't contain the expected tables"); this.ReadSatellites(cmd); this.ReadTransponders(cmd); diff --git a/source/ChanSort.Loader.Toshiba/ToshibaPlugin.cs b/source/ChanSort.Loader.Toshiba/ToshibaPlugin.cs index 838e183..5a403b2 100644 --- a/source/ChanSort.Loader.Toshiba/ToshibaPlugin.cs +++ b/source/ChanSort.Loader.Toshiba/ToshibaPlugin.cs @@ -20,6 +20,10 @@ namespace ChanSort.Loader.Toshiba if (name == "settingsdb.db") return new SettingsDbSerializer(inputFile); + if (name == "settingsdb_enc.db") + throw LoaderException.Fail("settingsDB_enc.db files can't be edited due to the encryption that was introduced via Firmware-Update.\n" + + "This affects TV models based on the Vestel hard-/firmware from various brands like Panasonic, Toshiba, Nokia, Nabo, ..."); + // selecting a chmgt.db, dvbMainData.db or dvbSysData.db directly -> use hotelopt_type001.bin instead if (ext == ".db") { @@ -39,7 +43,7 @@ namespace ChanSort.Loader.Toshiba return null; // "Acropolis" format with chmgt_type001\*.txt is not supported - throw new FileLoadException(string.Format(SerializerBase.ERR_UnsupportedFormat, "Euro*.txt")); + throw LoaderException.Fail(string.Format(SerializerBase.ERR_UnsupportedFormat, "Euro*.txt")); } // chmgt.db folder structure in a .zip file (for backward-compatibility with older ChanSort versions) @@ -56,13 +60,13 @@ namespace ChanSort.Loader.Toshiba // Hotel\tcl_clone_user.bin if (name.StartsWith("tcl_clone_") && name.EndsWith(".bin")) - throw new FileLoadException(string.Format(SerializerBase.ERR_UnsupportedFormat, "tcl_clone_user.bin")); + throw LoaderException.Fail(string.Format(SerializerBase.ERR_UnsupportedFormat, "tcl_clone_user.bin")); // HOTEL_*.bin if (name.StartsWith("hotel_") && name.EndsWith(".bin")) - throw new FileLoadException(string.Format(SerializerBase.ERR_UnsupportedFormat, "HOTEL_*.bin")); + throw LoaderException.Fail(string.Format(SerializerBase.ERR_UnsupportedFormat, "HOTEL_*.bin")); - throw new FileLoadException(SerializerBase.ERR_UnknownFormat); + throw LoaderException.TryNext(SerializerBase.ERR_UnknownFormat); } } } diff --git a/source/ChanSort/AboutForm.resx b/source/ChanSort/AboutForm.resx index 6176e0c..bd95451 100644 --- a/source/ChanSort/AboutForm.resx +++ b/source/ChanSort/AboutForm.resx @@ -117,7 +117,7 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + Vertical @@ -139,7 +139,7 @@ lblWebsite - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -168,7 +168,7 @@ lnkDownload - DevExpress.XtraEditors.HyperLinkEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.HyperLinkEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -192,7 +192,7 @@ gcPlugins - DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a horst@beham.biz @@ -211,7 +211,7 @@ lnkEmail - DevExpress.XtraEditors.HyperLinkEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.HyperLinkEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -238,7 +238,7 @@ lblAuthor - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -265,7 +265,7 @@ lblLicense - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -293,7 +293,7 @@ lnkLicense - DevExpress.XtraEditors.HyperLinkEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.HyperLinkEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -320,7 +320,7 @@ lblCredits - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -344,7 +344,7 @@ txtCredits - DevExpress.XtraEditors.MemoEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.MemoEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -371,7 +371,7 @@ btnClose - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -396,7 +396,7 @@ txtAuthor - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -423,30 +423,30 @@ gvPlugins - DevExpress.XtraGrid.Views.Grid.GridView, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Views.Grid.GridView, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colPlugin - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colDisplayText - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colFileTypes - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a AboutForm - DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a \ No newline at end of file diff --git a/source/ChanSort/ActionBox.resx b/source/ChanSort/ActionBox.resx index 8d2f6d9..0d0ff37 100644 --- a/source/ChanSort/ActionBox.resx +++ b/source/ChanSort/ActionBox.resx @@ -125,7 +125,7 @@ Tahoma, 9pt - + Vertical @@ -146,7 +146,7 @@ lblMessage - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -160,7 +160,7 @@ 32, 32 - + AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLlV0aWxzLnYyMS4xLCBWZXJzaW9uPTIxLjEu @@ -455,12 +455,12 @@ imageCollection1 - DevExpress.Utils.ImageCollection, DevExpress.Utils.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.Utils.ImageCollection, DevExpress.Utils.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a ActionBoxDialog - DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a \ No newline at end of file diff --git a/source/ChanSort/ActionImages.resx b/source/ChanSort/ActionImages.resx index 1a10458..3054dd8 100644 --- a/source/ChanSort/ActionImages.resx +++ b/source/ChanSort/ActionImages.resx @@ -120,7 +120,7 @@ 349, 503 - + AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLlV0aWxzLnYxNS4yLCBWZXJzaW9uPTE1LjIu diff --git a/source/ChanSort/ChanSort.csproj b/source/ChanSort/ChanSort.csproj index 6090d4e..7a00385 100644 --- a/source/ChanSort/ChanSort.csproj +++ b/source/ChanSort/ChanSort.csproj @@ -69,50 +69,50 @@ app.manifest - + False - + False - - + + False - + False - + False - - + + False - + False - - + + False - + False - + False - + False - - - - - - - - + + + + + + + + diff --git a/source/ChanSort/CharsetForm.resx b/source/ChanSort/CharsetForm.resx index 8670300..61a1bf2 100644 --- a/source/ChanSort/CharsetForm.resx +++ b/source/ChanSort/CharsetForm.resx @@ -138,13 +138,13 @@ btnCancel - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a 433, 446 - DevExpress.XtraGrid.Views.Grid.GridView, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Views.Grid.GridView, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a CharsetForm @@ -178,11 +178,11 @@ 0 - + Center - + None @@ -196,7 +196,7 @@ Top, Right - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a Fill @@ -211,10 +211,10 @@ $this - DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colName @@ -256,7 +256,7 @@ gcCharset - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a Default character set for my country @@ -271,7 +271,7 @@ 353, 6 - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a 75, 23 @@ -331,7 +331,7 @@ btnOk - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a 433, 483 @@ -340,17 +340,17 @@ 142 - DevExpress.XtraEditors.PanelControl, DevExpress.Utils.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.PanelControl, DevExpress.Utils.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a True - + Default - DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a True diff --git a/source/ChanSort/GlobalImageCollection.cs b/source/ChanSort/GlobalImageCollection.cs index f311afb..a81a0da 100644 --- a/source/ChanSort/GlobalImageCollection.cs +++ b/source/ChanSort/GlobalImageCollection.cs @@ -100,6 +100,7 @@ namespace ChanSort.Ui this.rawImageCollection.Images.SetKeyName(47, "0047.png"); this.rawImageCollection.Images.SetKeyName(48, "0048.png"); this.rawImageCollection.Images.SetKeyName(49, "0049.png"); + this.rawImageCollection.Images.SetKeyName(50, "0050.png"); ((System.ComponentModel.ISupportInitialize)(this.rawImageCollection)).EndInit(); } diff --git a/source/ChanSort/GlobalImageCollection.resx b/source/ChanSort/GlobalImageCollection.resx index db774c1..f7b1a0b 100644 --- a/source/ChanSort/GlobalImageCollection.resx +++ b/source/ChanSort/GlobalImageCollection.resx @@ -120,17 +120,17 @@ 17, 17 - + - AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLlV0aWxzLnYyMS4xLCBWZXJzaW9uPTIxLjEu - NS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEMAwAAAFFT + AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLlV0aWxzLnYyMi4xLCBWZXJzaW9uPTIyLjEu + Ni4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEMAwAAAFFT eXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRv a2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAAChEZXZFeHByZXNzLlV0aWxzLkltYWdlQ29sbGVjdGlvblN0 cmVhbWVyAgAAAAlJbWFnZVNpemUERGF0YQQHE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAAgIAAAAF/P// /xNTeXN0ZW0uRHJhd2luZy5TaXplAgAAAAV3aWR0aAZoZWlnaHQAAAgIAwAAABAAAAAQAAAACQUAAAAP - BQAAAPKIAAAClgIAAIlQTkcNChoKAAAADUlIRFIAAAAQAAAAEAgGAAAAH/P/YQAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAACxEAAAsRAX9kX5EAAAI4SURBVDhP1ZJPSJRRFMXfskUbqbBw0SooJg1jKhVkMDMU + BQAAAIqKAAAClgIAAIlQTkcNChoKAAAADUlIRFIAAAAQAAAAEAgGAAAAH/P/YQAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAACxAAAAsQAa0jvXUAAAI4SURBVDhP1ZJPSJRRFMXfskUbqbBw0SooJg1jKhVkMDMU TKjGTBl0TDNEtDIXkTU55lT4D3Xsj6KGZhhmaUZqYOZgSlakqGOUSkgEE2kFjdjo982vzzdugqBldODx znnvnsu99z3x71FV00ePc478G0OkX1pZA6Ra+3k3M8/9NCttZovkMVldRGf0EG7qIMn6hLqDJ8mvH0Q0 330JD1vxemFq1k1TxxS32qelproUym2SVzWOU1Y/yvCLj3iLz+NVPVR0jiKOFTnoHf4Kd1rA8VRzweXr @@ -141,7 +141,7 @@ e4PwO4GwPxrX7lUWr5xlsH+K0wUOcgoGZFuqMZrlQ5Ham6skZHQRn3yP7oH3qMpPvpgPkJXbjDjX0E/1 vjQiM5vw217H2q121mypYGTShS0ghCJ/Pa8mtGn7n0FsOKWVnc36YAtlvW+J2pXD6of+fyHELyMtGAnY LCN/AAAAAElFTkSuQmCCrAIAAIlQTkcNChoKAAAADUlIRFIAAAAQAAAAEAgGAAAAH/P/YQAAAARnQU1B - AACxjwv8YQUAAAAJcEhZcwAACxEAAAsRAX9kX5EAAAJOSURBVDhP1c5tS1NhAIfxfRF7EetFpRxStNKZ + AACxjwv8YQUAAAAJcEhZcwAACxAAAAsQAa0jvXUAAAJOSURBVDhP1c5tS1NhAIfxfRF7EetFpRxStNKZ qZtjbhI6CVTCB0omPqyYSg7ZYBomomSKkjLN2bQtTdNaItUHCCKCIsoMETN16dxTcz5wdc99gF5GB/7n HG74XefI/v2l0+Wi06SjU19Al68gLy+dy9lpZGWdE5P+Oplanc7i4rPjLSzM4PFMMz/vYnZ2kunpcdzu USYmhnE4Bhmx32doqIeBgU56e9vjAY1GcYxtbW1YLBbMZjNNTU0YjUZqDDVUVVVRVlZGcXExBQUFqFQq @@ -152,7 +152,7 @@ um4gslZJeLWU0IqewLIW/5IK35dMtj+fx/tRYvPDaTben2T9XQK+lXqG22OBMYn9bTtR75BYP3ubvUR+ dhH+0UF4zUZo1UpwxUzgezP+ZRO734z4lmrxfa3BLv5e9rRHwtMl8fyOxPxdiSmrhFvM1S3xRJy5bBLj 4vlQnI20ineLxFizmMB9JhH43y+Z7A95ZMCdwloGFQAAAABJRU5ErkJggowCAACJUE5HDQoaCgAAAA1J - SERSAAAAEAAAABAIBgAAAB/z/2EAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAAsRAAALEQF/ZF+RAAAC + SERSAAAAEAAAABAIBgAAAB/z/2EAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAAsQAAALEAGtI711AAAC LklEQVQ4T9WS3UuTURzHz71UwrzRCzV8gVLctDaZbixlKmPmlClOmmiBxgTRSqbmVdRVF4FQQoUISRCV ZkTQy0XUTRYRQSJUSEnkW/iyl8fHqePTeZ45EPoH6sDn3H2+X87vd8Q/cFoE4uQ+3BKPIC4S7EhiElWi SCKSkGRdsioRmjA0NaQzODlI/0Q/fZN9xHvPEe/uZjcQYLejg532drb9fmLNzWx5vah1dfzWA2Tr0NRF @@ -163,7 +163,7 @@ hJXA33I4NZVISQnf9QCzoHO8E+c1J46rDsqulFExfBy1qIiI+QhKTg7RzMyEbDAQOnSQUEoKYaNxL6BA cHrsDK2jrfogG0eaqL9Rj+p2o1ZXsylXqNjtRK1WGWgmLJs1OSxXOacHHJPXYUm6xCBJkRwQ+ifR9qxN WhuW9t55idaqiUn2/vP/e4T4AwKnjHYei+iaAAAAAElFTkSuQmCCmAIAAIlQTkcNChoKAAAADUlIRFIA - AAAQAAAAEAgGAAAAH/P/YQAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAACxMAAAsTAQCanBgAAAI6SURB + AAAQAAAAEAgGAAAAH/P/YQAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAI6SURB VDhPpZJrSNNRGIf3oQ99skiLQjCyRCwYBoZUH0KSLhpCUVoYXYSyG4VRiPPSpks3Nze1VjqsbbqmTq2V YlgxKJQRoaWOElOzoKiUpYZKXvb0b8KYJlZ04PlwXs7v4T3vOSLgv5i3OJcF13yBuSy4as3aBAHm0lit KPhbAd0dRsaHajz8cFmYHDBgNRVgM8uz/yioKdcw5qqcFZ7+XMKkM4XK20oqSnMxXM9GX5jFTbWEa4pU @@ -174,8 +174,8 @@ UL9Qj0CXL6HTnsVdcz70ZMFLod0XB5ho3sPokyiG6iMZsIr5aFyHU+2PNHkt4esDG7yvUJyXSo1JifPB GVq1Ii8O9SLsisU0ZC+hOmM5htRAblxcTWLMGndkeFCMV6CVX0YrPUle2jHSzyf8mizH46PZt2sz27eI 2SQOISw4kKBVAaxY5sdKfz8h5/MPfDf/DqKfuxCKOTLBBxEAAAAASUVORK5CYIKgAgAAiVBORw0KGgoA - AAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAN1gAADdYBkG95 - nAAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTAw9HKhAAACHElEQVQ4T5WS7WtScRTH96c0 + AAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAN1QAADdUBPdZY + 8QAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTAw9HKhAAACHElEQVQ4T5WS7WtScRTH96c0 etW/EVS0Nnph5lw2h65g0NPY2GiEs5jN3EKLvSgqKKLHmdrD1ihmToVL86lrgaAhRrVEX7jrvbvTXfXb vcfy9mIJXvjC+X3POZ97OL9f194+x8qenllYrdaOpPTIvb4uOWhcfRxHIBDoSHPPWAXSUACYX2TR6XfT +4WmIMDc809kSjUJv/IbbSWKW1R7w/MPwP7kD0CS8HPjR1sJWwLVOl98VgG2Rwky6/U6NrlSW1WrVaqd @@ -186,7 +186,7 @@ AJ11WZ7gLSXz+TzGJicoNp8aph0Eg0G43W74/X7ye2SAybHaBHT3XnPt0ziFY9PNCcrlMmo1+boEXl5e AalUCgzDIBwOtyY4MfMOWstSEyA/KgVyRzloB/5/hX+l6R+gRkXdR+y23xS47hoGAHdAAAAAAElFTkSu QmCCkgIAAIlQTkcNChoKAAAADUlIRFIAAAAQAAAAEAgGAAAAH/P/YQAAAARnQU1BAACxjwv8YQUAAAAJ - cEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAg5J + cEhZcwAADsIAAA7CARUoSoAAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAg5J REFUOE9jIBa4Fx9MYGRmZYJySQNaIcv4Xauu/3TO35MIFcIPHFM3CQXXnst1L7+43Ln84jbnykt77Stu /Xetvv7WJGKWDFQZdhBQcSLQvezKW8v8a/9Ncq/9N8q9/t8w/8Z/o8Kb/01Kbv+3LTm3AagMu1f8So/7 WuVe/qOXev6fZtyxB1qJx6/qZlz8ZFh4679J2d3/5lX3/9vWP/jvUHwoGqoFAcxj1wpYZJx+rh2xZa6S @@ -197,7 +197,7 @@ DHBsfvTfufPZf6/Jb/4Hzf/0P3rNj//JG75+8u8Aa8YdmCreU3iNC6/etap7+N+q8uJh56ZrW7y6bqz0 aT9bpupRIwtUgt1mZKCbvM/FourOH3nnBnUgl7AGbEA3YRso1+FMMAjAwAAA8UXZZO59Q5UAAAAASUVO RK5CYIKeAgAAiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAA - AAlwSFlzAAALEwAACxMBAJqcGAAAAkBJREFUOE+lke9PEnEcx/kL+ht60BO2HhCbSo1RzUaoZTOLilwb + AAlwSFlzAAALEgAACxIB0t1+/AAAAkBJREFUOE+lke9PEnEcx/kL+ht60BO2HhCbSo1RzUaoZTOLilwb M+2SsB/LphsYIq4fDC/S5AryB7SWtWrypKStH25lj3LVoTwqqiVkHL/OaLPy3ffOIG5IT7rtdbvbfd6v fb7vkwH4L2TBqQgE7j1hRcYfvkIg+BJOb7CmeHAH5cXOI8yyzkgvqupOyCWCpR8/JfgnplFZe1hAUSxR 6Ki1VXXm7vXqPeT1H4Khm48Qes6uKqk6aF6j2LyXPP4R3H/MlggG/A/yYZH8sMB2g5WrrN4PuWpXThSM @@ -295,7 +295,7 @@ 3WkuS4fDd+3YXI/ObI4pQ8ipmQcxou8p0PY4dpq9mS+te6LQNM3M5ucTOMpl3VJbWf3bDZ01BKAH8kj5 IQ7sufMWj2Zeth3Lun8A+Glao9oDUeMAMdzbD06bzY9uX6kBvitOmzf8Tef2f62u+wlSbAABOMbXPAAA AABJRU5ErkJggtQCAACJUE5HDQoaCgAAAA1JSERSAAAAEAAAABAIBgAAAB/z/2EAAAAEZ0FNQQAAsY8L - /GEFAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAGnRFWHRTb2Z0d2FyZQBQYWludC5ORVQgdjMuNS4xMDD0 + /GEFAAAACXBIWXMAAA7CAAAOwgEVKEqAAAAAGnRFWHRTb2Z0d2FyZQBQYWludC5ORVQgdjMuNS4xMDD0 cqEAAAJQSURBVDhPYwCBb2dPSn3cvM7o9coVbGABAuBefDzLs6RY45M2VsoMbzauSHjRXPLtZVPR/9d9 jfeO5ae5QdVhgLux0XxvOhsb7xSkP1pkbjjbnYtDkeFgcVb309q8v2+ntv9/N6nl/4eWkv+34gP7HSSl WKH6wOBpZnz4m6rsF4ejg68nCQlZA4UYITJA0OnhanO2MP3Eu7by/2+K4v+/DLD8f89G/UCLtibvndgo @@ -306,414 +306,421 @@ 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 - z+VS/hgMz1sT9Nk+vJeFAAAAAElFTkSuQmCCCw== + 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 + NfdhAAAAAElFTkSuQmCCCw== diff --git a/source/ChanSort/MainForm.Designer.cs b/source/ChanSort/MainForm.Designer.cs index 03d585c..d41041b 100644 --- a/source/ChanSort/MainForm.Designer.cs +++ b/source/ChanSort/MainForm.Designer.cs @@ -116,14 +116,14 @@ this.miReload = new DevExpress.XtraBars.BarButtonItem(); this.miRestoreOriginal = new DevExpress.XtraBars.BarButtonItem(); this.miDeleteBackup = new DevExpress.XtraBars.BarButtonItem(); - this.miFileInformation = new DevExpress.XtraBars.BarButtonItem(); this.miSave = new DevExpress.XtraBars.BarButtonItem(); - this.miSaveAs = new DevExpress.XtraBars.BarButtonItem(); + this.miSaveReferenceFile = new DevExpress.XtraBars.BarButtonItem(); + this.miConvert = new DevExpress.XtraBars.BarButtonItem(); + this.miExcelExport = new DevExpress.XtraBars.BarButtonItem(); this.miOpenReferenceFile = new DevExpress.XtraBars.BarButtonItem(); this.miAddFromRefList = new DevExpress.XtraBars.BarButtonItem(); - this.miSaveReferenceFile = new DevExpress.XtraBars.BarButtonItem(); - this.miExcelExport = new DevExpress.XtraBars.BarButtonItem(); this.miPrint = new DevExpress.XtraBars.BarButtonItem(); + this.miFileInformation = new DevExpress.XtraBars.BarButtonItem(); this.miQuit = new DevExpress.XtraBars.BarButtonItem(); this.miRecentFiles = new DevExpress.XtraBars.BarListItem(); this.miEdit = new DevExpress.XtraBars.BarSubItem(); @@ -131,6 +131,8 @@ this.miMoveDown = new DevExpress.XtraBars.BarButtonItem(); this.miAddChannel = new DevExpress.XtraBars.BarButtonItem(); this.miRemove = new DevExpress.XtraBars.BarButtonItem(); + this.miMarkForSwapping = new DevExpress.XtraBars.BarButtonItem(); + this.miSwapWithMarked = new DevExpress.XtraBars.BarButtonItem(); this.miRenameChannel = new DevExpress.XtraBars.BarButtonItem(); this.mnuFavSet = new DevExpress.XtraBars.BarSubItem(); this.mnuFavUnset = new DevExpress.XtraBars.BarSubItem(); @@ -270,28 +272,40 @@ // // splitContainerControl1.Panel1 // - this.splitContainerControl1.Panel1.Controls.Add(this.grpOutputList); resources.ApplyResources(this.splitContainerControl1.Panel1, "splitContainerControl1.Panel1"); + this.splitContainerControl1.Panel1.Controls.Add(this.grpOutputList); // // splitContainerControl1.Panel2 // - this.splitContainerControl1.Panel2.Controls.Add(this.grpInputList); resources.ApplyResources(this.splitContainerControl1.Panel2, "splitContainerControl1.Panel2"); + this.splitContainerControl1.Panel2.Controls.Add(this.grpInputList); this.splitContainerControl1.SplitterPosition = 503; // // grpOutputList // + resources.ApplyResources(this.grpOutputList, "grpOutputList"); this.grpOutputList.Controls.Add(this.gridLeft); this.grpOutputList.Controls.Add(this.pnlEditControls); - resources.ApplyResources(this.grpOutputList, "grpOutputList"); this.grpOutputList.Name = "grpOutputList"; this.grpOutputList.Enter += new System.EventHandler(this.grpOutputList_Enter); // // gridLeft // + resources.ApplyResources(this.gridLeft, "gridLeft"); this.gridLeft.AllowDrop = true; this.gridLeft.DataSource = this.dsChannels; - resources.ApplyResources(this.gridLeft, "gridLeft"); + this.gridLeft.EmbeddedNavigator.AccessibleDescription = resources.GetString("gridLeft.EmbeddedNavigator.AccessibleDescription"); + this.gridLeft.EmbeddedNavigator.AccessibleName = resources.GetString("gridLeft.EmbeddedNavigator.AccessibleName"); + this.gridLeft.EmbeddedNavigator.AllowHtmlTextInToolTip = ((DevExpress.Utils.DefaultBoolean)(resources.GetObject("gridLeft.EmbeddedNavigator.AllowHtmlTextInToolTip"))); + this.gridLeft.EmbeddedNavigator.Anchor = ((System.Windows.Forms.AnchorStyles)(resources.GetObject("gridLeft.EmbeddedNavigator.Anchor"))); + this.gridLeft.EmbeddedNavigator.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("gridLeft.EmbeddedNavigator.BackgroundImage"))); + this.gridLeft.EmbeddedNavigator.BackgroundImageLayout = ((System.Windows.Forms.ImageLayout)(resources.GetObject("gridLeft.EmbeddedNavigator.BackgroundImageLayout"))); + this.gridLeft.EmbeddedNavigator.ImeMode = ((System.Windows.Forms.ImeMode)(resources.GetObject("gridLeft.EmbeddedNavigator.ImeMode"))); + this.gridLeft.EmbeddedNavigator.MaximumSize = ((System.Drawing.Size)(resources.GetObject("gridLeft.EmbeddedNavigator.MaximumSize"))); + this.gridLeft.EmbeddedNavigator.TextLocation = ((DevExpress.XtraEditors.NavigatorButtonsTextLocation)(resources.GetObject("gridLeft.EmbeddedNavigator.TextLocation"))); + this.gridLeft.EmbeddedNavigator.ToolTip = resources.GetString("gridLeft.EmbeddedNavigator.ToolTip"); + this.gridLeft.EmbeddedNavigator.ToolTipIconType = ((DevExpress.Utils.ToolTipIconType)(resources.GetObject("gridLeft.EmbeddedNavigator.ToolTipIconType"))); + this.gridLeft.EmbeddedNavigator.ToolTipTitle = resources.GetString("gridLeft.EmbeddedNavigator.ToolTipTitle"); this.gridLeft.MainView = this.gviewLeft; this.gridLeft.Name = "gridLeft"; this.gridLeft.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] { @@ -309,6 +323,7 @@ // // gviewLeft // + resources.ApplyResources(this.gviewLeft, "gviewLeft"); this.gviewLeft.Appearance.FocusedRow.FontStyleDelta = ((System.Drawing.FontStyle)(resources.GetObject("gviewLeft.Appearance.FocusedRow.FontStyleDelta"))); this.gviewLeft.Appearance.FocusedRow.Options.UseFont = true; this.gviewLeft.Appearance.HeaderPanel.Options.UseTextOptions = true; @@ -465,6 +480,7 @@ // // pnlEditControls // + resources.ApplyResources(this.pnlEditControls, "pnlEditControls"); this.pnlEditControls.Controls.Add(this.btnSearchLeft); this.pnlEditControls.Controls.Add(this.btnToggleFavH); this.pnlEditControls.Controls.Add(this.btnToggleFavG); @@ -480,7 +496,6 @@ this.pnlEditControls.Controls.Add(this.btnDown); this.pnlEditControls.Controls.Add(this.btnUp); this.pnlEditControls.Controls.Add(this.btnRemoveLeft); - resources.ApplyResources(this.pnlEditControls, "pnlEditControls"); this.pnlEditControls.Name = "pnlEditControls"; // // btnSearchLeft @@ -518,10 +533,10 @@ // // btnToggleLock // + resources.ApplyResources(this.btnToggleLock, "btnToggleLock"); this.btnToggleLock.ImageOptions.ImageIndex = ((int)(resources.GetObject("btnToggleLock.ImageOptions.ImageIndex"))); this.btnToggleLock.ImageOptions.ImageList = this.globalImageCollection1; this.btnToggleLock.ImageOptions.Location = DevExpress.XtraEditors.ImageLocation.MiddleCenter; - resources.ApplyResources(this.btnToggleLock, "btnToggleLock"); this.btnToggleLock.Name = "btnToggleLock"; this.btnToggleLock.Click += new System.EventHandler(this.btnToggleLock_Click); // @@ -573,53 +588,65 @@ // // btnRenum // + resources.ApplyResources(this.btnRenum, "btnRenum"); this.btnRenum.ImageOptions.ImageIndex = ((int)(resources.GetObject("btnRenum.ImageOptions.ImageIndex"))); this.btnRenum.ImageOptions.ImageList = this.globalImageCollection1; this.btnRenum.ImageOptions.Location = DevExpress.XtraEditors.ImageLocation.MiddleCenter; - resources.ApplyResources(this.btnRenum, "btnRenum"); this.btnRenum.Name = "btnRenum"; this.btnRenum.Click += new System.EventHandler(this.btnRenum_Click); // // btnDown // + resources.ApplyResources(this.btnDown, "btnDown"); this.btnDown.ImageOptions.ImageIndex = ((int)(resources.GetObject("btnDown.ImageOptions.ImageIndex"))); this.btnDown.ImageOptions.ImageList = this.globalImageCollection1; this.btnDown.ImageOptions.Location = DevExpress.XtraEditors.ImageLocation.MiddleCenter; - resources.ApplyResources(this.btnDown, "btnDown"); this.btnDown.Name = "btnDown"; this.btnDown.Click += new System.EventHandler(this.btnDown_Click); // // btnUp // + resources.ApplyResources(this.btnUp, "btnUp"); this.btnUp.ImageOptions.ImageIndex = ((int)(resources.GetObject("btnUp.ImageOptions.ImageIndex"))); this.btnUp.ImageOptions.ImageList = this.globalImageCollection1; this.btnUp.ImageOptions.Location = DevExpress.XtraEditors.ImageLocation.MiddleCenter; - resources.ApplyResources(this.btnUp, "btnUp"); this.btnUp.Name = "btnUp"; this.btnUp.Click += new System.EventHandler(this.btnUp_Click); // // btnRemoveLeft // + resources.ApplyResources(this.btnRemoveLeft, "btnRemoveLeft"); this.btnRemoveLeft.ImageOptions.ImageIndex = ((int)(resources.GetObject("btnRemoveLeft.ImageOptions.ImageIndex"))); this.btnRemoveLeft.ImageOptions.ImageList = this.globalImageCollection1; this.btnRemoveLeft.ImageOptions.Location = DevExpress.XtraEditors.ImageLocation.MiddleCenter; - resources.ApplyResources(this.btnRemoveLeft, "btnRemoveLeft"); this.btnRemoveLeft.Name = "btnRemoveLeft"; this.btnRemoveLeft.Click += new System.EventHandler(this.btnRemoveLeft_Click); // // grpInputList // + resources.ApplyResources(this.grpInputList, "grpInputList"); this.grpInputList.Controls.Add(this.gridRight); this.grpInputList.Controls.Add(this.pnlEditControlRight); - resources.ApplyResources(this.grpInputList, "grpInputList"); this.grpInputList.Name = "grpInputList"; this.grpInputList.Enter += new System.EventHandler(this.grpInputList_Enter); // // gridRight // + resources.ApplyResources(this.gridRight, "gridRight"); this.gridRight.AllowDrop = true; this.gridRight.DataSource = this.dsChannels; - resources.ApplyResources(this.gridRight, "gridRight"); + this.gridRight.EmbeddedNavigator.AccessibleDescription = resources.GetString("gridRight.EmbeddedNavigator.AccessibleDescription"); + this.gridRight.EmbeddedNavigator.AccessibleName = resources.GetString("gridRight.EmbeddedNavigator.AccessibleName"); + this.gridRight.EmbeddedNavigator.AllowHtmlTextInToolTip = ((DevExpress.Utils.DefaultBoolean)(resources.GetObject("gridRight.EmbeddedNavigator.AllowHtmlTextInToolTip"))); + this.gridRight.EmbeddedNavigator.Anchor = ((System.Windows.Forms.AnchorStyles)(resources.GetObject("gridRight.EmbeddedNavigator.Anchor"))); + this.gridRight.EmbeddedNavigator.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("gridRight.EmbeddedNavigator.BackgroundImage"))); + this.gridRight.EmbeddedNavigator.BackgroundImageLayout = ((System.Windows.Forms.ImageLayout)(resources.GetObject("gridRight.EmbeddedNavigator.BackgroundImageLayout"))); + this.gridRight.EmbeddedNavigator.ImeMode = ((System.Windows.Forms.ImeMode)(resources.GetObject("gridRight.EmbeddedNavigator.ImeMode"))); + this.gridRight.EmbeddedNavigator.MaximumSize = ((System.Drawing.Size)(resources.GetObject("gridRight.EmbeddedNavigator.MaximumSize"))); + this.gridRight.EmbeddedNavigator.TextLocation = ((DevExpress.XtraEditors.NavigatorButtonsTextLocation)(resources.GetObject("gridRight.EmbeddedNavigator.TextLocation"))); + this.gridRight.EmbeddedNavigator.ToolTip = resources.GetString("gridRight.EmbeddedNavigator.ToolTip"); + this.gridRight.EmbeddedNavigator.ToolTipIconType = ((DevExpress.Utils.ToolTipIconType)(resources.GetObject("gridRight.EmbeddedNavigator.ToolTipIconType"))); + this.gridRight.EmbeddedNavigator.ToolTipTitle = resources.GetString("gridRight.EmbeddedNavigator.ToolTipTitle"); this.gridRight.MainView = this.gviewRight; this.gridRight.Name = "gridRight"; this.gridRight.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] { @@ -634,6 +661,7 @@ // // gviewRight // + resources.ApplyResources(this.gviewRight, "gviewRight"); this.gviewRight.Appearance.FocusedRow.FontStyleDelta = ((System.Drawing.FontStyle)(resources.GetObject("gviewRight.Appearance.FocusedRow.FontStyleDelta"))); this.gviewRight.Appearance.FocusedRow.Options.UseFont = true; this.gviewRight.Appearance.HeaderPanel.Options.UseTextOptions = true; @@ -961,13 +989,13 @@ // // pnlEditControlRight // + resources.ApplyResources(this.pnlEditControlRight, "pnlEditControlRight"); this.pnlEditControlRight.Controls.Add(this.btnSearch); this.pnlEditControlRight.Controls.Add(this.lblPredefinedList); this.pnlEditControlRight.Controls.Add(this.btnRemoveRight); this.pnlEditControlRight.Controls.Add(this.btnAddAll); this.pnlEditControlRight.Controls.Add(this.btnClearRightFilter); this.pnlEditControlRight.Controls.Add(this.btnAdd); - resources.ApplyResources(this.pnlEditControlRight, "pnlEditControlRight"); this.pnlEditControlRight.Name = "pnlEditControlRight"; // // btnSearch @@ -983,19 +1011,19 @@ // // lblPredefinedList // + resources.ApplyResources(this.lblPredefinedList, "lblPredefinedList"); this.lblPredefinedList.Appearance.Font = ((System.Drawing.Font)(resources.GetObject("lblPredefinedList.Appearance.Font"))); this.lblPredefinedList.Appearance.ForeColor = System.Drawing.Color.Maroon; this.lblPredefinedList.Appearance.Options.UseFont = true; this.lblPredefinedList.Appearance.Options.UseForeColor = true; - resources.ApplyResources(this.lblPredefinedList, "lblPredefinedList"); this.lblPredefinedList.Name = "lblPredefinedList"; // // btnRemoveRight // + resources.ApplyResources(this.btnRemoveRight, "btnRemoveRight"); this.btnRemoveRight.ImageOptions.ImageIndex = ((int)(resources.GetObject("btnRemoveRight.ImageOptions.ImageIndex"))); this.btnRemoveRight.ImageOptions.ImageList = this.globalImageCollection1; this.btnRemoveRight.ImageOptions.Location = DevExpress.XtraEditors.ImageLocation.MiddleCenter; - resources.ApplyResources(this.btnRemoveRight, "btnRemoveRight"); this.btnRemoveRight.Name = "btnRemoveRight"; this.btnRemoveRight.Click += new System.EventHandler(this.btnRemoveRight_Click); // @@ -1017,10 +1045,10 @@ // // btnAdd // + resources.ApplyResources(this.btnAdd, "btnAdd"); this.btnAdd.ImageOptions.ImageIndex = ((int)(resources.GetObject("btnAdd.ImageOptions.ImageIndex"))); this.btnAdd.ImageOptions.ImageList = this.globalImageCollection1; this.btnAdd.ImageOptions.Location = DevExpress.XtraEditors.ImageLocation.MiddleCenter; - resources.ApplyResources(this.btnAdd, "btnAdd"); this.btnAdd.Name = "btnAdd"; this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click); // @@ -1052,7 +1080,6 @@ this.miRestoreOriginal, this.miFileInformation, this.miSave, - this.miSaveAs, this.miQuit, this.mnuHelp, this.miAbout, @@ -1126,14 +1153,18 @@ this.miTheme, this.miAutoHideColumns, this.miLoadListAfterStart, - this.miDeleteBackup}); + this.miDeleteBackup, + this.miMarkForSwapping, + this.miSwapWithMarked, + this.miConvert}); this.barManager1.MainMenu = this.bar1; - this.barManager1.MaxItemId = 118; + this.barManager1.MaxItemId = 121; this.barManager1.ShowFullMenus = true; this.barManager1.ShortcutItemClick += new DevExpress.XtraBars.ShortcutItemClickEventHandler(this.barManager1_ShortcutItemClick); // // bar1 // + resources.ApplyResources(this.bar1, "bar1"); this.bar1.BarName = "Tools"; this.bar1.CanDockStyle = DevExpress.XtraBars.BarCanDockStyle.Top; this.bar1.DockCol = 0; @@ -1144,8 +1175,11 @@ new DevExpress.XtraBars.LinkPersistInfo(this.miOpen), new DevExpress.XtraBars.LinkPersistInfo(this.miReload), new DevExpress.XtraBars.LinkPersistInfo(this.miSave), + new DevExpress.XtraBars.LinkPersistInfo(this.miSaveReferenceFile), new DevExpress.XtraBars.LinkPersistInfo(this.miPrint), new DevExpress.XtraBars.LinkPersistInfo(this.miEdit, true), + new DevExpress.XtraBars.LinkPersistInfo(this.miMarkForSwapping), + new DevExpress.XtraBars.LinkPersistInfo(this.miSwapWithMarked), new DevExpress.XtraBars.LinkPersistInfo(this.mnuFavSet), new DevExpress.XtraBars.LinkPersistInfo(this.miLockOn), new DevExpress.XtraBars.LinkPersistInfo(this.miSkipOn), @@ -1165,21 +1199,23 @@ this.bar1.OptionsBar.DrawDragBorder = false; this.bar1.OptionsBar.MultiLine = true; this.bar1.OptionsBar.UseWholeRow = true; - resources.ApplyResources(this.bar1, "bar1"); // // miFile // resources.ApplyResources(this.miFile, "miFile"); this.miFile.CategoryGuid = new System.Guid("e6c9a329-010b-4d79-8d4d-215e5f197ed3"); this.miFile.Id = 4; + this.miFile.ImageOptions.ImageIndex = ((int)(resources.GetObject("miFile.ImageOptions.ImageIndex"))); + this.miFile.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miFile.ImageOptions.LargeImageIndex"))); + this.miFile.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miFile.ImageOptions.SvgImage"))); this.miFile.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(this.miOpen), new DevExpress.XtraBars.LinkPersistInfo(this.miReload), new DevExpress.XtraBars.LinkPersistInfo(this.miRestoreOriginal), new DevExpress.XtraBars.LinkPersistInfo(this.miDeleteBackup), new DevExpress.XtraBars.LinkPersistInfo(this.miSave, true), - new DevExpress.XtraBars.LinkPersistInfo(this.miSaveAs), new DevExpress.XtraBars.LinkPersistInfo(this.miSaveReferenceFile), + new DevExpress.XtraBars.LinkPersistInfo(this.miConvert), new DevExpress.XtraBars.LinkPersistInfo(this.miExcelExport), new DevExpress.XtraBars.LinkPersistInfo(this.miOpenReferenceFile, true), new DevExpress.XtraBars.LinkPersistInfo(this.miAddFromRefList), @@ -1195,6 +1231,8 @@ this.miOpen.CategoryGuid = new System.Guid("e6c9a329-010b-4d79-8d4d-215e5f197ed3"); this.miOpen.Id = 5; this.miOpen.ImageOptions.ImageIndex = ((int)(resources.GetObject("miOpen.ImageOptions.ImageIndex"))); + this.miOpen.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miOpen.ImageOptions.LargeImageIndex"))); + this.miOpen.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miOpen.ImageOptions.SvgImage"))); this.miOpen.ItemShortcut = new DevExpress.XtraBars.BarShortcut((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O)); this.miOpen.Name = "miOpen"; this.miOpen.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miOpen_ItemClick); @@ -1206,6 +1244,8 @@ this.miReload.Enabled = false; this.miReload.Id = 7; this.miReload.ImageOptions.ImageIndex = ((int)(resources.GetObject("miReload.ImageOptions.ImageIndex"))); + this.miReload.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miReload.ImageOptions.LargeImageIndex"))); + this.miReload.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miReload.ImageOptions.SvgImage"))); this.miReload.ItemShortcut = new DevExpress.XtraBars.BarShortcut((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.R)); this.miReload.Name = "miReload"; this.miReload.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miReload_ItemClick); @@ -1216,6 +1256,8 @@ this.miRestoreOriginal.CategoryGuid = new System.Guid("e6c9a329-010b-4d79-8d4d-215e5f197ed3"); this.miRestoreOriginal.Id = 42; this.miRestoreOriginal.ImageOptions.ImageIndex = ((int)(resources.GetObject("miRestoreOriginal.ImageOptions.ImageIndex"))); + this.miRestoreOriginal.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miRestoreOriginal.ImageOptions.LargeImageIndex"))); + this.miRestoreOriginal.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miRestoreOriginal.ImageOptions.SvgImage"))); this.miRestoreOriginal.ItemShortcut = new DevExpress.XtraBars.BarShortcut(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) | System.Windows.Forms.Keys.R)); this.miRestoreOriginal.Name = "miRestoreOriginal"; @@ -1225,19 +1267,12 @@ // resources.ApplyResources(this.miDeleteBackup, "miDeleteBackup"); this.miDeleteBackup.Id = 117; + this.miDeleteBackup.ImageOptions.ImageIndex = ((int)(resources.GetObject("miDeleteBackup.ImageOptions.ImageIndex"))); + this.miDeleteBackup.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miDeleteBackup.ImageOptions.LargeImageIndex"))); + this.miDeleteBackup.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miDeleteBackup.ImageOptions.SvgImage"))); this.miDeleteBackup.Name = "miDeleteBackup"; this.miDeleteBackup.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miDeleteBackup_ItemClick); // - // miFileInformation - // - resources.ApplyResources(this.miFileInformation, "miFileInformation"); - this.miFileInformation.CategoryGuid = new System.Guid("e6c9a329-010b-4d79-8d4d-215e5f197ed3"); - this.miFileInformation.Id = 43; - this.miFileInformation.ImageOptions.ImageIndex = ((int)(resources.GetObject("miFileInformation.ImageOptions.ImageIndex"))); - this.miFileInformation.ItemShortcut = new DevExpress.XtraBars.BarShortcut((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.I)); - this.miFileInformation.Name = "miFileInformation"; - this.miFileInformation.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miFileInformation_ItemClick); - // // miSave // resources.ApplyResources(this.miSave, "miSave"); @@ -1245,21 +1280,45 @@ this.miSave.Enabled = false; this.miSave.Id = 6; this.miSave.ImageOptions.ImageIndex = ((int)(resources.GetObject("miSave.ImageOptions.ImageIndex"))); + this.miSave.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miSave.ImageOptions.LargeImageIndex"))); + this.miSave.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miSave.ImageOptions.SvgImage"))); this.miSave.ItemShortcut = new DevExpress.XtraBars.BarShortcut((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S)); this.miSave.Name = "miSave"; this.miSave.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miSave_ItemClick); // - // miSaveAs + // miSaveReferenceFile // - resources.ApplyResources(this.miSaveAs, "miSaveAs"); - this.miSaveAs.CategoryGuid = new System.Guid("e6c9a329-010b-4d79-8d4d-215e5f197ed3"); - this.miSaveAs.Enabled = false; - this.miSaveAs.Id = 8; - this.miSaveAs.ImageOptions.ImageIndex = ((int)(resources.GetObject("miSaveAs.ImageOptions.ImageIndex"))); - this.miSaveAs.ItemShortcut = new DevExpress.XtraBars.BarShortcut(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) + resources.ApplyResources(this.miSaveReferenceFile, "miSaveReferenceFile"); + this.miSaveReferenceFile.Id = 57; + this.miSaveReferenceFile.ImageOptions.ImageIndex = ((int)(resources.GetObject("miSaveReferenceFile.ImageOptions.ImageIndex"))); + this.miSaveReferenceFile.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miSaveReferenceFile.ImageOptions.LargeImageIndex"))); + this.miSaveReferenceFile.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miSaveReferenceFile.ImageOptions.SvgImage"))); + this.miSaveReferenceFile.ItemShortcut = new DevExpress.XtraBars.BarShortcut(((System.Windows.Forms.Keys.Shift | System.Windows.Forms.Keys.Alt) | System.Windows.Forms.Keys.S)); - this.miSaveAs.Name = "miSaveAs"; - this.miSaveAs.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miSaveAs_ItemClick); + this.miSaveReferenceFile.Name = "miSaveReferenceFile"; + this.miSaveReferenceFile.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miSaveReferenceFile_ItemClick); + // + // miConvert + // + resources.ApplyResources(this.miConvert, "miConvert"); + this.miConvert.Id = 120; + this.miConvert.ImageOptions.ImageIndex = ((int)(resources.GetObject("miConvert.ImageOptions.ImageIndex"))); + this.miConvert.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miConvert.ImageOptions.LargeImageIndex"))); + this.miConvert.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miConvert.ImageOptions.SvgImage"))); + this.miConvert.Name = "miConvert"; + this.miConvert.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miConvert_ItemClick); + // + // miExcelExport + // + resources.ApplyResources(this.miExcelExport, "miExcelExport"); + this.miExcelExport.Id = 59; + this.miExcelExport.ImageOptions.ImageIndex = ((int)(resources.GetObject("miExcelExport.ImageOptions.ImageIndex"))); + this.miExcelExport.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miExcelExport.ImageOptions.LargeImageIndex"))); + this.miExcelExport.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miExcelExport.ImageOptions.SvgImage"))); + this.miExcelExport.ItemShortcut = new DevExpress.XtraBars.BarShortcut(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) + | System.Windows.Forms.Keys.C)); + this.miExcelExport.Name = "miExcelExport"; + this.miExcelExport.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miExcelExport_ItemClick); // // miOpenReferenceFile // @@ -1267,6 +1326,8 @@ this.miOpenReferenceFile.CategoryGuid = new System.Guid("e6c9a329-010b-4d79-8d4d-215e5f197ed3"); this.miOpenReferenceFile.Id = 44; this.miOpenReferenceFile.ImageOptions.ImageIndex = ((int)(resources.GetObject("miOpenReferenceFile.ImageOptions.ImageIndex"))); + this.miOpenReferenceFile.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miOpenReferenceFile.ImageOptions.LargeImageIndex"))); + this.miOpenReferenceFile.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miOpenReferenceFile.ImageOptions.SvgImage"))); this.miOpenReferenceFile.ItemShortcut = new DevExpress.XtraBars.BarShortcut(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) | System.Windows.Forms.Keys.O)); this.miOpenReferenceFile.Name = "miOpenReferenceFile"; @@ -1276,41 +1337,43 @@ // resources.ApplyResources(this.miAddFromRefList, "miAddFromRefList"); this.miAddFromRefList.Id = 61; + this.miAddFromRefList.ImageOptions.ImageIndex = ((int)(resources.GetObject("miAddFromRefList.ImageOptions.ImageIndex"))); + this.miAddFromRefList.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miAddFromRefList.ImageOptions.LargeImageIndex"))); + this.miAddFromRefList.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miAddFromRefList.ImageOptions.SvgImage"))); this.miAddFromRefList.Name = "miAddFromRefList"; this.miAddFromRefList.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miAddFromRefList_ItemClick); // - // miSaveReferenceFile - // - resources.ApplyResources(this.miSaveReferenceFile, "miSaveReferenceFile"); - this.miSaveReferenceFile.Id = 57; - this.miSaveReferenceFile.ImageOptions.ImageIndex = ((int)(resources.GetObject("miSaveReferenceFile.ImageOptions.ImageIndex"))); - this.miSaveReferenceFile.Name = "miSaveReferenceFile"; - this.miSaveReferenceFile.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miSaveReferenceFile_ItemClick); - // - // miExcelExport - // - resources.ApplyResources(this.miExcelExport, "miExcelExport"); - this.miExcelExport.Id = 59; - this.miExcelExport.ImageOptions.ImageIndex = ((int)(resources.GetObject("miExcelExport.ImageOptions.ImageIndex"))); - this.miExcelExport.ItemShortcut = new DevExpress.XtraBars.BarShortcut(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) - | System.Windows.Forms.Keys.C)); - this.miExcelExport.Name = "miExcelExport"; - this.miExcelExport.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miExcelExport_ItemClick); - // // miPrint // resources.ApplyResources(this.miPrint, "miPrint"); this.miPrint.Id = 62; this.miPrint.ImageOptions.ImageIndex = ((int)(resources.GetObject("miPrint.ImageOptions.ImageIndex"))); + this.miPrint.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miPrint.ImageOptions.LargeImageIndex"))); + this.miPrint.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miPrint.ImageOptions.SvgImage"))); this.miPrint.ItemShortcut = new DevExpress.XtraBars.BarShortcut((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.P)); this.miPrint.Name = "miPrint"; this.miPrint.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miPrint_ItemClick); // + // miFileInformation + // + resources.ApplyResources(this.miFileInformation, "miFileInformation"); + this.miFileInformation.CategoryGuid = new System.Guid("e6c9a329-010b-4d79-8d4d-215e5f197ed3"); + this.miFileInformation.Id = 43; + this.miFileInformation.ImageOptions.ImageIndex = ((int)(resources.GetObject("miFileInformation.ImageOptions.ImageIndex"))); + this.miFileInformation.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miFileInformation.ImageOptions.LargeImageIndex"))); + this.miFileInformation.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miFileInformation.ImageOptions.SvgImage"))); + this.miFileInformation.ItemShortcut = new DevExpress.XtraBars.BarShortcut((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.I)); + this.miFileInformation.Name = "miFileInformation"; + this.miFileInformation.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miFileInformation_ItemClick); + // // miQuit // resources.ApplyResources(this.miQuit, "miQuit"); this.miQuit.CategoryGuid = new System.Guid("e6c9a329-010b-4d79-8d4d-215e5f197ed3"); this.miQuit.Id = 9; + this.miQuit.ImageOptions.ImageIndex = ((int)(resources.GetObject("miQuit.ImageOptions.ImageIndex"))); + this.miQuit.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miQuit.ImageOptions.LargeImageIndex"))); + this.miQuit.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miQuit.ImageOptions.SvgImage"))); this.miQuit.ItemShortcut = new DevExpress.XtraBars.BarShortcut((System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.F4)); this.miQuit.Name = "miQuit"; this.miQuit.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miQuit_ItemClick); @@ -1319,6 +1382,9 @@ // resources.ApplyResources(this.miRecentFiles, "miRecentFiles"); this.miRecentFiles.Id = 58; + this.miRecentFiles.ImageOptions.ImageIndex = ((int)(resources.GetObject("miRecentFiles.ImageOptions.ImageIndex"))); + this.miRecentFiles.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miRecentFiles.ImageOptions.LargeImageIndex"))); + this.miRecentFiles.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miRecentFiles.ImageOptions.SvgImage"))); this.miRecentFiles.Name = "miRecentFiles"; this.miRecentFiles.ListItemClick += new DevExpress.XtraBars.ListItemClickEventHandler(this.miRecentFiles_ListItemClick); // @@ -1327,15 +1393,20 @@ resources.ApplyResources(this.miEdit, "miEdit"); this.miEdit.CategoryGuid = new System.Guid("d7eec464-59c9-4f45-88aa-602e64c81cc0"); this.miEdit.Id = 22; + this.miEdit.ImageOptions.ImageIndex = ((int)(resources.GetObject("miEdit.ImageOptions.ImageIndex"))); + this.miEdit.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miEdit.ImageOptions.LargeImageIndex"))); + this.miEdit.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miEdit.ImageOptions.SvgImage"))); this.miEdit.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(this.miMoveUp), new DevExpress.XtraBars.LinkPersistInfo(this.miMoveDown), new DevExpress.XtraBars.LinkPersistInfo(this.miAddChannel), new DevExpress.XtraBars.LinkPersistInfo(this.miRemove), + new DevExpress.XtraBars.LinkPersistInfo(this.miMarkForSwapping), + new DevExpress.XtraBars.LinkPersistInfo(this.miSwapWithMarked), new DevExpress.XtraBars.LinkPersistInfo(this.miRenameChannel), - new DevExpress.XtraBars.LinkPersistInfo(DevExpress.XtraBars.BarLinkUserDefines.PaintStyle, this.mnuFavSet, DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph), + new DevExpress.XtraBars.LinkPersistInfo(DevExpress.XtraBars.BarLinkUserDefines.PaintStyle, this.mnuFavSet, "", true, true, true, 0, null, DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph), new DevExpress.XtraBars.LinkPersistInfo(this.mnuFavUnset), - new DevExpress.XtraBars.LinkPersistInfo(this.miLockOn), + new DevExpress.XtraBars.LinkPersistInfo(this.miLockOn, true), new DevExpress.XtraBars.LinkPersistInfo(this.miLockOff), new DevExpress.XtraBars.LinkPersistInfo(this.miSkipOn), new DevExpress.XtraBars.LinkPersistInfo(this.miSkipOff), @@ -1353,6 +1424,8 @@ this.miMoveUp.CategoryGuid = new System.Guid("d7eec464-59c9-4f45-88aa-602e64c81cc0"); this.miMoveUp.Id = 45; this.miMoveUp.ImageOptions.ImageIndex = ((int)(resources.GetObject("miMoveUp.ImageOptions.ImageIndex"))); + this.miMoveUp.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miMoveUp.ImageOptions.LargeImageIndex"))); + this.miMoveUp.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miMoveUp.ImageOptions.SvgImage"))); this.miMoveUp.ItemShortcut = new DevExpress.XtraBars.BarShortcut((System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.Up)); this.miMoveUp.Name = "miMoveUp"; this.miMoveUp.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miMoveUp_ItemClick); @@ -1363,6 +1436,8 @@ this.miMoveDown.CategoryGuid = new System.Guid("d7eec464-59c9-4f45-88aa-602e64c81cc0"); this.miMoveDown.Id = 46; this.miMoveDown.ImageOptions.ImageIndex = ((int)(resources.GetObject("miMoveDown.ImageOptions.ImageIndex"))); + this.miMoveDown.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miMoveDown.ImageOptions.LargeImageIndex"))); + this.miMoveDown.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miMoveDown.ImageOptions.SvgImage"))); this.miMoveDown.ItemShortcut = new DevExpress.XtraBars.BarShortcut((System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.Down)); this.miMoveDown.Name = "miMoveDown"; this.miMoveDown.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miMoveDown_ItemClick); @@ -1373,6 +1448,8 @@ this.miAddChannel.CategoryGuid = new System.Guid("d7eec464-59c9-4f45-88aa-602e64c81cc0"); this.miAddChannel.Id = 39; this.miAddChannel.ImageOptions.ImageIndex = ((int)(resources.GetObject("miAddChannel.ImageOptions.ImageIndex"))); + this.miAddChannel.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miAddChannel.ImageOptions.LargeImageIndex"))); + this.miAddChannel.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miAddChannel.ImageOptions.SvgImage"))); this.miAddChannel.ItemShortcut = new DevExpress.XtraBars.BarShortcut((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Add)); this.miAddChannel.Name = "miAddChannel"; this.miAddChannel.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miAddChannel_ItemClick); @@ -1383,16 +1460,44 @@ this.miRemove.CategoryGuid = new System.Guid("d7eec464-59c9-4f45-88aa-602e64c81cc0"); this.miRemove.Id = 25; this.miRemove.ImageOptions.ImageIndex = ((int)(resources.GetObject("miRemove.ImageOptions.ImageIndex"))); + this.miRemove.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miRemove.ImageOptions.LargeImageIndex"))); + this.miRemove.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miRemove.ImageOptions.SvgImage"))); this.miRemove.ItemShortcut = new DevExpress.XtraBars.BarShortcut(System.Windows.Forms.Keys.Delete); this.miRemove.Name = "miRemove"; this.miRemove.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miRemove_ItemClick); // + // miMarkForSwapping + // + resources.ApplyResources(this.miMarkForSwapping, "miMarkForSwapping"); + this.miMarkForSwapping.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; + this.miMarkForSwapping.Id = 118; + this.miMarkForSwapping.ImageOptions.ImageIndex = ((int)(resources.GetObject("miMarkForSwapping.ImageOptions.ImageIndex"))); + this.miMarkForSwapping.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miMarkForSwapping.ImageOptions.LargeImageIndex"))); + this.miMarkForSwapping.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miMarkForSwapping.ImageOptions.SvgImage"))); + this.miMarkForSwapping.ItemShortcut = new DevExpress.XtraBars.BarShortcut((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.M)); + this.miMarkForSwapping.Name = "miMarkForSwapping"; + this.miMarkForSwapping.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miMarkForSwapping_ItemClick); + // + // miSwapWithMarked + // + resources.ApplyResources(this.miSwapWithMarked, "miSwapWithMarked"); + this.miSwapWithMarked.Id = 119; + this.miSwapWithMarked.ImageOptions.ImageIndex = ((int)(resources.GetObject("miSwapWithMarked.ImageOptions.ImageIndex"))); + this.miSwapWithMarked.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miSwapWithMarked.ImageOptions.LargeImageIndex"))); + this.miSwapWithMarked.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miSwapWithMarked.ImageOptions.SvgImage"))); + this.miSwapWithMarked.ItemShortcut = new DevExpress.XtraBars.BarShortcut(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) + | System.Windows.Forms.Keys.M)); + this.miSwapWithMarked.Name = "miSwapWithMarked"; + this.miSwapWithMarked.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miSwapWithMarked_ItemClick); + // // miRenameChannel // resources.ApplyResources(this.miRenameChannel, "miRenameChannel"); this.miRenameChannel.CategoryGuid = new System.Guid("d7eec464-59c9-4f45-88aa-602e64c81cc0"); this.miRenameChannel.Id = 52; this.miRenameChannel.ImageOptions.ImageIndex = ((int)(resources.GetObject("miRenameChannel.ImageOptions.ImageIndex"))); + this.miRenameChannel.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miRenameChannel.ImageOptions.LargeImageIndex"))); + this.miRenameChannel.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miRenameChannel.ImageOptions.SvgImage"))); this.miRenameChannel.ItemShortcut = new DevExpress.XtraBars.BarShortcut((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N)); this.miRenameChannel.Name = "miRenameChannel"; this.miRenameChannel.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miRenameChannel_ItemClick); @@ -1403,6 +1508,8 @@ this.mnuFavSet.CategoryGuid = new System.Guid("d7eec464-59c9-4f45-88aa-602e64c81cc0"); this.mnuFavSet.Id = 37; this.mnuFavSet.ImageOptions.ImageIndex = ((int)(resources.GetObject("mnuFavSet.ImageOptions.ImageIndex"))); + this.mnuFavSet.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("mnuFavSet.ImageOptions.LargeImageIndex"))); + this.mnuFavSet.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("mnuFavSet.ImageOptions.SvgImage"))); this.mnuFavSet.Name = "mnuFavSet"; this.mnuFavSet.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionInMenu; // @@ -1411,6 +1518,9 @@ resources.ApplyResources(this.mnuFavUnset, "mnuFavUnset"); this.mnuFavUnset.CategoryGuid = new System.Guid("d7eec464-59c9-4f45-88aa-602e64c81cc0"); this.mnuFavUnset.Id = 38; + this.mnuFavUnset.ImageOptions.ImageIndex = ((int)(resources.GetObject("mnuFavUnset.ImageOptions.ImageIndex"))); + this.mnuFavUnset.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("mnuFavUnset.ImageOptions.LargeImageIndex"))); + this.mnuFavUnset.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("mnuFavUnset.ImageOptions.SvgImage"))); this.mnuFavUnset.Name = "mnuFavUnset"; // // miLockOn @@ -1419,6 +1529,8 @@ this.miLockOn.CategoryGuid = new System.Guid("d7eec464-59c9-4f45-88aa-602e64c81cc0"); this.miLockOn.Id = 27; this.miLockOn.ImageOptions.ImageIndex = ((int)(resources.GetObject("miLockOn.ImageOptions.ImageIndex"))); + this.miLockOn.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miLockOn.ImageOptions.LargeImageIndex"))); + this.miLockOn.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miLockOn.ImageOptions.SvgImage"))); this.miLockOn.ItemShortcut = new DevExpress.XtraBars.BarShortcut((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.L)); this.miLockOn.Name = "miLockOn"; this.miLockOn.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miLockOn_ItemClick); @@ -1428,6 +1540,9 @@ resources.ApplyResources(this.miLockOff, "miLockOff"); this.miLockOff.CategoryGuid = new System.Guid("d7eec464-59c9-4f45-88aa-602e64c81cc0"); this.miLockOff.Id = 28; + this.miLockOff.ImageOptions.ImageIndex = ((int)(resources.GetObject("miLockOff.ImageOptions.ImageIndex"))); + this.miLockOff.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miLockOff.ImageOptions.LargeImageIndex"))); + this.miLockOff.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miLockOff.ImageOptions.SvgImage"))); this.miLockOff.ItemShortcut = new DevExpress.XtraBars.BarShortcut(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) | System.Windows.Forms.Keys.L)); this.miLockOff.Name = "miLockOff"; @@ -1439,6 +1554,8 @@ this.miSkipOn.CategoryGuid = new System.Guid("d7eec464-59c9-4f45-88aa-602e64c81cc0"); this.miSkipOn.Id = 29; this.miSkipOn.ImageOptions.ImageIndex = ((int)(resources.GetObject("miSkipOn.ImageOptions.ImageIndex"))); + this.miSkipOn.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miSkipOn.ImageOptions.LargeImageIndex"))); + this.miSkipOn.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miSkipOn.ImageOptions.SvgImage"))); this.miSkipOn.ItemShortcut = new DevExpress.XtraBars.BarShortcut((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.K)); this.miSkipOn.Name = "miSkipOn"; this.miSkipOn.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miSkipOn_ItemClick); @@ -1448,6 +1565,9 @@ resources.ApplyResources(this.miSkipOff, "miSkipOff"); this.miSkipOff.CategoryGuid = new System.Guid("d7eec464-59c9-4f45-88aa-602e64c81cc0"); this.miSkipOff.Id = 30; + this.miSkipOff.ImageOptions.ImageIndex = ((int)(resources.GetObject("miSkipOff.ImageOptions.ImageIndex"))); + this.miSkipOff.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miSkipOff.ImageOptions.LargeImageIndex"))); + this.miSkipOff.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miSkipOff.ImageOptions.SvgImage"))); this.miSkipOff.ItemShortcut = new DevExpress.XtraBars.BarShortcut(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) | System.Windows.Forms.Keys.K)); this.miSkipOff.Name = "miSkipOff"; @@ -1459,6 +1579,8 @@ this.miHideOn.CategoryGuid = new System.Guid("d7eec464-59c9-4f45-88aa-602e64c81cc0"); this.miHideOn.Id = 31; this.miHideOn.ImageOptions.ImageIndex = ((int)(resources.GetObject("miHideOn.ImageOptions.ImageIndex"))); + this.miHideOn.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miHideOn.ImageOptions.LargeImageIndex"))); + this.miHideOn.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miHideOn.ImageOptions.SvgImage"))); this.miHideOn.ItemShortcut = new DevExpress.XtraBars.BarShortcut((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.H)); this.miHideOn.Name = "miHideOn"; this.miHideOn.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miHideOn_ItemClick); @@ -1468,6 +1590,9 @@ resources.ApplyResources(this.miHideOff, "miHideOff"); this.miHideOff.CategoryGuid = new System.Guid("d7eec464-59c9-4f45-88aa-602e64c81cc0"); this.miHideOff.Id = 32; + this.miHideOff.ImageOptions.ImageIndex = ((int)(resources.GetObject("miHideOff.ImageOptions.ImageIndex"))); + this.miHideOff.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miHideOff.ImageOptions.LargeImageIndex"))); + this.miHideOff.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miHideOff.ImageOptions.SvgImage"))); this.miHideOff.ItemShortcut = new DevExpress.XtraBars.BarShortcut(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) | System.Windows.Forms.Keys.H)); this.miHideOff.Name = "miHideOff"; @@ -1479,6 +1604,8 @@ this.miRenum.CategoryGuid = new System.Guid("d7eec464-59c9-4f45-88aa-602e64c81cc0"); this.miRenum.Id = 41; this.miRenum.ImageOptions.ImageIndex = ((int)(resources.GetObject("miRenum.ImageOptions.ImageIndex"))); + this.miRenum.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miRenum.ImageOptions.LargeImageIndex"))); + this.miRenum.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miRenum.ImageOptions.SvgImage"))); this.miRenum.Name = "miRenum"; this.miRenum.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miRenum_ItemClick); // @@ -1488,6 +1615,8 @@ this.miSort.CategoryGuid = new System.Guid("d7eec464-59c9-4f45-88aa-602e64c81cc0"); this.miSort.Id = 40; this.miSort.ImageOptions.ImageIndex = ((int)(resources.GetObject("miSort.ImageOptions.ImageIndex"))); + this.miSort.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miSort.ImageOptions.LargeImageIndex"))); + this.miSort.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miSort.ImageOptions.SvgImage"))); this.miSort.Name = "miSort"; this.miSort.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miSort_ItemClick); // @@ -1495,6 +1624,9 @@ // resources.ApplyResources(this.miRenumFavByPrNr, "miRenumFavByPrNr"); this.miRenumFavByPrNr.Id = 63; + this.miRenumFavByPrNr.ImageOptions.ImageIndex = ((int)(resources.GetObject("miRenumFavByPrNr.ImageOptions.ImageIndex"))); + this.miRenumFavByPrNr.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miRenumFavByPrNr.ImageOptions.LargeImageIndex"))); + this.miRenumFavByPrNr.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miRenumFavByPrNr.ImageOptions.SvgImage"))); this.miRenumFavByPrNr.Name = "miRenumFavByPrNr"; this.miRenumFavByPrNr.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miRenumFavByPrNr_ItemClick); // @@ -1503,6 +1635,8 @@ resources.ApplyResources(this.miCopyCsv, "miCopyCsv"); this.miCopyCsv.Id = 100; this.miCopyCsv.ImageOptions.ImageIndex = ((int)(resources.GetObject("miCopyCsv.ImageOptions.ImageIndex"))); + this.miCopyCsv.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miCopyCsv.ImageOptions.LargeImageIndex"))); + this.miCopyCsv.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miCopyCsv.ImageOptions.SvgImage"))); this.miCopyCsv.ItemShortcut = new DevExpress.XtraBars.BarShortcut(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) | System.Windows.Forms.Keys.C)); this.miCopyCsv.Name = "miCopyCsv"; @@ -1512,6 +1646,9 @@ // resources.ApplyResources(this.barSubItem2, "barSubItem2"); this.barSubItem2.Id = 47; + this.barSubItem2.ImageOptions.ImageIndex = ((int)(resources.GetObject("barSubItem2.ImageOptions.ImageIndex"))); + this.barSubItem2.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("barSubItem2.ImageOptions.LargeImageIndex"))); + this.barSubItem2.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("barSubItem2.ImageOptions.SvgImage"))); this.barSubItem2.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(this.miTvSettings), new DevExpress.XtraBars.LinkPersistInfo(this.miCleanupChannels)}); @@ -1522,6 +1659,8 @@ resources.ApplyResources(this.miTvSettings, "miTvSettings"); this.miTvSettings.Id = 48; this.miTvSettings.ImageOptions.ImageIndex = ((int)(resources.GetObject("miTvSettings.ImageOptions.ImageIndex"))); + this.miTvSettings.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miTvSettings.ImageOptions.LargeImageIndex"))); + this.miTvSettings.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miTvSettings.ImageOptions.SvgImage"))); this.miTvSettings.Name = "miTvSettings"; this.miTvSettings.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miTvCountrySetup_ItemClick); // @@ -1529,6 +1668,9 @@ // resources.ApplyResources(this.miCleanupChannels, "miCleanupChannels"); this.miCleanupChannels.Id = 56; + this.miCleanupChannels.ImageOptions.ImageIndex = ((int)(resources.GetObject("miCleanupChannels.ImageOptions.ImageIndex"))); + this.miCleanupChannels.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miCleanupChannels.ImageOptions.LargeImageIndex"))); + this.miCleanupChannels.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miCleanupChannels.ImageOptions.SvgImage"))); this.miCleanupChannels.Name = "miCleanupChannels"; this.miCleanupChannels.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miCleanupChannels_ItemClick); // @@ -1537,6 +1679,9 @@ resources.ApplyResources(this.mnuOptions, "mnuOptions"); this.mnuOptions.CategoryGuid = new System.Guid("870e935c-f3d9-4202-9c58-87966069155d"); this.mnuOptions.Id = 34; + this.mnuOptions.ImageOptions.ImageIndex = ((int)(resources.GetObject("mnuOptions.ImageOptions.ImageIndex"))); + this.mnuOptions.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("mnuOptions.ImageOptions.LargeImageIndex"))); + this.mnuOptions.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("mnuOptions.ImageOptions.SvgImage"))); this.mnuOptions.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(DevExpress.XtraBars.BarLinkUserDefines.PaintStyle, this.mnuLanguage, DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph), new DevExpress.XtraBars.LinkPersistInfo(DevExpress.XtraBars.BarLinkUserDefines.PaintStyle, this.mnuCharset, DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph), @@ -1557,6 +1702,8 @@ this.mnuLanguage.CategoryGuid = new System.Guid("870e935c-f3d9-4202-9c58-87966069155d"); this.mnuLanguage.Id = 0; this.mnuLanguage.ImageOptions.ImageIndex = ((int)(resources.GetObject("mnuLanguage.ImageOptions.ImageIndex"))); + this.mnuLanguage.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("mnuLanguage.ImageOptions.LargeImageIndex"))); + this.mnuLanguage.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("mnuLanguage.ImageOptions.SvgImage"))); this.mnuLanguage.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(this.miEnglish), new DevExpress.XtraBars.LinkPersistInfo(this.miCzech), @@ -1573,102 +1720,122 @@ // // miEnglish // - this.miEnglish.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; resources.ApplyResources(this.miEnglish, "miEnglish"); + this.miEnglish.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; this.miEnglish.CategoryGuid = new System.Guid("870e935c-f3d9-4202-9c58-87966069155d"); this.miEnglish.Id = 2; this.miEnglish.ImageOptions.ImageIndex = ((int)(resources.GetObject("miEnglish.ImageOptions.ImageIndex"))); + this.miEnglish.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miEnglish.ImageOptions.LargeImageIndex"))); + this.miEnglish.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miEnglish.ImageOptions.SvgImage"))); this.miEnglish.Name = "miEnglish"; this.miEnglish.Tag = "en"; this.miEnglish.DownChanged += new DevExpress.XtraBars.ItemClickEventHandler(this.miLanguage_DownChanged); // // miCzech // - this.miCzech.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; resources.ApplyResources(this.miCzech, "miCzech"); + this.miCzech.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; this.miCzech.Id = 95; this.miCzech.ImageOptions.ImageIndex = ((int)(resources.GetObject("miCzech.ImageOptions.ImageIndex"))); + this.miCzech.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miCzech.ImageOptions.LargeImageIndex"))); + this.miCzech.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miCzech.ImageOptions.SvgImage"))); this.miCzech.Name = "miCzech"; this.miCzech.Tag = "cs-CZ"; this.miCzech.DownChanged += new DevExpress.XtraBars.ItemClickEventHandler(this.miLanguage_DownChanged); // // miGerman // - this.miGerman.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; resources.ApplyResources(this.miGerman, "miGerman"); + this.miGerman.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; this.miGerman.CategoryGuid = new System.Guid("870e935c-f3d9-4202-9c58-87966069155d"); this.miGerman.Id = 1; this.miGerman.ImageOptions.ImageIndex = ((int)(resources.GetObject("miGerman.ImageOptions.ImageIndex"))); + this.miGerman.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miGerman.ImageOptions.LargeImageIndex"))); + this.miGerman.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miGerman.ImageOptions.SvgImage"))); this.miGerman.Name = "miGerman"; this.miGerman.Tag = "de-DE"; this.miGerman.DownChanged += new DevExpress.XtraBars.ItemClickEventHandler(this.miLanguage_DownChanged); // // miSpanish // - this.miSpanish.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; resources.ApplyResources(this.miSpanish, "miSpanish"); + this.miSpanish.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; this.miSpanish.Id = 101; this.miSpanish.ImageOptions.ImageIndex = ((int)(resources.GetObject("miSpanish.ImageOptions.ImageIndex"))); + this.miSpanish.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miSpanish.ImageOptions.LargeImageIndex"))); + this.miSpanish.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miSpanish.ImageOptions.SvgImage"))); this.miSpanish.Name = "miSpanish"; this.miSpanish.Tag = "es-ES"; this.miSpanish.DownChanged += new DevExpress.XtraBars.ItemClickEventHandler(this.miLanguage_DownChanged); // // miHungarian // - this.miHungarian.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; resources.ApplyResources(this.miHungarian, "miHungarian"); + this.miHungarian.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; this.miHungarian.Id = 111; this.miHungarian.ImageOptions.ImageIndex = ((int)(resources.GetObject("miHungarian.ImageOptions.ImageIndex"))); + this.miHungarian.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miHungarian.ImageOptions.LargeImageIndex"))); + this.miHungarian.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miHungarian.ImageOptions.SvgImage"))); this.miHungarian.Name = "miHungarian"; this.miHungarian.Tag = "hu-HU"; this.miHungarian.DownChanged += new DevExpress.XtraBars.ItemClickEventHandler(this.miLanguage_DownChanged); // // miPolski // - this.miPolski.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; resources.ApplyResources(this.miPolski, "miPolski"); + this.miPolski.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; this.miPolski.Id = 102; this.miPolski.ImageOptions.ImageIndex = ((int)(resources.GetObject("miPolski.ImageOptions.ImageIndex"))); + this.miPolski.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miPolski.ImageOptions.LargeImageIndex"))); + this.miPolski.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miPolski.ImageOptions.SvgImage"))); this.miPolski.Name = "miPolski"; this.miPolski.Tag = "pl-PL"; this.miPolski.DownChanged += new DevExpress.XtraBars.ItemClickEventHandler(this.miLanguage_DownChanged); // // miPortuguese // - this.miPortuguese.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; resources.ApplyResources(this.miPortuguese, "miPortuguese"); + this.miPortuguese.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; this.miPortuguese.Id = 60; this.miPortuguese.ImageOptions.ImageIndex = ((int)(resources.GetObject("miPortuguese.ImageOptions.ImageIndex"))); + this.miPortuguese.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miPortuguese.ImageOptions.LargeImageIndex"))); + this.miPortuguese.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miPortuguese.ImageOptions.SvgImage"))); this.miPortuguese.Name = "miPortuguese"; this.miPortuguese.Tag = "pt-PT"; this.miPortuguese.DownChanged += new DevExpress.XtraBars.ItemClickEventHandler(this.miLanguage_DownChanged); // // miRomanian // - this.miRomanian.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; resources.ApplyResources(this.miRomanian, "miRomanian"); + this.miRomanian.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; this.miRomanian.Id = 96; this.miRomanian.ImageOptions.ImageIndex = ((int)(resources.GetObject("miRomanian.ImageOptions.ImageIndex"))); + this.miRomanian.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miRomanian.ImageOptions.LargeImageIndex"))); + this.miRomanian.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miRomanian.ImageOptions.SvgImage"))); this.miRomanian.Name = "miRomanian"; this.miRomanian.Tag = "ro-RO"; this.miRomanian.DownChanged += new DevExpress.XtraBars.ItemClickEventHandler(this.miLanguage_DownChanged); // // miRussian // - this.miRussian.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; resources.ApplyResources(this.miRussian, "miRussian"); + this.miRussian.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; this.miRussian.Id = 93; this.miRussian.ImageOptions.ImageIndex = ((int)(resources.GetObject("miRussian.ImageOptions.ImageIndex"))); + this.miRussian.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miRussian.ImageOptions.LargeImageIndex"))); + this.miRussian.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miRussian.ImageOptions.SvgImage"))); this.miRussian.Name = "miRussian"; this.miRussian.Tag = "ru-RU"; this.miRussian.DownChanged += new DevExpress.XtraBars.ItemClickEventHandler(this.miLanguage_DownChanged); // // miTurkish // - this.miTurkish.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; resources.ApplyResources(this.miTurkish, "miTurkish"); + this.miTurkish.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; this.miTurkish.Id = 103; this.miTurkish.ImageOptions.ImageIndex = ((int)(resources.GetObject("miTurkish.ImageOptions.ImageIndex"))); + this.miTurkish.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miTurkish.ImageOptions.LargeImageIndex"))); + this.miTurkish.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miTurkish.ImageOptions.SvgImage"))); this.miTurkish.Name = "miTurkish"; this.miTurkish.Tag = "tr-TR"; this.miTurkish.DownChanged += new DevExpress.XtraBars.ItemClickEventHandler(this.miLanguage_DownChanged); @@ -1679,6 +1846,8 @@ this.mnuCharset.CategoryGuid = new System.Guid("870e935c-f3d9-4202-9c58-87966069155d"); this.mnuCharset.Id = 15; this.mnuCharset.ImageOptions.ImageIndex = ((int)(resources.GetObject("mnuCharset.ImageOptions.ImageIndex"))); + this.mnuCharset.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("mnuCharset.ImageOptions.LargeImageIndex"))); + this.mnuCharset.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("mnuCharset.ImageOptions.SvgImage"))); this.mnuCharset.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(this.miCharsetForm), new DevExpress.XtraBars.LinkPersistInfo(this.miUtf8Charset, true), @@ -1694,6 +1863,8 @@ this.miCharsetForm.CategoryGuid = new System.Guid("870e935c-f3d9-4202-9c58-87966069155d"); this.miCharsetForm.Id = 13; this.miCharsetForm.ImageOptions.ImageIndex = ((int)(resources.GetObject("miCharsetForm.ImageOptions.ImageIndex"))); + this.miCharsetForm.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miCharsetForm.ImageOptions.LargeImageIndex"))); + this.miCharsetForm.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miCharsetForm.ImageOptions.SvgImage"))); this.miCharsetForm.Name = "miCharsetForm"; this.miCharsetForm.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miCharset_ItemClick); // @@ -1701,6 +1872,9 @@ // resources.ApplyResources(this.miUtf8Charset, "miUtf8Charset"); this.miUtf8Charset.Id = 99; + this.miUtf8Charset.ImageOptions.ImageIndex = ((int)(resources.GetObject("miUtf8Charset.ImageOptions.ImageIndex"))); + this.miUtf8Charset.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miUtf8Charset.ImageOptions.LargeImageIndex"))); + this.miUtf8Charset.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miUtf8Charset.ImageOptions.SvgImage"))); this.miUtf8Charset.Name = "miUtf8Charset"; this.miUtf8Charset.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miUtf8Charset_ItemClick); // @@ -1709,6 +1883,9 @@ resources.ApplyResources(this.miIsoCharSets, "miIsoCharSets"); this.miIsoCharSets.CategoryGuid = new System.Guid("870e935c-f3d9-4202-9c58-87966069155d"); this.miIsoCharSets.Id = 14; + this.miIsoCharSets.ImageOptions.ImageIndex = ((int)(resources.GetObject("miIsoCharSets.ImageOptions.ImageIndex"))); + this.miIsoCharSets.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miIsoCharSets.ImageOptions.LargeImageIndex"))); + this.miIsoCharSets.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miIsoCharSets.ImageOptions.SvgImage"))); this.miIsoCharSets.Name = "miIsoCharSets"; this.miIsoCharSets.ShowNumbers = true; this.miIsoCharSets.ListItemClick += new DevExpress.XtraBars.ListItemClickEventHandler(this.miIsoCharSets_ListItemClick); @@ -1717,6 +1894,9 @@ // resources.ApplyResources(this.miUtf16BigEndian, "miUtf16BigEndian"); this.miUtf16BigEndian.Id = 109; + this.miUtf16BigEndian.ImageOptions.ImageIndex = ((int)(resources.GetObject("miUtf16BigEndian.ImageOptions.ImageIndex"))); + this.miUtf16BigEndian.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miUtf16BigEndian.ImageOptions.LargeImageIndex"))); + this.miUtf16BigEndian.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miUtf16BigEndian.ImageOptions.SvgImage"))); this.miUtf16BigEndian.Name = "miUtf16BigEndian"; this.miUtf16BigEndian.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miUtf16BigEndian_ItemClick); // @@ -1724,6 +1904,9 @@ // resources.ApplyResources(this.miUtf16LittleEndian, "miUtf16LittleEndian"); this.miUtf16LittleEndian.Id = 110; + this.miUtf16LittleEndian.ImageOptions.ImageIndex = ((int)(resources.GetObject("miUtf16LittleEndian.ImageOptions.ImageIndex"))); + this.miUtf16LittleEndian.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miUtf16LittleEndian.ImageOptions.LargeImageIndex"))); + this.miUtf16LittleEndian.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miUtf16LittleEndian.ImageOptions.SvgImage"))); this.miUtf16LittleEndian.Name = "miUtf16LittleEndian"; this.miUtf16LittleEndian.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miUtf16LittleEndian_ItemClick); // @@ -1732,63 +1915,85 @@ resources.ApplyResources(this.miTheme, "miTheme"); this.miTheme.Id = 114; this.miTheme.ImageOptions.ImageIndex = ((int)(resources.GetObject("miTheme.ImageOptions.ImageIndex"))); + this.miTheme.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miTheme.ImageOptions.LargeImageIndex"))); + this.miTheme.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miTheme.ImageOptions.SvgImage"))); this.miTheme.Name = "miTheme"; this.miTheme.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miTheme_ItemClick); // // miSplitView // - this.miSplitView.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; resources.ApplyResources(this.miSplitView, "miSplitView"); + this.miSplitView.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; this.miSplitView.Down = true; this.miSplitView.Id = 113; this.miSplitView.ImageOptions.ImageIndex = ((int)(resources.GetObject("miSplitView.ImageOptions.ImageIndex"))); + this.miSplitView.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miSplitView.ImageOptions.LargeImageIndex"))); + this.miSplitView.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miSplitView.ImageOptions.SvgImage"))); this.miSplitView.Name = "miSplitView"; this.miSplitView.DownChanged += new DevExpress.XtraBars.ItemClickEventHandler(this.miSplitView_DownChanged); // // miAutoHideColumns // - this.miAutoHideColumns.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; resources.ApplyResources(this.miAutoHideColumns, "miAutoHideColumns"); + this.miAutoHideColumns.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; this.miAutoHideColumns.Down = true; this.miAutoHideColumns.Id = 115; + this.miAutoHideColumns.ImageOptions.ImageIndex = ((int)(resources.GetObject("miAutoHideColumns.ImageOptions.ImageIndex"))); + this.miAutoHideColumns.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miAutoHideColumns.ImageOptions.LargeImageIndex"))); + this.miAutoHideColumns.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miAutoHideColumns.ImageOptions.SvgImage"))); this.miAutoHideColumns.Name = "miAutoHideColumns"; this.miAutoHideColumns.DownChanged += new DevExpress.XtraBars.ItemClickEventHandler(this.miAutoHideColumns_DownChanged); // // miLoadListAfterStart // - this.miLoadListAfterStart.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; resources.ApplyResources(this.miLoadListAfterStart, "miLoadListAfterStart"); + this.miLoadListAfterStart.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; this.miLoadListAfterStart.Down = true; this.miLoadListAfterStart.Id = 116; + this.miLoadListAfterStart.ImageOptions.ImageIndex = ((int)(resources.GetObject("miLoadListAfterStart.ImageOptions.ImageIndex"))); + this.miLoadListAfterStart.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miLoadListAfterStart.ImageOptions.LargeImageIndex"))); + this.miLoadListAfterStart.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miLoadListAfterStart.ImageOptions.SvgImage"))); this.miLoadListAfterStart.Name = "miLoadListAfterStart"; // // miShowWarningsAfterLoad // resources.ApplyResources(this.miShowWarningsAfterLoad, "miShowWarningsAfterLoad"); this.miShowWarningsAfterLoad.Id = 54; + this.miShowWarningsAfterLoad.ImageOptions.ImageIndex = ((int)(resources.GetObject("miShowWarningsAfterLoad.ImageOptions.ImageIndex"))); + this.miShowWarningsAfterLoad.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miShowWarningsAfterLoad.ImageOptions.LargeImageIndex"))); + this.miShowWarningsAfterLoad.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miShowWarningsAfterLoad.ImageOptions.SvgImage"))); this.miShowWarningsAfterLoad.Name = "miShowWarningsAfterLoad"; // // miAllowEditPredefinedLists // - this.miAllowEditPredefinedLists.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; resources.ApplyResources(this.miAllowEditPredefinedLists, "miAllowEditPredefinedLists"); + this.miAllowEditPredefinedLists.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; this.miAllowEditPredefinedLists.Id = 94; + this.miAllowEditPredefinedLists.ImageOptions.ImageIndex = ((int)(resources.GetObject("miAllowEditPredefinedLists.ImageOptions.ImageIndex"))); + this.miAllowEditPredefinedLists.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miAllowEditPredefinedLists.ImageOptions.LargeImageIndex"))); + this.miAllowEditPredefinedLists.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miAllowEditPredefinedLists.ImageOptions.SvgImage"))); this.miAllowEditPredefinedLists.Name = "miAllowEditPredefinedLists"; this.miAllowEditPredefinedLists.DownChanged += new DevExpress.XtraBars.ItemClickEventHandler(this.miAllowEditPredefinedLists_DownChanged); // // miExplorerIntegration // - this.miExplorerIntegration.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; resources.ApplyResources(this.miExplorerIntegration, "miExplorerIntegration"); + this.miExplorerIntegration.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; this.miExplorerIntegration.Id = 97; + this.miExplorerIntegration.ImageOptions.ImageIndex = ((int)(resources.GetObject("miExplorerIntegration.ImageOptions.ImageIndex"))); + this.miExplorerIntegration.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miExplorerIntegration.ImageOptions.LargeImageIndex"))); + this.miExplorerIntegration.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miExplorerIntegration.ImageOptions.SvgImage"))); this.miExplorerIntegration.Name = "miExplorerIntegration"; this.miExplorerIntegration.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miExplorerIntegration_ItemClick); // // miCheckUpdates // - this.miCheckUpdates.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; resources.ApplyResources(this.miCheckUpdates, "miCheckUpdates"); + this.miCheckUpdates.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; this.miCheckUpdates.Id = 98; + this.miCheckUpdates.ImageOptions.ImageIndex = ((int)(resources.GetObject("miCheckUpdates.ImageOptions.ImageIndex"))); + this.miCheckUpdates.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miCheckUpdates.ImageOptions.LargeImageIndex"))); + this.miCheckUpdates.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miCheckUpdates.ImageOptions.SvgImage"))); this.miCheckUpdates.Name = "miCheckUpdates"; this.miCheckUpdates.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miCheckUpdates_ItemClick); // @@ -1796,6 +2001,9 @@ // resources.ApplyResources(this.miResetAndRestart, "miResetAndRestart"); this.miResetAndRestart.Id = 112; + this.miResetAndRestart.ImageOptions.ImageIndex = ((int)(resources.GetObject("miResetAndRestart.ImageOptions.ImageIndex"))); + this.miResetAndRestart.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miResetAndRestart.ImageOptions.LargeImageIndex"))); + this.miResetAndRestart.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miResetAndRestart.ImageOptions.SvgImage"))); this.miResetAndRestart.Name = "miResetAndRestart"; this.miResetAndRestart.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miResetAndRestart_ItemClick); // @@ -1803,6 +2011,9 @@ // resources.ApplyResources(this.mnuAccessibility, "mnuAccessibility"); this.mnuAccessibility.Id = 64; + this.mnuAccessibility.ImageOptions.ImageIndex = ((int)(resources.GetObject("mnuAccessibility.ImageOptions.ImageIndex"))); + this.mnuAccessibility.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("mnuAccessibility.ImageOptions.LargeImageIndex"))); + this.mnuAccessibility.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("mnuAccessibility.ImageOptions.SvgImage"))); this.mnuAccessibility.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(this.mnuGotoChannelList), new DevExpress.XtraBars.LinkPersistInfo(this.mnuGotoFavList), @@ -1821,6 +2032,9 @@ resources.ApplyResources(this.mnuGotoChannelList, "mnuGotoChannelList"); this.mnuGotoChannelList.CategoryGuid = new System.Guid("9cf38b78-167f-4d95-b848-8a3c913209c4"); this.mnuGotoChannelList.Id = 89; + this.mnuGotoChannelList.ImageOptions.ImageIndex = ((int)(resources.GetObject("mnuGotoChannelList.ImageOptions.ImageIndex"))); + this.mnuGotoChannelList.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("mnuGotoChannelList.ImageOptions.LargeImageIndex"))); + this.mnuGotoChannelList.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("mnuGotoChannelList.ImageOptions.SvgImage"))); this.mnuGotoChannelList.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(this.mnuInputSource)}); this.mnuGotoChannelList.Name = "mnuGotoChannelList"; @@ -1830,6 +2044,9 @@ resources.ApplyResources(this.mnuInputSource, "mnuInputSource"); this.mnuInputSource.CategoryGuid = new System.Guid("9cf38b78-167f-4d95-b848-8a3c913209c4"); this.mnuInputSource.Id = 90; + this.mnuInputSource.ImageOptions.ImageIndex = ((int)(resources.GetObject("mnuInputSource.ImageOptions.ImageIndex"))); + this.mnuInputSource.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("mnuInputSource.ImageOptions.LargeImageIndex"))); + this.mnuInputSource.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("mnuInputSource.ImageOptions.SvgImage"))); this.mnuInputSource.Name = "mnuInputSource"; // // mnuGotoFavList @@ -1837,6 +2054,9 @@ resources.ApplyResources(this.mnuGotoFavList, "mnuGotoFavList"); this.mnuGotoFavList.CategoryGuid = new System.Guid("9cf38b78-167f-4d95-b848-8a3c913209c4"); this.mnuGotoFavList.Id = 91; + this.mnuGotoFavList.ImageOptions.ImageIndex = ((int)(resources.GetObject("mnuGotoFavList.ImageOptions.ImageIndex"))); + this.mnuGotoFavList.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("mnuGotoFavList.ImageOptions.LargeImageIndex"))); + this.mnuGotoFavList.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("mnuGotoFavList.ImageOptions.SvgImage"))); this.mnuGotoFavList.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(this.mnuFavList)}); this.mnuGotoFavList.Name = "mnuGotoFavList"; @@ -1846,6 +2066,9 @@ resources.ApplyResources(this.mnuFavList, "mnuFavList"); this.mnuFavList.CategoryGuid = new System.Guid("9cf38b78-167f-4d95-b848-8a3c913209c4"); this.mnuFavList.Id = 92; + this.mnuFavList.ImageOptions.ImageIndex = ((int)(resources.GetObject("mnuFavList.ImageOptions.ImageIndex"))); + this.mnuFavList.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("mnuFavList.ImageOptions.LargeImageIndex"))); + this.mnuFavList.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("mnuFavList.ImageOptions.SvgImage"))); this.mnuFavList.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(this.miSelectFavList0), new DevExpress.XtraBars.LinkPersistInfo(this.miSelectFavListA), @@ -1859,6 +2082,9 @@ // resources.ApplyResources(this.miSelectFavList0, "miSelectFavList0"); this.miSelectFavList0.Id = 83; + this.miSelectFavList0.ImageOptions.ImageIndex = ((int)(resources.GetObject("miSelectFavList0.ImageOptions.ImageIndex"))); + this.miSelectFavList0.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miSelectFavList0.ImageOptions.LargeImageIndex"))); + this.miSelectFavList0.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miSelectFavList0.ImageOptions.SvgImage"))); this.miSelectFavList0.ItemShortcut = new DevExpress.XtraBars.BarShortcut(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Alt) | System.Windows.Forms.Keys.D0)); this.miSelectFavList0.Name = "miSelectFavList0"; @@ -1869,6 +2095,9 @@ // resources.ApplyResources(this.miSelectFavListA, "miSelectFavListA"); this.miSelectFavListA.Id = 84; + this.miSelectFavListA.ImageOptions.ImageIndex = ((int)(resources.GetObject("miSelectFavListA.ImageOptions.ImageIndex"))); + this.miSelectFavListA.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miSelectFavListA.ImageOptions.LargeImageIndex"))); + this.miSelectFavListA.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miSelectFavListA.ImageOptions.SvgImage"))); this.miSelectFavListA.ItemShortcut = new DevExpress.XtraBars.BarShortcut(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Alt) | System.Windows.Forms.Keys.D1)); this.miSelectFavListA.Name = "miSelectFavListA"; @@ -1879,6 +2108,9 @@ // resources.ApplyResources(this.miSelectFavListB, "miSelectFavListB"); this.miSelectFavListB.Id = 85; + this.miSelectFavListB.ImageOptions.ImageIndex = ((int)(resources.GetObject("miSelectFavListB.ImageOptions.ImageIndex"))); + this.miSelectFavListB.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miSelectFavListB.ImageOptions.LargeImageIndex"))); + this.miSelectFavListB.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miSelectFavListB.ImageOptions.SvgImage"))); this.miSelectFavListB.ItemShortcut = new DevExpress.XtraBars.BarShortcut(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Alt) | System.Windows.Forms.Keys.D2)); this.miSelectFavListB.Name = "miSelectFavListB"; @@ -1889,6 +2121,9 @@ // resources.ApplyResources(this.miSelectFavListC, "miSelectFavListC"); this.miSelectFavListC.Id = 86; + this.miSelectFavListC.ImageOptions.ImageIndex = ((int)(resources.GetObject("miSelectFavListC.ImageOptions.ImageIndex"))); + this.miSelectFavListC.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miSelectFavListC.ImageOptions.LargeImageIndex"))); + this.miSelectFavListC.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miSelectFavListC.ImageOptions.SvgImage"))); this.miSelectFavListC.ItemShortcut = new DevExpress.XtraBars.BarShortcut(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Alt) | System.Windows.Forms.Keys.D3)); this.miSelectFavListC.Name = "miSelectFavListC"; @@ -1899,6 +2134,9 @@ // resources.ApplyResources(this.miSelectFavListD, "miSelectFavListD"); this.miSelectFavListD.Id = 87; + this.miSelectFavListD.ImageOptions.ImageIndex = ((int)(resources.GetObject("miSelectFavListD.ImageOptions.ImageIndex"))); + this.miSelectFavListD.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miSelectFavListD.ImageOptions.LargeImageIndex"))); + this.miSelectFavListD.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miSelectFavListD.ImageOptions.SvgImage"))); this.miSelectFavListD.ItemShortcut = new DevExpress.XtraBars.BarShortcut(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Alt) | System.Windows.Forms.Keys.D4)); this.miSelectFavListD.Name = "miSelectFavListD"; @@ -1909,6 +2147,9 @@ // resources.ApplyResources(this.miSelectFavListE, "miSelectFavListE"); this.miSelectFavListE.Id = 88; + this.miSelectFavListE.ImageOptions.ImageIndex = ((int)(resources.GetObject("miSelectFavListE.ImageOptions.ImageIndex"))); + this.miSelectFavListE.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miSelectFavListE.ImageOptions.LargeImageIndex"))); + this.miSelectFavListE.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miSelectFavListE.ImageOptions.SvgImage"))); this.miSelectFavListE.ItemShortcut = new DevExpress.XtraBars.BarShortcut(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Alt) | System.Windows.Forms.Keys.D5)); this.miSelectFavListE.Name = "miSelectFavListE"; @@ -1920,6 +2161,9 @@ resources.ApplyResources(this.miSearch, "miSearch"); this.miSearch.CategoryGuid = new System.Guid("9cf38b78-167f-4d95-b848-8a3c913209c4"); this.miSearch.Id = 67; + this.miSearch.ImageOptions.ImageIndex = ((int)(resources.GetObject("miSearch.ImageOptions.ImageIndex"))); + this.miSearch.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miSearch.ImageOptions.LargeImageIndex"))); + this.miSearch.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miSearch.ImageOptions.SvgImage"))); this.miSearch.ItemShortcut = new DevExpress.XtraBars.BarShortcut(System.Windows.Forms.Keys.F3); this.miSearch.Name = "miSearch"; this.miSearch.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miSearch_ItemClick); @@ -1929,6 +2173,9 @@ resources.ApplyResources(this.miGotoLeftList, "miGotoLeftList"); this.miGotoLeftList.CategoryGuid = new System.Guid("9cf38b78-167f-4d95-b848-8a3c913209c4"); this.miGotoLeftList.Id = 69; + this.miGotoLeftList.ImageOptions.ImageIndex = ((int)(resources.GetObject("miGotoLeftList.ImageOptions.ImageIndex"))); + this.miGotoLeftList.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miGotoLeftList.ImageOptions.LargeImageIndex"))); + this.miGotoLeftList.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miGotoLeftList.ImageOptions.SvgImage"))); this.miGotoLeftList.ItemShortcut = new DevExpress.XtraBars.BarShortcut(System.Windows.Forms.Keys.F4); this.miGotoLeftList.Name = "miGotoLeftList"; this.miGotoLeftList.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miGotoLeftList_ItemClick); @@ -1938,51 +2185,69 @@ resources.ApplyResources(this.miGotoRightList, "miGotoRightList"); this.miGotoRightList.CategoryGuid = new System.Guid("9cf38b78-167f-4d95-b848-8a3c913209c4"); this.miGotoRightList.Id = 70; + this.miGotoRightList.ImageOptions.ImageIndex = ((int)(resources.GetObject("miGotoRightList.ImageOptions.ImageIndex"))); + this.miGotoRightList.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miGotoRightList.ImageOptions.LargeImageIndex"))); + this.miGotoRightList.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miGotoRightList.ImageOptions.SvgImage"))); this.miGotoRightList.ItemShortcut = new DevExpress.XtraBars.BarShortcut(System.Windows.Forms.Keys.F6); this.miGotoRightList.Name = "miGotoRightList"; this.miGotoRightList.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miGotoRightList_ItemClick); // // miFontSmall // - this.miFontSmall.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; resources.ApplyResources(this.miFontSmall, "miFontSmall"); + this.miFontSmall.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; this.miFontSmall.Id = 104; + this.miFontSmall.ImageOptions.ImageIndex = ((int)(resources.GetObject("miFontSmall.ImageOptions.ImageIndex"))); + this.miFontSmall.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miFontSmall.ImageOptions.LargeImageIndex"))); + this.miFontSmall.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miFontSmall.ImageOptions.SvgImage"))); this.miFontSmall.Name = "miFontSmall"; this.miFontSmall.Tag = 0; this.miFontSmall.DownChanged += new DevExpress.XtraBars.ItemClickEventHandler(this.miFont_DownChanged); // // miFontMedium // - this.miFontMedium.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; resources.ApplyResources(this.miFontMedium, "miFontMedium"); + this.miFontMedium.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; this.miFontMedium.Id = 105; + this.miFontMedium.ImageOptions.ImageIndex = ((int)(resources.GetObject("miFontMedium.ImageOptions.ImageIndex"))); + this.miFontMedium.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miFontMedium.ImageOptions.LargeImageIndex"))); + this.miFontMedium.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miFontMedium.ImageOptions.SvgImage"))); this.miFontMedium.Name = "miFontMedium"; this.miFontMedium.Tag = 1; this.miFontMedium.DownChanged += new DevExpress.XtraBars.ItemClickEventHandler(this.miFont_DownChanged); // // miFontLarge // - this.miFontLarge.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; resources.ApplyResources(this.miFontLarge, "miFontLarge"); + this.miFontLarge.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; this.miFontLarge.Id = 106; + this.miFontLarge.ImageOptions.ImageIndex = ((int)(resources.GetObject("miFontLarge.ImageOptions.ImageIndex"))); + this.miFontLarge.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miFontLarge.ImageOptions.LargeImageIndex"))); + this.miFontLarge.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miFontLarge.ImageOptions.SvgImage"))); this.miFontLarge.Name = "miFontLarge"; this.miFontLarge.Tag = 2; this.miFontLarge.DownChanged += new DevExpress.XtraBars.ItemClickEventHandler(this.miFont_DownChanged); // // miFontXLarge // - this.miFontXLarge.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; resources.ApplyResources(this.miFontXLarge, "miFontXLarge"); + this.miFontXLarge.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; this.miFontXLarge.Id = 107; + this.miFontXLarge.ImageOptions.ImageIndex = ((int)(resources.GetObject("miFontXLarge.ImageOptions.ImageIndex"))); + this.miFontXLarge.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miFontXLarge.ImageOptions.LargeImageIndex"))); + this.miFontXLarge.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miFontXLarge.ImageOptions.SvgImage"))); this.miFontXLarge.Name = "miFontXLarge"; this.miFontXLarge.Tag = 3; this.miFontXLarge.DownChanged += new DevExpress.XtraBars.ItemClickEventHandler(this.miFont_DownChanged); // // miFontXxLarge // - this.miFontXxLarge.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; resources.ApplyResources(this.miFontXxLarge, "miFontXxLarge"); + this.miFontXxLarge.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; this.miFontXxLarge.Id = 108; + this.miFontXxLarge.ImageOptions.ImageIndex = ((int)(resources.GetObject("miFontXxLarge.ImageOptions.ImageIndex"))); + this.miFontXxLarge.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miFontXxLarge.ImageOptions.LargeImageIndex"))); + this.miFontXxLarge.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miFontXxLarge.ImageOptions.SvgImage"))); this.miFontXxLarge.Name = "miFontXxLarge"; this.miFontXxLarge.Tag = 4; this.miFontXxLarge.DownChanged += new DevExpress.XtraBars.ItemClickEventHandler(this.miFont_DownChanged); @@ -1992,6 +2257,9 @@ resources.ApplyResources(this.mnuHelp, "mnuHelp"); this.mnuHelp.CategoryGuid = new System.Guid("0d554574-30e8-4d31-9a70-da702a984260"); this.mnuHelp.Id = 10; + this.mnuHelp.ImageOptions.ImageIndex = ((int)(resources.GetObject("mnuHelp.ImageOptions.ImageIndex"))); + this.mnuHelp.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("mnuHelp.ImageOptions.LargeImageIndex"))); + this.mnuHelp.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("mnuHelp.ImageOptions.SvgImage"))); this.mnuHelp.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(this.miWiki), new DevExpress.XtraBars.LinkPersistInfo(this.miOpenWebsite), @@ -2002,6 +2270,9 @@ // resources.ApplyResources(this.miWiki, "miWiki"); this.miWiki.Id = 51; + this.miWiki.ImageOptions.ImageIndex = ((int)(resources.GetObject("miWiki.ImageOptions.ImageIndex"))); + this.miWiki.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miWiki.ImageOptions.LargeImageIndex"))); + this.miWiki.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miWiki.ImageOptions.SvgImage"))); this.miWiki.Name = "miWiki"; this.miWiki.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miWiki_ItemClick); // @@ -2009,6 +2280,9 @@ // resources.ApplyResources(this.miOpenWebsite, "miOpenWebsite"); this.miOpenWebsite.Id = 50; + this.miOpenWebsite.ImageOptions.ImageIndex = ((int)(resources.GetObject("miOpenWebsite.ImageOptions.ImageIndex"))); + this.miOpenWebsite.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miOpenWebsite.ImageOptions.LargeImageIndex"))); + this.miOpenWebsite.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miOpenWebsite.ImageOptions.SvgImage"))); this.miOpenWebsite.Name = "miOpenWebsite"; this.miOpenWebsite.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miOpenWebsite_ItemClick); // @@ -2018,31 +2292,33 @@ this.miAbout.CategoryGuid = new System.Guid("0d554574-30e8-4d31-9a70-da702a984260"); this.miAbout.Id = 11; this.miAbout.ImageOptions.ImageIndex = ((int)(resources.GetObject("miAbout.ImageOptions.ImageIndex"))); + this.miAbout.ImageOptions.LargeImageIndex = ((int)(resources.GetObject("miAbout.ImageOptions.LargeImageIndex"))); + this.miAbout.ImageOptions.SvgImage = ((DevExpress.Utils.Svg.SvgImage)(resources.GetObject("miAbout.ImageOptions.SvgImage"))); this.miAbout.Name = "miAbout"; this.miAbout.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miAbout_ItemClick); // // barDockControlTop // - this.barDockControlTop.CausesValidation = false; resources.ApplyResources(this.barDockControlTop, "barDockControlTop"); + this.barDockControlTop.CausesValidation = false; this.barDockControlTop.Manager = this.barManager1; // // barDockControlBottom // - this.barDockControlBottom.CausesValidation = false; resources.ApplyResources(this.barDockControlBottom, "barDockControlBottom"); + this.barDockControlBottom.CausesValidation = false; this.barDockControlBottom.Manager = this.barManager1; // // barDockControlLeft // - this.barDockControlLeft.CausesValidation = false; resources.ApplyResources(this.barDockControlLeft, "barDockControlLeft"); + this.barDockControlLeft.CausesValidation = false; this.barDockControlLeft.Manager = this.barManager1; // // barDockControlRight // - this.barDockControlRight.CausesValidation = false; resources.ApplyResources(this.barDockControlRight, "barDockControlRight"); + this.barDockControlRight.CausesValidation = false; this.barDockControlRight.Manager = this.barManager1; // // lblInsertMode @@ -2064,9 +2340,9 @@ // // lblSetProgramNr // + resources.ApplyResources(this.lblSetProgramNr, "lblSetProgramNr"); this.lblSetProgramNr.Appearance.Options.UseTextOptions = true; this.lblSetProgramNr.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; - resources.ApplyResources(this.lblSetProgramNr, "lblSetProgramNr"); this.lblSetProgramNr.Name = "lblSetProgramNr"; // // picDonate @@ -2085,6 +2361,7 @@ // // grpTopPanel // + resources.ApplyResources(this.grpTopPanel, "grpTopPanel"); this.grpTopPanel.Controls.Add(this.rbInsertSwap); this.grpTopPanel.Controls.Add(this.rbInsertAfter); this.grpTopPanel.Controls.Add(this.rbInsertBefore); @@ -2094,7 +2371,6 @@ this.grpTopPanel.Controls.Add(this.tabChannelList); this.grpTopPanel.Controls.Add(this.lblSetProgramNr); this.grpTopPanel.Controls.Add(this.txtSetSlot); - resources.ApplyResources(this.grpTopPanel, "grpTopPanel"); this.grpTopPanel.Name = "grpTopPanel"; this.grpTopPanel.ShowCaption = false; // @@ -2106,7 +2382,11 @@ this.rbInsertSwap.Properties.AutoWidth = true; this.rbInsertSwap.Properties.Caption = resources.GetString("rbInsertSwap.Properties.Caption"); this.rbInsertSwap.Properties.CheckStyle = DevExpress.XtraEditors.Controls.CheckStyles.Radio; + this.rbInsertSwap.Properties.DisplayValueChecked = resources.GetString("rbInsertSwap.Properties.DisplayValueChecked"); + this.rbInsertSwap.Properties.DisplayValueGrayed = resources.GetString("rbInsertSwap.Properties.DisplayValueGrayed"); + this.rbInsertSwap.Properties.DisplayValueUnchecked = resources.GetString("rbInsertSwap.Properties.DisplayValueUnchecked"); this.rbInsertSwap.Properties.GlyphAlignment = ((DevExpress.Utils.HorzAlignment)(resources.GetObject("rbInsertSwap.Properties.GlyphAlignment"))); + this.rbInsertSwap.Properties.GlyphVerticalAlignment = ((DevExpress.Utils.VertAlignment)(resources.GetObject("rbInsertSwap.Properties.GlyphVerticalAlignment"))); this.rbInsertSwap.Properties.RadioGroupIndex = 1; this.rbInsertSwap.TabStop = false; this.rbInsertSwap.CheckedChanged += new System.EventHandler(this.rbInsertMode_CheckedChanged); @@ -2119,6 +2399,10 @@ this.rbInsertAfter.Properties.AutoWidth = true; this.rbInsertAfter.Properties.Caption = resources.GetString("rbInsertAfter.Properties.Caption"); this.rbInsertAfter.Properties.CheckStyle = DevExpress.XtraEditors.Controls.CheckStyles.Radio; + this.rbInsertAfter.Properties.DisplayValueChecked = resources.GetString("rbInsertAfter.Properties.DisplayValueChecked"); + this.rbInsertAfter.Properties.DisplayValueGrayed = resources.GetString("rbInsertAfter.Properties.DisplayValueGrayed"); + this.rbInsertAfter.Properties.DisplayValueUnchecked = resources.GetString("rbInsertAfter.Properties.DisplayValueUnchecked"); + this.rbInsertAfter.Properties.GlyphVerticalAlignment = ((DevExpress.Utils.VertAlignment)(resources.GetObject("rbInsertAfter.Properties.GlyphVerticalAlignment"))); this.rbInsertAfter.Properties.RadioGroupIndex = 1; this.rbInsertAfter.CheckedChanged += new System.EventHandler(this.rbInsertMode_CheckedChanged); // @@ -2130,6 +2414,10 @@ this.rbInsertBefore.Properties.AutoWidth = true; this.rbInsertBefore.Properties.Caption = resources.GetString("rbInsertBefore.Properties.Caption"); this.rbInsertBefore.Properties.CheckStyle = DevExpress.XtraEditors.Controls.CheckStyles.Radio; + this.rbInsertBefore.Properties.DisplayValueChecked = resources.GetString("rbInsertBefore.Properties.DisplayValueChecked"); + this.rbInsertBefore.Properties.DisplayValueGrayed = resources.GetString("rbInsertBefore.Properties.DisplayValueGrayed"); + this.rbInsertBefore.Properties.DisplayValueUnchecked = resources.GetString("rbInsertBefore.Properties.DisplayValueUnchecked"); + this.rbInsertBefore.Properties.GlyphVerticalAlignment = ((DevExpress.Utils.VertAlignment)(resources.GetObject("rbInsertBefore.Properties.GlyphVerticalAlignment"))); this.rbInsertBefore.Properties.RadioGroupIndex = 1; this.rbInsertBefore.TabStop = false; this.rbInsertBefore.CheckedChanged += new System.EventHandler(this.rbInsertMode_CheckedChanged); @@ -2140,6 +2428,10 @@ this.cbCloseGap.MenuManager = this.barManager1; this.cbCloseGap.Name = "cbCloseGap"; this.cbCloseGap.Properties.Caption = resources.GetString("cbCloseGap.Properties.Caption"); + this.cbCloseGap.Properties.DisplayValueChecked = resources.GetString("cbCloseGap.Properties.DisplayValueChecked"); + this.cbCloseGap.Properties.DisplayValueGrayed = resources.GetString("cbCloseGap.Properties.DisplayValueGrayed"); + this.cbCloseGap.Properties.DisplayValueUnchecked = resources.GetString("cbCloseGap.Properties.DisplayValueUnchecked"); + this.cbCloseGap.Properties.GlyphVerticalAlignment = ((DevExpress.Utils.VertAlignment)(resources.GetObject("cbCloseGap.Properties.GlyphVerticalAlignment"))); // // tabChannelList // @@ -2152,8 +2444,8 @@ // // pageEmpty // - this.pageEmpty.Name = "pageEmpty"; resources.ApplyResources(this.pageEmpty, "pageEmpty"); + this.pageEmpty.Name = "pageEmpty"; // // popupContext // @@ -2162,8 +2454,10 @@ new DevExpress.XtraBars.LinkPersistInfo(this.miMoveDown), new DevExpress.XtraBars.LinkPersistInfo(this.miAddChannel), new DevExpress.XtraBars.LinkPersistInfo(this.miRemove), + new DevExpress.XtraBars.LinkPersistInfo(this.miMarkForSwapping), + new DevExpress.XtraBars.LinkPersistInfo(this.miSwapWithMarked), new DevExpress.XtraBars.LinkPersistInfo(this.miRenameChannel), - new DevExpress.XtraBars.LinkPersistInfo(DevExpress.XtraBars.BarLinkUserDefines.PaintStyle, this.mnuFavSet, DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph), + new DevExpress.XtraBars.LinkPersistInfo(DevExpress.XtraBars.BarLinkUserDefines.PaintStyle, this.mnuFavSet, "", true, true, true, 0, null, DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph), new DevExpress.XtraBars.LinkPersistInfo(this.mnuFavUnset), new DevExpress.XtraBars.LinkPersistInfo(this.miLockOn), new DevExpress.XtraBars.LinkPersistInfo(this.miLockOff), @@ -2184,8 +2478,8 @@ // // grpSubList // - this.grpSubList.Controls.Add(this.tabSubList); resources.ApplyResources(this.grpSubList, "grpSubList"); + this.grpSubList.Controls.Add(this.tabSubList); this.grpSubList.Name = "grpSubList"; this.grpSubList.ShowCaption = false; // @@ -2201,8 +2495,8 @@ // // pageProgNr // - this.pageProgNr.Name = "pageProgNr"; resources.ApplyResources(this.pageProgNr, "pageProgNr"); + this.pageProgNr.Name = "pageProgNr"; // // popupInputSource // @@ -2228,8 +2522,8 @@ // // MainForm // - this.AllowDrop = true; resources.ApplyResources(this, "$this"); + this.AllowDrop = true; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.Controls.Add(this.splitContainerControl1); this.Controls.Add(this.grpSubList); @@ -2326,7 +2620,6 @@ private DevExpress.XtraBars.BarButtonItem miOpen; private DevExpress.XtraBars.BarButtonItem miSave; private DevExpress.XtraBars.BarButtonItem miReload; - private DevExpress.XtraBars.BarButtonItem miSaveAs; private DevExpress.XtraBars.BarButtonItem miQuit; private DevExpress.XtraBars.BarSubItem mnuHelp; private DevExpress.XtraBars.BarButtonItem miAbout; @@ -2482,6 +2775,9 @@ private DevExpress.XtraBars.BarButtonItem miAutoHideColumns; private DevExpress.XtraBars.BarButtonItem miLoadListAfterStart; private DevExpress.XtraBars.BarButtonItem miDeleteBackup; + private DevExpress.XtraBars.BarButtonItem miMarkForSwapping; + private DevExpress.XtraBars.BarButtonItem miSwapWithMarked; + private DevExpress.XtraBars.BarButtonItem miConvert; } } diff --git a/source/ChanSort/MainForm.cs b/source/ChanSort/MainForm.cs index 3aa8b0e..2d86313 100644 --- a/source/ChanSort/MainForm.cs +++ b/source/ChanSort/MainForm.cs @@ -58,6 +58,9 @@ namespace ChanSort.Ui private int ignoreEvents; private bool adjustWindowLocationOnScale = true; private string lastOpenedFile; + private ChannelList swapMarkList; + private int swapMarkSubList; + private ChannelInfo swapMarkChannel; #region ctor() @@ -343,6 +346,9 @@ namespace ChanSort.Ui this.Editor.ChannelList = null; this.gridRight.DataSource = null; this.gridLeft.DataSource = null; + this.swapMarkList = null; + this.swapMarkSubList = 0; + this.swapMarkChannel = null; this.FillChannelListTabs(); //this.SetControlsEnabled(!this.dataRoot.IsEmpty); @@ -580,21 +586,35 @@ namespace ChanSort.Ui catch (Exception ex) { serializer?.Dispose(); - var errMsg = ex is FileLoadException ? ex.Message : ex.ToString(); // FileLoadExceptions are normal when a Loader does not support a file. No stack trace needed - errorMsgs.AppendLine($"{plugin.PluginName}: {errMsg}\n\n"); - if (ex is ArgumentException) + + string authoritveErrorMsg = null; + string informativeErrorMsg = null; + + if (ex is LoaderException lex) { - var msg = ex.ToString(); - if (msg.Contains("ZipFile..ctor()")) - { - XtraMessageBox.Show(this, string.Format(Resources.MainForm_LoadTll_InvalidZip, inputFileName)); - return null; - } + if (lex.Recovery == LoaderException.RecoveryMode.Fail) + authoritveErrorMsg = ex.Message; + else + informativeErrorMsg = ex.Message; } + else if (ex is ArgumentException && ex.ToString().Contains("ZipFile..ctor()")) // broken .zip file can't be handled by any loader + authoritveErrorMsg = string.Format(Resources.MainForm_LoadTll_InvalidZip, inputFileName); + else + informativeErrorMsg = ex is FileLoadException ? ex.Message : ex.ToString(); + + + if (authoritveErrorMsg != null) + { + XtraMessageBox.Show(this, authoritveErrorMsg); + return null; + } + + // historically FileLoadExceptions were thrown deliberately by a loader to display a message (without stack trace) and proceed with the next loader + // other exceptions should display the stack trace for support purposes + errorMsgs.AppendLine($"{plugin.PluginName}: {informativeErrorMsg}\n\n"); } } - XtraMessageBox.Show(this, string.Format(Resources.MainForm_LoadTll_SerializerNotFound, inputFileName) + "\n\n" + errorMsgs); return null; } @@ -1766,7 +1786,7 @@ namespace ChanSort.Ui this.miRestoreOriginal.Enabled = fileLoaded && this.GetPathOfMissingBackupFile() == null; this.miDeleteBackup.Enabled = fileLoaded; this.miSave.Enabled = fileLoaded; - this.miSaveAs.Enabled = fileLoaded && this.currentTvSerializer.Features.CanSaveAs; + this.miConvert.Enabled = fileLoaded; this.miOpenReferenceFile.Enabled = fileLoaded; this.miSaveReferenceFile.Enabled = fileLoaded; this.miExcelExport.Enabled = fileLoaded; @@ -1787,6 +1807,9 @@ namespace ChanSort.Ui this.miMoveUp.Visibility = visLeft; this.miMoveDown.Visibility = visLeft; + this.miMarkForSwapping.Enabled = mayEdit && sel.Count == 1; + this.miMarkForSwapping.Down = swapMarkChannel != null; + this.miSwapWithMarked.Enabled = mayEdit && swapMarkList != null && this.CurrentChannelList == swapMarkList; this.miSkipOn.Enabled = this.miSkipOff.Enabled = this.currentTvSerializer?.Features.CanSkipChannels ?? false; this.miLockOn.Enabled = this.miLockOff.Enabled = this.currentTvSerializer?.Features.CanLockChannels ?? false; this.miHideOn.Enabled = this.miHideOff.Enabled = this.currentTvSerializer?.Features.CanHideChannels ?? false; @@ -2006,6 +2029,68 @@ namespace ChanSort.Ui #endregion + #region MarkForSwapping(), SwapWithMarked() + private void MarkForSwapping() + { + this.miMarkForSwapping.Down = false; + + GridView gv; + if (this.gridLeft.ContainsFocus) + gv = this.gviewLeft; + else if (this.gridRight.ContainsFocus) + gv = this.gviewRight; + else + return; + + var channel = (ChannelInfo)gv.FocusedRowObject; + if (channel == this.swapMarkChannel) + { + this.swapMarkList = null; + this.swapMarkSubList = 0; + this.swapMarkChannel = null; + } + else + { + this.swapMarkList = this.CurrentChannelList; + this.swapMarkSubList = this.SubListIndex; + this.swapMarkChannel = channel; + this.miMarkForSwapping.Down = true; + } + + this.RefreshGrids(); + } + + private void SwapWithMarked() + { + if (this.swapMarkList == null || this.swapMarkList != this.CurrentChannelList || this.swapMarkSubList != this.subListIndex) + return; + + GridView gv; + if (this.gridLeft.ContainsFocus) + gv = this.gviewLeft; + else if (this.gridRight.ContainsFocus) + gv = this.gviewRight; + else + return; + + var chanB = (ChannelInfo)gv.FocusedRowObject; + if (chanB == null || chanB == this.swapMarkChannel) + return; + + var nrA = this.swapMarkChannel.NewProgramNr; + var nrB = chanB.NewProgramNr; + if (nrA < 0 || nrB < 0) + return; + + this.gviewLeft.BeginDataUpdate(); + this.gviewRight.BeginDataUpdate(); + this.swapMarkChannel.NewProgramNr = chanB.NewProgramNr; + chanB.NewProgramNr = nrA; + this.gviewRight.EndDataUpdate(); + this.gviewLeft.EndDataUpdate(); + } + #endregion + #region CleanupChannelData() private void CleanupChannelData() @@ -2478,6 +2563,9 @@ namespace ChanSort.Ui e.Appearance.ForeColor = Color.Blue; e.Appearance.Options.UseForeColor = true; } + + if (channel == swapMarkChannel) + e.Appearance.FontStyleDelta |= FontStyle.Strikeout; } #endregion @@ -2652,6 +2740,10 @@ namespace ChanSort.Ui e.Appearance.Options.UseForeColor = true; } } + + + if (channel == swapMarkChannel) + e.Appearance.FontStyleDelta |= FontStyle.Strikeout; } #endregion @@ -3205,9 +3297,9 @@ namespace ChanSort.Ui TryExecute(this.SaveFiles); } - private void miSaveAs_ItemClick(object sender, ItemClickEventArgs e) + private void miConvert_ItemClick(object sender, ItemClickEventArgs e) { - TryExecute(this.ShowSaveFileDialog); + XtraMessageBox.Show(this, Resources.MainForm_miConvert_MessageBody, Resources.MainForm_miConvert_MessageHeader); } private void miSaveReferenceFile_ItemClick(object sender, ItemClickEventArgs e) @@ -3303,6 +3395,20 @@ namespace ChanSort.Ui this.TryExecute(this.RenameChannel); } + #region miMarkForSwapping_ItemClick + private void miMarkForSwapping_ItemClick(object sender, ItemClickEventArgs e) + { + this.TryExecute(this.MarkForSwapping); + } + #endregion + + #region miSwapWithMarked_ItemClick + private void miSwapWithMarked_ItemClick(object sender, ItemClickEventArgs e) + { + this.TryExecute(this.SwapWithMarked); + } + #endregion + private void miSort_ItemClick(object sender, ItemClickEventArgs e) { this.TryExecute(this.SortSelectedChannels); @@ -3796,6 +3902,6 @@ namespace ChanSort.Ui } } - #endregion + #endregion } } \ No newline at end of file diff --git a/source/ChanSort/MainForm.de.resx b/source/ChanSort/MainForm.de.resx index 7bf3f0e..b090dd6 100644 --- a/source/ChanSort/MainForm.de.resx +++ b/source/ChanSort/MainForm.de.resx @@ -124,7 +124,7 @@ - + Default @@ -144,14 +144,14 @@ 0, 0 - + Center - + None @@ -237,13 +237,16 @@ - - Datei&information... + + Sicherheitskopie löschen - + -1 - + + -1 + + @@ -255,13 +258,31 @@ - - Speichern &unter... + + Vorlagedatei exportieren... - + -1 - + + + + + Senderliste konvertieren... + + + -1 + + + + + + Excel liste exportieren... + + + -1 + + @@ -285,24 +306,6 @@ - - Vorlagedatei exportieren... - - - -1 - - - - - - Excel liste exportieren... - - - -1 - - - - &Drucken... @@ -312,6 +315,15 @@ + + Datei&information... + + + -1 + + + + &Beenden @@ -384,6 +396,27 @@ + + Für Tausch vormerken + + + -1 + + + + + + Mit vorgemerktem Sender tauschen + + + Tauscht den Senderplatz mit dem vorgemerkten Sender + + + -1 + + + + Sender umbenennen @@ -1059,11 +1092,11 @@ Werkzeuge - + - AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYyMS4xLCBWZXJzaW9uPTIx - LjEuNS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA + AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYyMi4xLCBWZXJzaW9uPTIy + LjEuNi4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEZpbGUE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICKaPJ5gsBeU2NTSFe @@ -1072,8 +1105,8 @@ - AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYyMS4xLCBWZXJzaW9uPTIx - LjEuNS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA + AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYyMi4xLCBWZXJzaW9uPTIy + LjEuNi4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEhlbHAE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICdEVVDegwMU2acNpw @@ -1082,8 +1115,8 @@ - AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYyMS4xLCBWZXJzaW9uPTIx - LjEuNS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA + AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYyMi4xLCBWZXJzaW9uPTIy + LjEuNi4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEVkaXQE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICZMTu18lZRU+IqmAu @@ -1092,8 +1125,8 @@ - AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYyMS4xLCBWZXJzaW9uPTIx - LjEuNS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA + AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYyMi4xLCBWZXJzaW9uPTIy + LjEuNi4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAAB09wdGlvbnME/P///wtTeXN0ZW0uR3VpZAsAAAACX2EC X2ICX2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICXJMOh9nzAkKc @@ -1102,8 +1135,8 @@ - AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYyMS4xLCBWZXJzaW9uPTIx - LjEuNS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA + AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYyMi4xLCBWZXJzaW9uPTIy + LjEuNi4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAADUFjY2Vzc2liaWxpdHkE/P///wtTeXN0ZW0uR3VpZAsA AAACX2ECX2ICX2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICeIvz @@ -1434,7 +1467,4 @@ speziellen Anbieter, Satelliten oder Länderlisten aus. Alle Sender - - Audio\nPID - \ No newline at end of file diff --git a/source/ChanSort/MainForm.pt.resx b/source/ChanSort/MainForm.pt.resx index a933950..83da745 100644 --- a/source/ChanSort/MainForm.pt.resx +++ b/source/ChanSort/MainForm.pt.resx @@ -62,9 +62,9 @@ - - - + + + Novo\nPos @@ -326,7 +326,7 @@ Tipo\nserviço - + AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy diff --git a/source/ChanSort/MainForm.resx b/source/ChanSort/MainForm.resx index 7860287..3b7362c 100644 --- a/source/ChanSort/MainForm.resx +++ b/source/ChanSort/MainForm.resx @@ -117,3186 +117,3980 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Fill - - - - 0, 111 - - - 194, 17 - - - Fill - - - 2, 56 - - - Bold - - - Pr. index - - - New\nPos - - - New program number - - - - True - - - 0 - - - 50 - - - Channel name - - - True - - - 1 - - - 145 - - + Favorites - - False + + + 39 - - - Combo + + During the setup of your TV you selected a predefined channel list. Modifying such a list would cause your TV to malfunction. Please run a full channel scan on your TV and do not select any specific provider, satellite or country lists. - + - - - RegEx + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - + + + None + + True - - 2 + + + Top - - 55 + + DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - Lock + + -1 - - Parental\nlock - - - True - - - 3 - - - 35 - - - Skip - - - True - - - 4 - - - 35 - - - Hide - - - True - - - 5 - - - 35 - - - Deleted - - - 60 - - - Service\nType - - - True - - - 6 - - - 45 - - - Source - - - 60 - - - UID - - - False - - - Numeric - - - 499, 382 - - - 1 - - - gridLeft - - - ChanSort.XGridControl, ChanSort, Version=1.0.8359.22033, Culture=neutral, PublicKeyToken=null - - - grpOutputList - - + 0 - - Search for a channel - - - Strikeout - - - 18 - - - 433, 17 - - - True - - - 6, 13 - - - 1402, 551 - - - Bottom, Left, Right - - - NoBorder - - - NoBorder - - - 0, 5 - - - 1395, 0 - - - Pr# - - - pageProgNr - - - DevExpress.XtraTab.XtraTabPage, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - tabSubList - 0 - - 1397, 20 - - - 6 - - - tabSubList - - - DevExpress.XtraTab.XtraTabControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - grpSubList - - - 0 - - - Top - - - 0, 84 - - - 1402, 27 - - - 10 - - - Sub List - - - False - - - grpSubList - - - DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - $this - - - 1 - - - 256, 6 - - - 308, 17 - - - &File - - - &Open TV data file... - - - 3 - - - &Reload - - - 5 - - - Restore backup - - - 31 - - - Delete backup files - - - &Save - - - 4 - - - Save &as... - - - 33 - - - Save reference list... - - - 6 - - - Export Excel list... - - - 32 - - - Apply order from a reference list... - - - 23 - - - Add channels from reference list... - - - &Print... - - - 34 - - - File &information... - - - 30 - - - &Quit - - - Recent files - - - &Edit - - - Move up - - - 24 - - - Move down - - - 25 - - - &Add channels - - - 39 - - - &Remove channels - - - 11 - - - Rename channel - - - 29 - - - Add to &Favorites - - - 13 - - - Remove from Favorites - - - &Lock channel: on - - - 15 - - - Lock channel: off - - - &Skip channel: on - - - 16 - - - Skip channel: off - - - &Hide channel: on - - - 17 - - - Hide channel: off - - - Re&number channels - - - 22 - - - Sor&t channels alphabetically - - - 21 - - - Renumber favorites by Pr# - - - Uses the same Pr# in all channel and favorites lists - - - Copy list to clipboard - - - 32 - - - TV-Set - - - Device setting... - - - 27 - - - Cleanup channel data - - - Reorganize channel records and remove duplicates - - - &Settings - - - &Language - @Invariant - - - 14 - - - English - @Invariant - - - 0 - - - Česky - @Invariant - - - 41 - - - Deutsch - @Invariant - - - 1 - - - Español - @Invariant - - - 44 - - - Magyar - @Invariant - - - 47 - - - Polski - @Invariant - - - 45 - - - Português - @Invariant - - - 2 - - - Română - @Invariant - - - 42 - - - Русский - @Invariant + + colDebug 35 - - Türkçe - @Invariant + + True - - 46 + + -1 - - &Character set + + + 1402, 27 - - 9 + + 33 - - All &character sets... + + miEnglish - - 9 + + 29 - - UTF-8 (Unicode) - @Invariant + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - ISO character sets + + - - UTF-16 Big Endian (Unicode MSB first) - @Invariant + + Remove selected channels - - UTF-16 Little Endian (Unicode LSB first) - @Invariant + + - - Theme... + + -1 - - 43 + + splitContainerControl1 - - Split View + + Left - - 48 + + -1 - - Hide/unhide columns automatically + + 6 - - Load last used list after start + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - Show warnings after loading file + + Toggle Favorite F - - Automatically show any warnings after opening a file + + grpOutputList - - Allow editing predefined lists (DANGEROUS) + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - Your TV may malfunction when you edit a list with predefined channel numbers + + DVB Service Type - - Windows Explorer integration + + True - - Check for updates + + dsChannels - - Reset to default settings and restart + + - - Resets all customized settings and restarts the program + + splashScreenManager1 - - &Accessibility + + + Default - - Opens a submenu for the input source selection. This menu can be directly activated with the F1 key + + 11 - - Select &input source + + + Center - - mnuInputSource - @Invariant + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - Opens a submenu for the program of favorite list selection. This menu can be directly activated with the Shift+F1 key + + 45 - - Select program/&favorite list - - - mnuFavList - - - Program list - - - Favorites A - - - Favorites B - - - Favorites C - - - Favorites D - - - Favorites E - - - &Search - - - Left list - - - Right list - - - S - Tahoma 8pt - @Invariant - - - M - Segoe UI 9pt - @Invariant - - - L - Segoe UI 10pt - @Invariant - - - XL - Segoe UI 11pt - @Invariant - - - XXL - Segoe UI 12pt - @Invariant - - - &Help - - - Wiki - - - ChanSort website... + + DevExpress.XtraEditors.SplitGroupPanel, DevExpress.Utils.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a &About ChanSort... - - 7 + + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - Tools + + colSymbolRate - + + DevExpress.XtraEditors.PictureEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + Top, Left + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + True + + + -1 + + + DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + Română + + + 0, 0 + + + 0 + + + + + + ±G + + + repositoryItemCheckedComboBoxEdit1 + + + $this + + + RegEx + + + + + + miSearch + + + 23, 23 + + + 0 + + + colChannelOrTransponder + + + &Save + + + 23, 23 + + + Search for a channel + + + miSelectFavListE + + + 5 + + + UTF-8 (Unicode) + + + Insert mode: + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + -1 + + + + + + colAudioPid + + + Top + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 30 + + + &Accessibility + + + + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miRussian + + + -1 + + + miUtf8Charset + + + Skip channel: off + + + 34, 5 + + + 39 + + + grpOutputList + + + btnAddAll + + + True + + + + + + 17 + + + + + + 35 + + + 45 + + + miTvSettings + + + -1 + + + -1 + + + -1 + + + 40 + + + -1 + + + colOutDeleted + + + colSlotNew + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + -1 + + + lblPredefinedList + + + + + + -1 + + AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYyMi4xLCBWZXJzaW9uPTIy - LjEuNS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA + LjEuNi4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEZpbGUE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICKaPJ5gsBeU2NTSFe Xxl+0wEL - - - AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYyMi4xLCBWZXJzaW9uPTIy - LjEuNS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA - ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li - bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEhlbHAE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC - X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICdEVVDegwMU2acNpw - KphCYAEL - + + -1 - - - AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYyMi4xLCBWZXJzaW9uPTIy - LjEuNS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA - ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li - bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEVkaXQE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC - X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICZMTu18lZRU+IqmAu - ZMgcwAEL - + + - - - AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYyMi4xLCBWZXJzaW9uPTIy - LjEuNS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA - ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li - bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAAB09wdGlvbnME/P///wtTeXN0ZW0uR3VpZAsAAAACX2EC - X2ICX2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICXJMOh9nzAkKc - WIeWYGkVXQEL - + + + + + Deleted + + + + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + Remove selected channels from sorted list + + + 16 + + + Magyar + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 5 + + + miSave + + + Bottom, Left, Right + + + Transport Stream ID + + + ChanSort.XGridControl, ChanSort, Version=1.0.8368.21374, Culture=neutral, PublicKeyToken=null + + + &Reload + + + ChanSort.XGridControl, ChanSort, Version=1.0.8368.21374, Culture=neutral, PublicKeyToken=null + + + Strikeout + + + -1 + + + miFontMedium + + + True + + + + + + 45 + + + 437, 5 + + + 2 + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + Crypt + + + + + + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colOutSource + + + -1 + + + colOutName + + + True + + + 4 + + + mnuGotoChannelList + + + 307, 5 + + + + + + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 198, 5 + + + colIndex1 + + + miGotoRightList + + + 23, 23 + + + S - Tahoma 8pt + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + pnlEditControls + + + miCharsetForm + + + Remove selected channels from sorted list + + + Combo + + + + + + + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colFavorites + + + barDockControlLeft + + + UID + + + 35 + + + 50 + + + -1 + + + colOutFav + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + + + + miCleanupChannels + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + True + + + grpTopPanel + + + True + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + -1 + + + miPortuguese + + + XXL - Segoe UI 12pt + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 10 + + + miSkipOn + + + -1 + + + barManager1 + + + 40 + + + \d{1,4} + + + + + + -1 + + + swap + + + btnRemoveRight + + + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + pnlEditControlRight + + + 98, 5 + + + tabChannelList + + + -1 + + + &Skip channel: on + + + 55 + + + -1 + + + -1 + + + -1 + + + DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + grpOutputList + + + Fill + + + 57 + + + Provider + + + Program list + + + -1 + + + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + -1 + + + DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + grpTopPanel + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 543, 6 + + + 0 + + + 4 + + + colOutSlot + + + False + + + Remove channel filter criteria from sorted channel list + + + repositoryItemCheckedComboBoxEdit2 + + + btnToggleLock + + + miWiki + + + + + + -1 + + + -1 + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + Русский + + + 34, 5 + + + 8 + + + Default + + + Load last used list after start + + + &Lock channel: on + + + Automatically show any warnings after opening a file + + + 15 + + + + + + 8 + + + miPrint + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miAddFromRefList + + + MainForm + + + btnUp + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + Strikeout + + + Program number for insert and set operations + + + Fill + + + DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + + + + 64, 13 + + + Swap this channel with the previously marked one + + + 4 + + + -1 + + + miAutoHideColumns + + + 7, 8 + + + pnlEditControls + + + 0 + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 0 + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 1224, 4 + + + miSkipOff + + + -1 + + + -1 + + + colSource + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 1 + + + 27 + + + Service\nType + + + pnlEditControls + + + Vertical + + + + Left + + + Deutsch + + + + + + 48 + + + 10 + + + Toggle Favorite C + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + -1 + + + + + + picDonate + + + Search for a channel + + + &Search + + + -1 + + + miSpanish + + + -1 + + + + + + + + + Cleanup channel data + + + 1397, 20 + + + ±F + + + colSignalSource + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + + + + 45 + + + 15 + + + True + + + miSaveReferenceFile + + + True + + + colLogicalIndex + + + colLock + + + 13 + + + grpInputList + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 32 + + + + + + DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + -1 + + + $this + + + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 18 + + + pnlEditControls + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + mnuFavUnset + + + -1 + + + -1 + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miMarkForSwapping + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + -1 + + + -1 + + + Hide + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 45 + + + mnuGotoFavList + + + splitContainerControl1.Panel1 + + + Strikeout + + + << Add all + + + Default + + + -1 + + + Device setting... + + + -1 + + + 35 + + + miAddChannel + + + 18 + + + + + + 8 + + + + + + ±B + + + Reorganize channel records and remove duplicates + + + -1 + + + + + + Move down + + + Your TV may malfunction when you edit a list with predefined channel numbers + + + 24 + + + barSubItem2 + + + btnToggleFavB + + + + + + -1 + + + 5, 5 + + + 499, 382 + + + + + + btnToggleFavD + + + -1 + + + + + + Tile + + + + + + 145 + + + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + Fill + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colVideoPid + + + + + + 20 + + + Channel name + + + Toggle Favorite B + + + colIndex + + + Strikeout + + + tabSubList + + + -1 + + + + + + 22 + + + pnlEditControls + + + 1218, 20 + + + -1 + + + 1402, 0 + + + + + + &File + + + Resets all customized settings and restarts the program + + + Satellite + + + 50 + + + NoBorder + + + 11 + + + Favorites B + + + 15 + + + 17 + + + pnlEditControlRight + + + Move selected channels up + + + OK + + + True + + + Old\nPos + + + Renumber selected channels + + + 162, 49 + + + colPrNr + + + miConvert + + + DevExpress.XtraTab.XtraTabControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 372, 19 + + + 885, 382 + + + 28 + + + Export Excel list... + + + -1 + + + DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + pnlEditControlRight + + + 0 + + + Save reference list... + + + 444, 5 + + + DevExpress.XtraBars.BarCheckItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + Bottom + + + DevExpress.XtraEditors.Repository.RepositoryItemTextEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 11 + + + No channel lists + + + Favorites A + + + Opens a submenu for the program of favorite list selection. This menu can be directly activated with the Shift+F1 key + + + + + + 6, 13 + + + miQuit + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colFreqInMhz + + + ChanSort.XGridView, ChanSort, Version=1.0.8368.21374, Culture=neutral, PublicKeyToken=null + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 9 + + + + + + -1 + + + DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + + + + DevExpress.XtraBars.BarDockControl, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + DevExpress.XtraBars.BarLinkContainerItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 9 + + + Hide/unhide columns automatically + + + timerSelectFocusedRow + + + Signal\nsource + + + &Character set + + + DevExpress.XtraTab.XtraTabPage, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + Add selected channels to sorted list + + + 120 + + + True + + + 5 + + + barDockControlTop + + + Video\nPID + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miExplorerIntegration + + + -1 + + + 40 + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 2 + + + Service\nType ID + + + Left list + + + Português + + + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 0, 84 + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + -1 + + + 2, 56 + + + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + pnlEditControls + + + DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + + + + miRenum + + + Polarity + + + DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + -1 + + + grpSubList + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + barDockControlBottom + + + Source + + + 7 + + + -1 + + + + + + DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + grpTopPanel + + + &Help + + + ChanSort.Ui.GlobalImageCollection, ChanSort, Version=1.0.8368.21374, Culture=neutral, PublicKeyToken=null + + + -1 + + + False + + + -1 + + + + + + 32 + + + DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + btnClearLeftFilter + + + DevExpress.XtraBars.BarManager, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + Move selected channels down + + + 257, 5 + + + 23, 23 + + + + + + Tools + + + Order + + + Debug\ndata + + + 0 + + + Swap with marked + + + 71, 5 + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 207, 5 + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colOutServiceType + + + miSplitView + + + mnuCharset + + + $this + + + 66, 23 + + + -1 + + + Parental lock + + + 30 + + + btnSearch + + + Channel or transponder number + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + Top + + + 0 + + + Panel2 + + + English + + + colSlotOld + + + colHidden + + + miSelectFavListB + + + &Hide channel: on + + + miRomanian + + + miShowWarningsAfterLoad + + + 1216, 0 + + + 23, 23 + + + miRecentFiles + + + Center + + + -1 + + + 1402, 440 + + + grpTopPanel + + + 40 + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + + + + btnToggleFavF + + + True + + + splitContainerControl1.Panel2 + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + grpTopPanel + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + Default + + + -1 + + + 12 + + + + + + Pr. index + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + popupInputSource + + + gviewLeft + + + splitContainerControl1.Panel1 + + + + + + 372, 5 + + + Reset to default settings and restart + + + Inherit + + + DVB Service Type value + + + Set Pos: + + + miTheme + + + 0 + + + -1 + + + 1395, 0 + + + miGerman + + + Toggle Favorite E + + + Left + + + True + + + 0, 0 + + + 121, 23 + + + 23, 23 + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + + + + colUid + + + colShortName + + + 0 + + + pnlEditControlRight + + + Skip + + + -1 + + + &Open TV data file... + + + gridLeft + + + -1 + + + + + + tabChannelList + + + 55, 20 + + + 50 + + + DevExpress.XtraEditors.Repository.RepositoryItemCheckedComboBoxEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + -1 + + + Toggle parental lock + + + Hide channel: off + + + 14 + + + 14 + + + Program Clock Reference Packet-ID + + + miLockOn + + + + + + + + + Original Network Identifier + + + 1 + + + DevExpress.XtraBars.BarDockControl, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 2, 23 + + + + + + Move selected channel up + + + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 5 + + + CenterScreen + + + 1402, 551 + + + 12 + + + miUtf16BigEndian + + + splitContainerControl1 + + + Deleted + + + -1 + + + + + + miPolski + + + 2 + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + pnlEditControls + + + miHideOff + + + M - Segoe UI 9pt + + + 43 + + + -1 + + + Combo + + + Hide + + + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + &Quit + + + Close gap when moving/deleting a channel + + + DevExpress.XtraTab.XtraTabControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + + + + DevExpress.XtraBars.BarDockControl, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 889, 440 + + + 18 + + + + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miOpenWebsite + + + miFileInformation + + + mnuFavSet + + + PCR\nPID + + + 8 + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 270, 5 + + + 14 + + + miSelectFavListD + + + 6 + + + 0 + + + 7 + + + btnToggleFavE + + + -1 + + + 6 + + + 0 + + + miLockOff + + + -1 + + + + + + 2 + + + L - Segoe UI 10pt + + + Uses the same Pr# in all channel and favorites lists + + + + + + Bottom, Left, Right + + + DevExpress.XtraBars.PopupMenu, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 23, 23 + + + grpTopPanel + + + Allow editing predefined lists (DANGEROUS) + + + -1 + + + 25 + + + miUtf16LittleEndian + + + 45 + + + DevExpress.XtraEditors.PanelControl, DevExpress.Utils.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + -1 + + + + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + + + + 9 + + + Old position + + + colPolarity + + + 2 + + + timerEditDelay + + + + + + Top + + + tabSubList + + + pnlEditControls + + + mnuHelp + + + + + + Rename channel + + + 180 + + + 19 + + + miAbout + + + 0 + + + Add selected channels to sorted list + + + miSelectFavList0 + + + + + + 46 + + + Short\nname + + + miSelectFavListA + + + -1 + + + colServiceId + + + Skip + + + 0 + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 6 + + + 66, 23 + + + + + + 1 + + + colNetworkName AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYyMi4xLCBWZXJzaW9uPTIy - LjEuNS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA + LjEuNi4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAADUFjY2Vzc2liaWxpdHkE/P///wtTeXN0ZW0uR3VpZAsA AAACX2ECX2ICX2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICeIvz nH8WlU24SIo8kTIJxAEL - - Top + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - 0, 0 + + 157, 5 - - 1402, 27 + + 23, 23 - - barDockControlTop + + Network\nOperator - - DevExpress.XtraBars.BarDockControl, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + - - $this + + 17 - - 6 + + -1 - - Bottom + + grpSubList - - 0, 551 + + - - 1402, 0 + + - - barDockControlBottom + + DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - DevExpress.XtraBars.BarDockControl, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + 1402, 57 - - $this + + btnToggleFavC - - 5 + + -1 - - Left + + ±D - - 0, 27 + + 13 - - 0, 524 + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - barDockControlLeft + + -1 - - DevExpress.XtraBars.BarDockControl, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + 40 - - $this + + Lock channel: off + + + True 3 - - Right + + 107, 6 + + + -1 + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + RegEx 1402, 27 - - 0, 524 + + Renumber favorites by Pr# - - barDockControlRight + + 41 - - DevExpress.XtraBars.BarDockControl, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + True + + + miEdit + + + after + + + Toggle Favorite G + + + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + Parental\nlock + + + + + + miExcelExport + + + btnDown + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miMoveDown + + + + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colProvider + + + btnToggleFavH + + + -1 + + + Fill + + + 14 + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 1 + + + Reset filter + + + Top, Left + + + miResetAndRestart + + + grpTopPanel + + + -1 + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 0 + + + 50 + + + 6 + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + txtSetSlot + + + -1 + + + This is a predefined list and cannot be edited. + + + + + + + + + 23 + + + -1 + + + ChanSort website... + + + btnSearchLeft + + + 6 + + + Audio\nPID + + + bar1 + + + True + + + DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miReload + + + -1 + + + 2, 23 $this - - 4 + + 0, 524 - - swap + + - - - Default + + 40 - - 48, 20 + + -1 - + + Service\nID + + + Symbol\nrate + + + 2 + + + 7 + + + False + + + Tile + + + 24 + + + 23, 23 + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colPcrPid + + + DevExpress.XtraEditors.Repository.RepositoryItemCheckedComboBoxEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + Theme... + + 10 rbInsertSwap - - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - grpTopPanel - - - 0 - - - True - - - 185, 6 - - - after - - - 47, 20 - - - 9 - - - rbInsertAfter - - - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - grpTopPanel - - - 1 - - - 107, 6 - - - before - - - 55, 20 - - - 8 - - - rbInsertBefore - - - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - grpTopPanel - - - 2 - - - True - - - 543, 6 - - - Close gap when moving/deleting a channel - - - 322, 18 - - - 7 - - - When active, all channels after the current one will be automatically renumbered - - - cbCloseGap - - - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - grpTopPanel - - - 3 - - - 7, 8 - - - 62, 13 - - - 2 - - - Insert mode: - - - lblInsertMode - - - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - grpTopPanel - - - 4 - - - Top, Right - - - 1224, 4 - - - 162, 49 - - - 0 - - - picDonate - - - DevExpress.XtraEditors.PictureEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - grpTopPanel - - - 5 - - - Bottom, Left, Right - - - 0, 33 - - - 1216, 0 - - - No channel lists - - - pageEmpty - - - DevExpress.XtraTab.XtraTabPage, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - tabChannelList - - - 0 - - - 1218, 20 - - - 5 - - - tabChannelList - - - DevExpress.XtraTab.XtraTabControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - grpTopPanel - - - 6 - - - Vertical - - - 367, 8 - - - 64, 13 - - - 0 - - - Set Pos: - - - Program number for insert and set operations - - - lblSetProgramNr - - - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - grpTopPanel - - - 7 - - - 437, 5 - - - OK - - - \d{1,4} - @Invariant - - - RegEx - - - 66, 20 - - - 1 - - - txtSetSlot - - - DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - grpTopPanel - - - 8 - - - Top - - - 0, 27 - - - 1402, 57 - - - 0 - - - grpTopPanel - - - DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - $this - - - 2 - - - CenterScreen - - - ChanSort {0} - TV Channel List Editor - - - dsChannels - - - System.Windows.Forms.BindingSource, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - gviewLeft - - - ChanSort.XGridView, ChanSort, Version=1.0.8359.22033, Culture=neutral, PublicKeyToken=null - - - colIndex1 - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colOutSlot - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colOutName - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colOutFav - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - repositoryItemCheckedComboBoxEdit1 - - - DevExpress.XtraEditors.Repository.RepositoryItemCheckedComboBoxEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colOutLock - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colOutSkip - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colOutHide - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colOutDeleted - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colOutServiceType - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colOutSource - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colUid1 - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - repositoryItemTextEdit1 - - - DevExpress.XtraEditors.Repository.RepositoryItemTextEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - globalImageCollection1 - - - ChanSort.Ui.GlobalImageCollection, ChanSort, Version=1.0.8359.22033, Culture=neutral, PublicKeyToken=null - - - gviewRight - - - ChanSort.XGridView, ChanSort, Version=1.0.8359.22033, Culture=neutral, PublicKeyToken=null - - - colIndex - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colSlotOld - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colSlotNew - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colSource - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colPrNr - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colName - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colShortName - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colFavorites - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - repositoryItemCheckedComboBoxEdit2 - - - DevExpress.XtraEditors.Repository.RepositoryItemCheckedComboBoxEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colLock - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colSkip - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colHidden - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colDeleted - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colEncrypted - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colServiceType - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colServiceTypeName - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colFreqInMhz - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colPolarity - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colChannelOrTransponder - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colSatellite - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colNetworkId - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colTransportStreamId - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colServiceId - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colPcrPid - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colVideoPid - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colAudioPid - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colSymbolRate - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colNetworkName - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colNetworkOperator - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colProvider - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colUid - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colLogicalIndex - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colSignalSource - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colDebug - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - barManager1 - - - DevExpress.XtraBars.BarManager, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - bar1 - - - DevExpress.XtraBars.Bar, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miFile - - - DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miOpen - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miReload - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miRestoreOriginal - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miDeleteBackup - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miFileInformation - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miSave - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miSaveAs - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miOpenReferenceFile - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miAddFromRefList - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miSaveReferenceFile - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miExcelExport - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miPrint - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miQuit - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miRecentFiles - - - DevExpress.XtraBars.BarListItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miEdit - - - DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miMoveUp - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miMoveDown - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miAddChannel - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miRemove - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miRenameChannel - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - mnuFavSet - - - DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - mnuFavUnset - - - DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miLockOn - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miLockOff - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miSkipOn - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miSkipOff - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miHideOn - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miHideOff - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miRenum - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miSort - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miRenumFavByPrNr - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miCopyCsv - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - barSubItem2 - - - DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miTvSettings - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miCleanupChannels - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - mnuOptions - - - DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - mnuLanguage - - - DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miEnglish - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miCzech - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miGerman - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miSpanish - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miHungarian - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miPolski - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miPortuguese - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miRomanian - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miRussian - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miTurkish - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - mnuCharset - - - DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miCharsetForm - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miUtf8Charset - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miIsoCharSets - - - DevExpress.XtraBars.BarListItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miUtf16BigEndian - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miUtf16LittleEndian - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miTheme - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miSplitView - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miAutoHideColumns - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miLoadListAfterStart - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miShowWarningsAfterLoad - - - DevExpress.XtraBars.BarCheckItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miAllowEditPredefinedLists - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miExplorerIntegration - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miCheckUpdates - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miResetAndRestart - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - mnuAccessibility - - - DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - mnuGotoChannelList - - - DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - mnuInputSource - - - DevExpress.XtraBars.BarLinkContainerItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - mnuGotoFavList - - - DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - mnuFavList - - - DevExpress.XtraBars.BarLinkContainerItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miSelectFavList0 - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miSelectFavListA - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miSelectFavListB - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miSelectFavListC - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miSelectFavListD - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miSelectFavListE - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miSearch - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miGotoLeftList - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miGotoRightList - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miFontSmall - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miFontMedium - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miFontLarge - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miFontXLarge - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miFontXxLarge - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - mnuHelp - - - DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miWiki - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miOpenWebsite - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miAbout - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - splashScreenManager1 - - - DevExpress.XtraSplashScreen.SplashScreenManager, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - popupContext - - - DevExpress.XtraBars.PopupMenu, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - timerEditDelay - - - System.Windows.Forms.Timer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - popupInputSource - - - DevExpress.XtraBars.PopupMenu, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - popupFavList - - - DevExpress.XtraBars.PopupMenu, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - timerSelectFocusedRow - - - System.Windows.Forms.Timer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - MainForm - - - DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 11/20/2022 12:41:24 - - - 16, 16 - - - 444, 5 - - - 23, 23 - - - 19 - - - Search channel by name - - - btnSearchLeft - - - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - pnlEditControls - - - 0 - - - Toggle Favorite H - - - 307, 5 - - - 23, 23 - - - 18 - - - ±H - - - btnToggleFavH - - - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - pnlEditControls - - - 1 - - - Toggle Favorite G - - - 282, 5 - - - 23, 23 - - - 17 - - - ±G - - - btnToggleFavG - - - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - pnlEditControls - - - 2 - - - Toggle Favorite F - - - 257, 5 - - - 23, 23 - - - 16 - - - ±F - - - btnToggleFavF - - - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - pnlEditControls - - - 3 - - - 15 - - - 334, 5 - - - 23, 23 - - - 15 - - - Toggle parental lock - - - Parental lock - - - btnToggleLock - - - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - pnlEditControls - - - 4 - - - Toggle Favorite E - - - 232, 5 - - - 23, 23 - - - 14 - - - ±E - - - btnToggleFavE - - - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - pnlEditControls - - - 5 - - - Toggle Favorite D - - - 207, 5 - - - 23, 23 - - - 13 - - - ±D - - - btnToggleFavD - - - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - pnlEditControls - - - 6 - - - Toggle Favorite C - - - 182, 5 - - - 23, 23 - - - 12 - - - ±C - - - btnToggleFavC - - - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - pnlEditControls - - - 7 - - - Toggle Favorite B - - - 157, 5 - - - 23, 23 - - - 11 - - - ±B - - - btnToggleFavB - - - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - pnlEditControls - - - 8 - - - Toggle Favorite A - - - 132, 5 - - - 23, 23 - - - 10 - - - ±A - - - btnToggleFavA - - - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - pnlEditControls - - - 9 - - - Remove channel filter criteria from sorted channel list - - - Strikeout - - - 28 - - - 372, 5 - - - 66, 23 - - - 9 - - - Filter - - - Reset filter - - - btnClearLeftFilter - - - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - pnlEditControls - - - 10 - - - 22 - - - 98, 5 - - - 23, 23 - - - 8 - - - Renumber selected channels sequentially - - - Renumber selected channels - - - btnRenum - - - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - pnlEditControls - - - 11 - - - 25 - - - 34, 5 - - - 23, 23 - - - 6 - - - Move selected channel down - - - Move selected channels down - - - btnDown - - - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - pnlEditControls - - - 12 - - - 24 - - - 5, 5 - - - 23, 23 - - - 5 - - - Move selected channel up - - - Move selected channels up - - - btnUp - - - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - pnlEditControls - - - 13 - - - 11 - - - 63, 5 - - - 23, 23 - - - 2 - - - Remove selected channels from sorted list - - - Remove selected channels - - - btnRemoveLeft - - - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - pnlEditControls - - - 14 - - - Top - - - 2, 23 - - - 499, 33 - - - 0 - - - pnlEditControls - - - DevExpress.XtraEditors.PanelControl, DevExpress.Utils.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - grpOutputList - - - 1 - - - Fill - - - 0, 0 - - - 503, 440 - - - 0 - - - Sorted channels - - - grpOutputList - - - DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - splitContainerControl1.Panel1 - - - 0 - - - Panel1 - - - splitContainerControl1.Panel1 - - - DevExpress.XtraEditors.SplitGroupPanel, DevExpress.Utils.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - splitContainerControl1 - - - 0 - - - Fill - - - 2, 56 + + Bold - - Pr. index + + -1 - - Old\nPos + + colNetworkId - - - Left + + Move up - - Old position + + Select program/&favorite list - - True + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - 0 + + 2, 56 - - 50 + + New program number - - New\nPos + + -1 - - Left - - - New position - - - True - - - 1 - - - 45 - - - Source - - - 50 - - - Pr# - - - 30 - - - Channel name - - - Left - - - True - - - 2 - - - 180 - - - Short\nname - - - True - - + 3 - - Favorites + + pageEmpty - - False + + 66, 20 - - Combo + + 23, 23 - - - - - RegEx - - + True - - 4 - - - 55 - - - Locked - - - True - - - 5 - - - 40 - - - Skip - - - True - - - 6 - - - 40 - - - Hide - - - True - - - 7 - - - 40 - - - Deleted - - - 48 - - - Crypt - - - Encrypted + + 3 True - - 8 - - - 40 - - - Service\nType ID - - - DVB Service Type value - - - 45 - - - Service\nType - - - DVB Service Type - - - True - - - 9 - - - 45 - - - Freqency\n(MHz) - - - True - - - 10 - - - 57 - - - Polarity - - - True - - - 11 - - - 25 - - - Chan/\nTransp - - - Channel or transponder number - - - True - - - 12 - - - 45 - - - Satellite - - - True - - - 13 - - - 100 - - - Network\n(ONID) - - - Original Network Identifier - - - True - - - 14 - - - 45 - - - TS ID - - - Transport Stream ID - - - True - - - 15 - - - 40 - - - Service\nID - - - DVB Service ID - - - True - - - 16 - - - 45 - - - PCR\nPID - @Invariant - - - Program Clock Reference Packet-ID - - - True - - - 17 - - - 40 - - - Video\nPID - - - True - - - 18 - - - 40 - - - Audio\nPID - - - True - - - 19 - - - 40 - - - Symbol\nrate - - - True - - - 20 - - - 40 - - - Network\nName - - - True - - - 21 - - - Network\nOperator - - - True - - - 22 - - - Provider - - - True - - - 23 - - - Uid - - - ChanSort internal unique identifier for a channel - - - 120 - - - Order - - - Signal\nsource - - - Debug\ndata - - - 885, 382 - - - 1 - - - gridRight - - - ChanSort.XGridControl, ChanSort, Version=1.0.8359.22033, Culture=neutral, PublicKeyToken=null - - - grpInputList - - - 0 - - - Search for a channel - - - Strikeout - - - 18 - - - 270, 5 - - - 23, 23 - - - 9 - - - Search channel by name - - - btnSearch - - - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - pnlEditControlRight - - - 0 - - - Tahoma, 12pt, style=Bold - - - 312, 8 - - - 372, 19 - - - 8 - - - This is a predefined list and cannot be edited. - - - During the setup of your TV you selected a predefined channel list. Modifying such a list would cause your TV to malfunction. Please run a full channel scan on your TV and do not select any specific provider, satellite or country lists. - - - False - - - lblPredefinedList - - - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - pnlEditControlRight + + 31 1 - - 11 + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - 34, 5 + + - - 23, 23 - - - 6 - - - Remove selected channels from sorted list - - - Remove selected channels from sorted list - - - btnRemoveRight - - - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - pnlEditControlRight - - - 2 - - - Append all currently unsorted channels at the end of the list - - - 71, 5 - - - 121, 23 - - - 5 - - - << Add all - - - Append all currently unsorted channels at the end of the list - - - btnAddAll - - - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - pnlEditControlRight - - - 3 - - - Remove channel filter criteria from complete channel list - - - Strikeout - - - 28 - - - 198, 5 - - - 66, 23 - - - 2 - - - Filter - - - Reset filter - - - btnClearRightFilter - - - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - pnlEditControlRight - - - 4 - - - 39 - - - 5, 5 - - - 23, 23 - - - 4 - - - Add selected channels to sorted list - - - Add selected channels to sorted list - - - btnAdd - - - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - pnlEditControlRight - - - 5 - - + Top - - 2, 23 + + 1 + + + 0, 33 + + + -1 + + + DVB Service ID + + + Toggle Favorite D + + + + + + DevExpress.XtraBars.BarLinkContainerItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + -1 + + + miRemove 885, 33 - + + -1 + + + $this + + + 5, 5 + + + gviewRight + + + True + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colUid1 + + + grpTopPanel + + + Uid + + + 1 + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 132, 5 + + + Favorites D + + + 4 + + + btnToggleFavG + + + Wiki + + + DevExpress.XtraBars.PopupMenu, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + &Remove channels + + + True + + + pnlEditControls + + + -1 + + + 3 + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miRenameChannel + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + pnlEditControls + + + 47 + + + 2 + + + 9 + + + + + + New\nPos + + + 12 + + + DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + Search channel by name + + + 5 + + + Windows Explorer integration + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + btnRemoveLeft + + + Favorites E + + + 5 + + 0 - + + 23, 23 + + + -1 + + + False + + + Delete backup files + + + colServiceTypeName + + + + + + 40 + + + All &character sets... + + + Toggle Favorite H + + + Fill + + + 23, 23 + + + $this + + + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + -1 + + + UTF-16 Big Endian (Unicode MSB first) + + + 3 + + + 16, 16 + + + 4 + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + Freqency\n(MHz) + + + &Language + + + NoBorder + + + True + + + 499, 33 + + + pnlEditControls + + + -1 + + + miTurkish + + + 0, 111 + + + 3 + + + UTF-16 Little Endian (Unicode LSB first) + + pnlEditControlRight - - DevExpress.XtraEditors.PanelControl, DevExpress.Utils.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + 23, 23 - - grpInputList + + Encrypted + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + -1 + + + -1 + + + ±A + + + ChanSort.XGridView, ChanSort, Version=1.0.8368.21374, Culture=neutral, PublicKeyToken=null + + + 185, 6 + + + Convert... + + + Toggle Favorite A + + + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + DevExpress.XtraBars.PopupMenu, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miAllowEditPredefinedLists + + + Service\nType + + + -1 + + + True + + + 2 + + + Lock + + + Favorites + + + -1 + + + colDeleted + + + Default + + + Check for updates + + + 334, 5 + + + + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + pnlEditControls + + + miHungarian + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + Sub List + + + 8 + + + Sor&t channels alphabetically + + + 282, 5 + + + 55 + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + -1 + + + miHideOn + + + -1 + + + mnuFavList + + + + + + DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colNetworkOperator + + + 256, 6 1 - - Fill + + Türkçe - - 0, 0 + + 62, 13 - - 889, 440 + + TS ID - - 0 + + 44 - - Original channels - - - grpInputList - - - DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - splitContainerControl1.Panel2 - - - 0 - - - Panel2 - - - splitContainerControl1.Panel2 - - - DevExpress.XtraEditors.SplitGroupPanel, DevExpress.Utils.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - splitContainerControl1 - - + 1 - - 1402, 440 + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + grpInputList + + + 42 + + + 5 + + + 60 + + + Remove selected channels from sorted list + + + 9 + + + + + + pnlEditControls + + + 40 + + + 6 + + + Numeric + + + Reset filter + + + DevExpress.XtraBars.BarListItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + True + + + 12 + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 4 + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 45 + + + -1 + + + Panel1 + + + -1 + + + 5 + + btnClearRightFilter + + + 4 + + + + + + File &information... + + + 25 + + + + + + -1 + + + Filter + + + popupFavList + + + + + + + + + miFontXLarge + + + + + + Channel name + + + TV-Set + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 40 + + + pnlEditControls + + + Original channels + + + Pr. index + + + pnlEditControlRight + + + DevExpress.XtraBars.Bar, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + + + + When active, all channels after the current one will be automatically renumbered + + + popupContext + + + 503, 440 + splitContainerControl1 - + + Recent files + + + -1 + + + Renumber selected channels sequentially + + + barDockControlRight + + + 6 + + + -1 + + + -1 + + + -1 + + + colOutHide + + + 2 + + + Default + + + XL - Segoe UI 11pt + + + Sorted channels + + splitContainerControl1 + + miIsoCharSets + + + Re&number channels + + + 8 + + + miCheckUpdates + + + + + + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + False + + + Network\n(ONID) + + + lblSetProgramNr + + + -1 + + + -1 + + + Česky + + + + + + 16 + + + 4 + + + 232, 5 + + + RegEx + + + 18 + + + DevExpress.XtraEditors.SplitGroupPanel, DevExpress.Utils.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 5 + + + 1 + + + 0, 551 + + + New\nPos + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + -1 + + + DevExpress.XtraSplashScreen.SplashScreenManager, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + -1 + - DevExpress.XtraEditors.SplitContainerControl, DevExpress.Utils.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SplitContainerControl, DevExpress.Utils.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 45 + + + -1 + + + 0 + + + -1 + + + + + + -1 + + + 23, 23 + + + Apply order from a reference list... + + + -1 + + + + + + System.Windows.Forms.BindingSource, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Bold + + + ChanSort {0} - TV Channel List Editor + + + Add to &Favorites + + + -1 + + + mnuLanguage + + + Search channel by name + + + -1 + + + grpTopPanel + + + 11 + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + True + + + 0 + + + -1 + + + Add channels from reference list... + + + -1 + + + Favorites C + + + pnlEditControlRight + + + Copy list to clipboard + + + + + + 0, 27 + + + DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + -1 + + + colOutLock + + + mnuInputSource + + + 5 + + + Español + + + -1 + + + colSkip + + + &Add channels + + + 3 + + + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miLoadListAfterStart + + + True + + + True + + + ChanSort internal unique identifier for a channel + + + -1 + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + mnuFavList + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + btnToggleFavA + + + miFile + + + rbInsertBefore + + + Inherit + + + -1 + + + btnRenum + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYyMi4xLCBWZXJzaW9uPTIy + LjEuNi4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA + ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li + bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEhlbHAE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC + X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICdEVVDegwMU2acNpw + KphCYAEL + + + + mnuOptions + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYyMi4xLCBWZXJzaW9uPTIy + LjEuNi4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA + ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li + bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAAB09wdGlvbnME/P///wtTeXN0ZW0uR3VpZAsAAAACX2EC + X2ICX2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICXJMOh9nzAkKc + WIeWYGkVXQEL + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYyMi4xLCBWZXJzaW9uPTIy + LjEuNi4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA + ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li + bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEVkaXQE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC + X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICZMTu18lZRU+IqmAu + ZMgcwAEL + + + + System.Windows.Forms.Timer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 60 + + + 34 + + + + + + 10 + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + &Edit + + + Pr# + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + DevExpress.XtraBars.BarDockControl, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + pnlEditControls + + + 23 + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + -1 + + + 48 + + + True + + + 0, 0 + + + + + + Mark for swapping + + + miFontXxLarge + + + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 182, 5 + + + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + $this - + + 21 + + + miSort + + + + + + 63, 5 + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + repositoryItemTextEdit1 + + + Restore backup + + + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + grpTopPanel + + + 22 + + + miOpen + + + Filter + + + + + + Chan/\nTransp + + + 100 + + + + + + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colServiceType + + + mnuAccessibility + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 28 + + + Tahoma, 12pt, style=Bold + + + 13 + + + -1 + + + + + + + + + Locked + + + + + + 13 + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + True + + + miCopyCsv + + + Right + + + + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 9 + + + btnAdd + + + miRenumFavByPrNr + + + System.Windows.Forms.Timer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 1 + + + + + + 23, 23 + + + Left + + + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 16 + + + grpInputList + + + 1 + + + miMoveUp + + + -1 + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + -1 + + + 22 + + + 23, 23 + + + -1 + + + -1 + + + -1 + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + mnuInputSource + + + miSwapWithMarked + + + Move selected channel down + + + 6 + + + + + + pnlEditControls + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + ±H + + + 0, 5 + + + Pr# + + + 0, 0 + + + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + -1 + + + 47, 20 + + + rbInsertAfter + + + ±C + + + 0, 27 + + + 0, 0 + + + -1 + + + DevExpress.XtraTab.XtraTabPage, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + None + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + -1 + + + True + + + Remove from Favorites + + + + + + 21 + + + 7 + + + + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + Opens a submenu for the input source selection. This menu can be directly activated with the F1 key + + + &Print... + + + Right list + + + Split View + + + Show warnings after loading file + + + 9 + + + miRestoreOriginal + + + 322, 18 + + + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + Select &input source + + + gridRight + + + 23, 23 + + + 7 + + + -1 + + + + + + colName + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 1402, 27 + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + ISO character sets + + + pageProgNr + + + ±E + + + cbCloseGap + + + 10 + + + -1 + + + -1 + + + Network\nName + + + 2 + + + 48, 20 + + + + + + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 19 + + + 25 + + + Append all currently unsorted channels at the end of the list + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miGotoLeftList + + + -1 + + + miSelectFavListC + + + globalImageCollection1 + + + DevExpress.XtraBars.BarListItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + Polski + + + -1 + + + 11/29/2022 11:53:50 + + + True + + + Remove channel filter criteria from complete channel list + + + colEncrypted + + + lblInsertMode + + 0 - - 614, 17 - - - 744, 17 - - - 875, 17 + + miFontLarge + + + Append all currently unsorted channels at the end of the list + + + Default + + + colOutSkip + + + 0 + + + &Settings + + + + + + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + -1 + + + miFontSmall + + + 367, 8 + + + True + + + 312, 8 + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 15 + + + 5 + + + 0, 524 + + + miCzech + + + New position + + + -1 + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miOpenReferenceFile + + + + + + 11 + + + DevExpress.XtraEditors.PanelControl, DevExpress.Utils.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miDeleteBackup + + + colTransportStreamId + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + -1 + + + 11 + + + Top, Right + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + Source + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 1 + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + before + + + splitContainerControl1.Panel2 + + + -1 + + + colSatellite + + + 433, 17 1029, 17 + + 308, 17 + + + 875, 17 + 1153, 17 + + 744, 17 + + + True + + + 614, 17 + + + 194, 17 + \ No newline at end of file diff --git a/source/ChanSort/Printing/ReportOptionsDialog.resx b/source/ChanSort/Printing/ReportOptionsDialog.resx index 6a17121..70fc78a 100644 --- a/source/ChanSort/Printing/ReportOptionsDialog.resx +++ b/source/ChanSort/Printing/ReportOptionsDialog.resx @@ -135,7 +135,7 @@ labelControl1 - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -162,7 +162,7 @@ rbSortByNumber - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -186,7 +186,7 @@ rbSortByName - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -210,7 +210,7 @@ labelControl2 - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -229,7 +229,7 @@ 106, 52 - + Combo @@ -243,7 +243,7 @@ fontEdit1 - DevExpress.XtraEditors.FontEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.FontEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -270,7 +270,7 @@ btnPreview - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -297,7 +297,7 @@ btnCancel - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -330,7 +330,7 @@ spinFontSize - DevExpress.XtraEditors.SpinEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SpinEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -363,7 +363,7 @@ spinColumnCount - DevExpress.XtraEditors.SpinEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SpinEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -387,7 +387,7 @@ labelControl3 - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -414,6 +414,6 @@ ReportOptionsDialog - DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a \ No newline at end of file diff --git a/source/ChanSort/Properties/Resources.Designer.cs b/source/ChanSort/Properties/Resources.Designer.cs index 0f7b749..77f3124 100644 --- a/source/ChanSort/Properties/Resources.Designer.cs +++ b/source/ChanSort/Properties/Resources.Designer.cs @@ -165,7 +165,7 @@ namespace ChanSort.Ui.Properties { } /// - /// Looks up a localized string similar to Copy channel list: Order the channels the same way as in a reference list. + /// Looks up a localized string similar to Apply template: Order the channels the same way as in another list. /// internal static string MainForm_InitInitialChannelOrder_ReferenceList { get { @@ -286,6 +286,33 @@ namespace ChanSort.Ui.Properties { } } + /// + /// Looks up a localized string similar to There is no DIRECT way to convert a channel list to a different format, but you can: + /// + ///- run a channel search on your second TV, + ///- export the list to USB, + ///- open that list in ChanSort, + ///- choose "Apply template", + ///- select this list here as the template. + /// + ///If the two TVs use similar sub-lists for Antenna/Cable/Sat/TV/radio, the order can be applied automatically. + ///Otherwise manual input is needed to assign TV/radio channels to specific starting numbers.. + /// + internal static string MainForm_miConvert_MessageBody { + get { + return ResourceManager.GetString("MainForm_miConvert_MessageBody", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Convert channel list. + /// + internal static string MainForm_miConvert_MessageHeader { + get { + return ResourceManager.GetString("MainForm_miConvert_MessageHeader", resourceCulture); + } + } + /// /// Looks up a localized string similar to You are about to restore the backup file. All changes will be lost! ///Do you want to continue?. diff --git a/source/ChanSort/Properties/Resources.de.resx b/source/ChanSort/Properties/Resources.de.resx index 4c6d529..bc1f3c0 100644 --- a/source/ChanSort/Properties/Resources.de.resx +++ b/source/ChanSort/Properties/Resources.de.resx @@ -297,4 +297,19 @@ Mögliche Ursachen sind USB-Sticks, die mit NTFS formatiert sind (FAT32 sollte i TVs exportieren oft defekte Dateien auf USB Sticks, die mit NTFS formatiert sind. Bitte versuchen Sie, die Senderliste auf einen Stick mit FAT32 Formatierung zu exportieren. + + Es gibt keinen DIREKTEN Weg, um eine Senderliste in ein anderes Format zu konvertieren, aber Sie KÖNNEN: + +- einen Sendersuchlauf auf dem zweiten TV ausführen, +- die Liste auf USB exportieren, +- die Liste in ChanSort öffnen, +- die Option "Vorlage übernehmen" auswählen +- die aktuelle Liste als Vorlage auswählen. + +Wenn die beiden TVs ähnliche Unterlisten für Antenne/Kabel/Sat/TV/Radio verwenden, kann die Übernahme automatisch erfolgen. +Anderfalls ist eine manuelle Eingabe nötig um TV- und Radio-Sendern bestimmte Startnummern zuzuweisen. + + + Senderliste konvertieren + \ No newline at end of file diff --git a/source/ChanSort/Properties/Resources.resx b/source/ChanSort/Properties/Resources.resx index 7b94dcd..1b2bfe5 100644 --- a/source/ChanSort/Properties/Resources.resx +++ b/source/ChanSort/Properties/Resources.resx @@ -232,7 +232,7 @@ Do you want to open the download website? Modify current list: Start with current list and modify it as needed - Copy channel list: Order the channels the same way as in a reference list + Apply template: Order the channels the same way as in another list What should happen to unsorted channels? @@ -301,4 +301,19 @@ or firmware upgrades without running a new channel scan. TVs often export corrupted files to USB sticks formatted with the NTFS file system. Please try exporting to a stick formatted with FAT32 + + There is no DIRECT way to convert a channel list to a different format, but you can: + +- run a channel search on your second TV, +- export the list to USB, +- open that list in ChanSort, +- choose "Apply template", +- select this list here as the template. + +If the two TVs use similar sub-lists for Antenna/Cable/Sat/TV/radio, the order can be applied automatically. +Otherwise manual input is needed to assign TV/radio channels to specific starting numbers. + + + Convert channel list + \ No newline at end of file diff --git a/source/ChanSort/Properties/licenses.licx b/source/ChanSort/Properties/licenses.licx index b642fc9..fa657b2 100644 --- a/source/ChanSort/Properties/licenses.licx +++ b/source/ChanSort/Properties/licenses.licx @@ -1,6 +1,5 @@ -DevExpress.XtraEditors.Repository.RepositoryItemTextEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.PictureEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraBars.BarManager, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.Repository.RepositoryItemTextEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.PictureEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraBars.BarManager, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/source/ChanSort/ReferenceListForm.resx b/source/ChanSort/ReferenceListForm.resx index b68914c..5e77d86 100644 --- a/source/ChanSort/ReferenceListForm.resx +++ b/source/ChanSort/ReferenceListForm.resx @@ -135,7 +135,7 @@ labelControl1 - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a tabPage1 @@ -153,7 +153,7 @@ 133, 17 - + Ellipsis @@ -195,7 +195,7 @@ edFile - DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a tabPage1 @@ -203,7 +203,7 @@ 1 - + Vertical @@ -225,7 +225,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...) labelControl2 - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a tabPage1 @@ -252,7 +252,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...) rbAuto - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a tabPage2 @@ -279,7 +279,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...) rbManual - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a tabPage2 @@ -303,7 +303,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...) labelControl3 - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpManual @@ -327,7 +327,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...) comboSource - DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpManual @@ -351,7 +351,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...) comboTarget - DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpManual @@ -375,7 +375,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...) labelControl4 - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpManual @@ -399,7 +399,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...) cbTv - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpManual @@ -423,7 +423,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...) cbRadio - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpManual @@ -447,7 +447,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...) labelControl5 - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpManual @@ -474,7 +474,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...) labelControl6 - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpManual @@ -530,7 +530,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...) comboPrNr - DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpManual @@ -557,7 +557,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...) cbData - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpManual @@ -581,7 +581,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...) cbConsecutive - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpManual @@ -605,7 +605,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...) cbIp - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpManual @@ -629,7 +629,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...) cbSat - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpManual @@ -653,7 +653,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...) labelControl11 - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpManual @@ -677,7 +677,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...) cbAntenna - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpManual @@ -701,7 +701,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...) cbCable - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpManual @@ -725,7 +725,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...) labelControl9 - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpManual @@ -749,7 +749,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...) cbAnalog - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpManual @@ -773,7 +773,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...) cbDigital - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpManual @@ -798,7 +798,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...) lblTargetInfo - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpManual @@ -823,7 +823,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...) lblSourceInfo - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpManual @@ -847,7 +847,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...) labelControl7 - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpManual @@ -874,7 +874,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...) btnApply - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpManual @@ -901,7 +901,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...) grpManual - DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a tabPage2 @@ -928,7 +928,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...) btnOk - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -955,7 +955,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...) btnClose - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -979,7 +979,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...) linkWiki - DevExpress.XtraEditors.HyperlinkLabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.HyperlinkLabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a tabPage1 @@ -1010,7 +1010,7 @@ This step can be repeated as needed. labelControl10 - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a tabPage2 @@ -1038,7 +1038,7 @@ This step can be repeated as needed. labelControl8 - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a tabPage2 @@ -1062,7 +1062,7 @@ This step can be repeated as needed. tabPage1 - DevExpress.XtraTab.XtraTabPage, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraTab.XtraTabPage, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a tabControl @@ -1086,7 +1086,7 @@ This step can be repeated as needed. tabPage2 - DevExpress.XtraTab.XtraTabPage, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraTab.XtraTabPage, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a tabControl @@ -1098,7 +1098,7 @@ This step can be repeated as needed. tabControl - DevExpress.XtraTab.XtraTabControl, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraTab.XtraTabControl, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -1125,7 +1125,7 @@ This step can be repeated as needed. ReferenceListForm - DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a Data/Other diff --git a/source/ChanSort/SkinPickerForm.resx b/source/ChanSort/SkinPickerForm.resx index 1941991..b0c8e97 100644 --- a/source/ChanSort/SkinPickerForm.resx +++ b/source/ChanSort/SkinPickerForm.resx @@ -128,7 +128,7 @@ 0 - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a btnOk @@ -143,10 +143,10 @@ galleryControlClient1 - DevExpress.XtraBars.Ribbon.GalleryControl, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.Ribbon.GalleryControl, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - DevExpress.XtraBars.Ribbon.GalleryControlClient, DevExpress.XtraBars.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.Ribbon.GalleryControlClient, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a @@ -156,7 +156,7 @@ 0 - DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a 984, 562 @@ -175,7 +175,7 @@ 2 - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a 984, 527 @@ -196,7 +196,7 @@ CenterScreen - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a 1 @@ -214,7 +214,7 @@ 1 - DevExpress.XtraEditors.PanelControl, DevExpress.Utils.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.PanelControl, DevExpress.Utils.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a SkinPickerForm diff --git a/source/ChanSort/WaitForm1.resx b/source/ChanSort/WaitForm1.resx index 628c552..50b321d 100644 --- a/source/ChanSort/WaitForm1.resx +++ b/source/ChanSort/WaitForm1.resx @@ -145,7 +145,7 @@ 0, 14, 0, 14 - DevExpress.XtraWaitForm.WaitForm, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraWaitForm.WaitForm, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a WaitForm1 @@ -227,7 +227,7 @@ Horizontal - DevExpress.XtraWaitForm.ProgressPanel, DevExpress.XtraEditors.v22.1, Version=22.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraWaitForm.ProgressPanel, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a Horizontal diff --git a/source/Images/imagelist/0012.png b/source/Images/imagelist/0012.png index 51eb50e..8b965c7 100644 Binary files a/source/Images/imagelist/0012.png and b/source/Images/imagelist/0012.png differ diff --git a/source/Images/imagelist/0050.png b/source/Images/imagelist/0050.png new file mode 100644 index 0000000..6e0e765 Binary files /dev/null and b/source/Images/imagelist/0050.png differ diff --git a/source/Test.Loader.CmdbBin/CmdbBinTest.cs b/source/Test.Loader.CmdbBin/CmdbBinTest.cs index 08ac6a1..a74d0be 100644 --- a/source/Test.Loader.CmdbBin/CmdbBinTest.cs +++ b/source/Test.Loader.CmdbBin/CmdbBinTest.cs @@ -57,8 +57,8 @@ namespace Test.Loader.CmdbBin public void TestChangHongDvbS() { // load existing file and make assertions - TestUtils.DeploymentItem(@"Test.Loader.CmdbBin\TestFiles\TestChangHongDvbS\atv_cmdb_cable.bin"); - var path = TestUtils.DeploymentItem(@"Test.Loader.CmdbBin\TestFiles\TestChangHongDvbS\dtv_cmdb_2.bin"); + TestUtils.DeploymentItem(@"Test.Loader.CmdbBin\TestFiles\ChangHongDvbS\atv_cmdb_cable.bin"); + var path = TestUtils.DeploymentItem(@"Test.Loader.CmdbBin\TestFiles\ChangHongDvbS\dtv_cmdb_2.bin"); var ser = new CmdbFileSerializer(path); ser.Load(); ser.DataRoot.ApplyCurrentProgramNumbers(); diff --git a/source/Test.Loader.Samsung/Scm/SamsungScmTest.cs b/source/Test.Loader.Samsung/Scm/SamsungScmTest.cs index 8b48f7d..15cd177 100644 --- a/source/Test.Loader.Samsung/Scm/SamsungScmTest.cs +++ b/source/Test.Loader.Samsung/Scm/SamsungScmTest.cs @@ -45,7 +45,7 @@ namespace Test.Loader.Samsung.Scm var models = new Dictionary(); foreach (var file in list) { - if (file.Contains("Apu TV")) // files in this dir are renamed and the format can't be detected automatically + if (file.Contains("Apu TV") || file.Contains("__broken")) continue; Debug.Print("Testing " + file); @@ -67,6 +67,7 @@ namespace Test.Loader.Samsung.Scm var hdplusChannelList = serializer.DataRoot.GetChannelList(ChanSort.Api.SignalSource.HdPlusD | ChanSort.Api.SignalSource.Tv); var freesatChannelList = serializer.DataRoot.GetChannelList(ChanSort.Api.SignalSource.FreesatD | ChanSort.Api.SignalSource.Tv); var tivusatChannelList = serializer.DataRoot.GetChannelList(ChanSort.Api.SignalSource.TivuSatD | ChanSort.Api.SignalSource.Tv); + var iptvChannelList = serializer.DataRoot.GetChannelList(ChanSort.Api.SignalSource.IP | SignalSource.Tv); string key = serializer.Series + "\t" + model + @@ -83,6 +84,7 @@ namespace Test.Loader.Samsung.Scm "\t" + (hdplusChannelList != null && hdplusChannelList.Count > 0) + "\t" + (freesatChannelList != null && freesatChannelList.Count > 0) + "\t" + (tivusatChannelList != null && tivusatChannelList.Count > 0) + + "\t" + (iptvChannelList != null && iptvChannelList.Count > 0) + "\t" + serializer.SatDatabaseVersion; string relPath = Path.GetFileName(Path.GetDirectoryName(file)) + "\\" + fileName; models[key] = serializer.Series + @@ -101,6 +103,7 @@ namespace Test.Loader.Samsung.Scm "\t" + (hdplusChannelList == null ? 0 : hdplusChannelList.Count) + "\t" + (freesatChannelList == null ? 0 : freesatChannelList.Count) + "\t" + (tivusatChannelList == null ? 0 : tivusatChannelList.Count) + + "\t" + (iptvChannelList == null ? 0 : iptvChannelList.Count) + "\t" + relPath; Assert.IsFalse(serializer.DataRoot.IsEmpty, "No channels loaded from " + file); diff --git a/source/Test.Loader.Samsung/Zip/SamsungZipTest.cs b/source/Test.Loader.Samsung/Zip/SamsungZipTest.cs index dd845a1..fd7e0d7 100644 --- a/source/Test.Loader.Samsung/Zip/SamsungZipTest.cs +++ b/source/Test.Loader.Samsung/Zip/SamsungZipTest.cs @@ -1,4 +1,10 @@ -using System.Linq; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System; +using System.Linq; +using System.Text; +using ChanSort; using ChanSort.Api; using ChanSort.Loader.Samsung; using Microsoft.VisualStudio.TestTools.UnitTesting; @@ -6,13 +12,13 @@ using Microsoft.VisualStudio.TestTools.UnitTesting; namespace Test.Loader.Samsung.Zip { [TestClass] - public class SamsungZipTest + public class SamsungZipTest : LoaderTestBase { #region TestSatChannelsAddedToCorrectLists [TestMethod] public void TestSatChannelsAddedToCorrectLists() { - this.TestChannelsAddedToCorrectLists("Channel_list_T-KTSUDEUC-1007.1.zip", SignalSource.DvbS, 1323, 878, 380, 4008, "Humax ESD 160C"); + TestChannelsAddedToCorrectLists("Channel_list_T-KTSUDEUC-1007.1.zip", SignalSource.DvbS, 1323, 878, 380, 4008, "Humax ESD 160C"); } #endregion @@ -20,7 +26,7 @@ namespace Test.Loader.Samsung.Zip [TestMethod] public void TestCableChannelsAddedToCorrectLists() { - this.TestChannelsAddedToCorrectLists("Channel_list_T-KTMDEUC-1132.6.zip", SignalSource.DvbC, 146, 65, 75, 4008, "Humax 160C"); + TestChannelsAddedToCorrectLists("Channel_list_T-KTMDEUC-1132.6.zip", SignalSource.DvbC, 146, 65, 75, 4008, "Humax 160C"); } #endregion @@ -28,7 +34,7 @@ namespace Test.Loader.Samsung.Zip [TestMethod] public void TestAntennaChannelsAddedToCorrectLists() { - this.TestChannelsAddedToCorrectLists("Channel_list_T-KTSUDEUC-1007.2.zip", SignalSource.DvbT, 77, 71, 4, 3995, "Irdeto Code 4"); + TestChannelsAddedToCorrectLists("Channel_list_T-KTSUDEUC-1007.2.zip", SignalSource.DvbT, 77, 71, 4, 3995, "Irdeto Code 4"); } #endregion @@ -113,5 +119,136 @@ namespace Test.Loader.Samsung.Zip RoundtripTest.TestChannelAndFavListEditing(tempFile, new SamsungPlugin()); } #endregion + + + // unstructured test crawling through all files in the sample directories + + #region InitExpectedSamsungData() + private Dictionary InitExpectedSamsungData() + { + var expected = new ExpectedData[] + { + //new ExpectedData(@"catmater_B\Clone.scm", 31, 272, 0, 0, 0) , + //new ExpectedData(@"easy2003_B\easy2003_B.scm", 0, 0, 1225, 0, 0) , + //new ExpectedData(@"_Manu_C\channel_list_LE40C650_1001.scm", 0, 9, 0, 0, 0) + }; + + var dict = new Dictionary(StringComparer.InvariantCultureIgnoreCase); + foreach (var entry in expected) + dict[entry.File] = entry; + return dict; + } + + #endregion + + #region TestSamsungScmLoader() + [TestMethod] + [DeploymentItem("ChanSort.Loader.Samsung\\ChanSort.Loader.Samsung.ini")] + public void TestSamsungZipLoader() + { + var expectedData = InitExpectedSamsungData(); + SamsungPlugin plugin = new SamsungPlugin(); + + StringBuilder errors = new StringBuilder(); + var list = FindAllFiles("TestFiles_Samsung", "*.zip"); + var models = new Dictionary(); + foreach (var file in list) + { + var lower = file.ToLowerInvariant(); + if (lower.Contains("clone.zip") || lower.Contains("__broken")) + continue; + + Debug.Print("Testing " + file); + try + { + var serializer = plugin.CreateSerializer(file) as ChanSort.Loader.Samsung.Zip.DbSerializer; + Assert.IsNotNull(serializer, "No Serializer for " + file); + + serializer.Load(); + + var fileName = Path.GetFileName(file) ?? ""; + var model = GetSamsungModel(file); + var analogAirList = serializer.DataRoot.GetChannelList(SignalSource.AnalogT | SignalSource.Tv); + var analogCableList = serializer.DataRoot.GetChannelList(SignalSource.AnalogC | SignalSource.Tv); + var digitalAirList = serializer.DataRoot.GetChannelList(SignalSource.DvbT | SignalSource.Tv); + var digitalCableList = serializer.DataRoot.GetChannelList(SignalSource.DvbC | SignalSource.Tv); + var satChannelList = serializer.DataRoot.GetChannelList(SignalSource.DvbS | SignalSource.Tv); + var primeChannelList = serializer.DataRoot.GetChannelList(SignalSource.CablePrimeD | SignalSource.Tv); + var hdplusChannelList = serializer.DataRoot.GetChannelList(SignalSource.HdPlusD | SignalSource.Tv); + var freesatChannelList = serializer.DataRoot.GetChannelList(SignalSource.FreesatD | SignalSource.Tv); + var tivusatChannelList = serializer.DataRoot.GetChannelList(SignalSource.TivuSatD | SignalSource.Tv); + var iptvChannelList = serializer.DataRoot.GetChannelList(SignalSource.IP | SignalSource.Tv); + + string key = serializer.FileFormatVersion + + "\t" + model + + "\t" + (analogAirList != null && analogAirList.Count > 0) + + "\t" + (analogCableList != null && analogCableList.Count > 0) + + "\t" + (digitalAirList != null && digitalAirList.Count > 0) + + "\t" + (digitalCableList != null && digitalCableList.Count > 0) + + "\t" + (primeChannelList != null && primeChannelList.Count > 0) + + "\t" + (satChannelList != null && satChannelList.Count > 0) + + "\t" + (hdplusChannelList != null && hdplusChannelList.Count > 0) + + "\t" + (freesatChannelList != null && freesatChannelList.Count > 0) + + "\t" + (tivusatChannelList != null && tivusatChannelList.Count > 0) + + "\t" + (iptvChannelList != null && iptvChannelList.Count > 0); + string relPath = Path.GetFileName(Path.GetDirectoryName(file)) + "\\" + fileName; + models[key] = serializer.FileFormatVersion + + "\t" + model + + "\t" + (analogAirList == null ? 0 : analogAirList.Count) + + "\t" + (analogCableList == null ? 0 : analogCableList.Count) + + "\t" + (digitalAirList == null ? 0 : digitalAirList.Count) + + "\t" + (digitalCableList == null ? 0 : digitalCableList.Count) + + "\t" + (primeChannelList == null ? 0 : primeChannelList.Count) + + "\t" + (satChannelList == null ? 0 : satChannelList.Count) + + "\t" + (hdplusChannelList == null ? 0 : hdplusChannelList.Count) + + "\t" + (freesatChannelList == null ? 0 : freesatChannelList.Count) + + "\t" + (tivusatChannelList == null ? 0 : tivusatChannelList.Count) + + "\t" + (iptvChannelList == null ? 0 : iptvChannelList.Count) + + "\t" + relPath; + + Assert.IsFalse(serializer.DataRoot.IsEmpty, "No channels loaded from " + file); + + ExpectedData exp; + key = Path.GetFileName(Path.GetDirectoryName(file)) + "\\" + Path.GetFileName(file); + if (expectedData.TryGetValue(key, out exp)) + { + var analogTv = serializer.DataRoot.GetChannelList(SignalSource.AnalogC); + var dtvTv = serializer.DataRoot.GetChannelList(SignalSource.DvbC); + var satTv = serializer.DataRoot.GetChannelList(SignalSource.DvbS); + expectedData.Remove(key); + if (exp.AnalogChannels != 0 || analogTv != null) + Assert.AreEqual(exp.AnalogChannels, analogTv.Channels.Count, file + ": analog"); + if (exp.DtvChannels != 0 || dtvTv != null) + Assert.AreEqual(exp.DtvChannels, dtvTv.Channels.Count, file + ": DTV"); + if (exp.SatChannels != 0 || satTv != null) + Assert.AreEqual(exp.SatChannels, satTv.Channels.Count, file + ": Sat"); + } + } + catch (Exception ex) + { + if (ex is LoaderException lex && lex.Recovery == LoaderException.RecoveryMode.TryNext) + continue; + errors.AppendLine(); + errors.AppendLine(); + errors.AppendLine(file); + errors.AppendLine(ex.ToString()); + } + } + + foreach (var model in models.OrderBy(e => e.Key)) + Debug.WriteLine(model.Value); + + if (expectedData.Count > 0) + Assert.Fail("Some files were not tested: " + expectedData.Keys.Aggregate((prev, cur) => prev + "," + cur)); + Assert.AreEqual("", errors.ToString()); + } + + private string GetSamsungModel(string filePath) + { + string fileName = Path.GetFileNameWithoutExtension(filePath) ?? ""; + return fileName.StartsWith("channel_list_") ? fileName.Substring(13, fileName.IndexOf('_', 14) - 13) : fileName; + } + #endregion + } } diff --git a/source/Translation.xlsx b/source/Translation.xlsx index 2404c77..6c15b1e 100644 Binary files a/source/Translation.xlsx and b/source/Translation.xlsx differ