From 5ca4a7c2253b6bba7d55170a5bf4cda635f20cae Mon Sep 17 00:00:00 2001 From: hbeham Date: Mon, 29 Apr 2013 00:35:40 +0200 Subject: [PATCH] - rewrote LG data file cleanup. Now it complete rewrites the DVB-S channel information - fixed opening editor when typing on keyboard - persisting more user settings --- ChanSort.Api/Controller/SerializerBase.cs | 3 + ChanSort.Api/Model/ChannelList.cs | 16 + ChanSort.Api/Model/Transponder.cs | 2 +- ChanSort.Api/Utils/Tools.cs | 13 +- .../ChanSort.Loader.LG.ini | 6 + ChanSort.Loader.TllFile/DvbsDataLayout.cs | 9 + ChanSort.Loader.TllFile/SatChannel.cs | 1 + ChanSort.Loader.TllFile/SatTransponder.cs | 67 +- ChanSort.Loader.TllFile/TllChannelBase.cs | 2 +- ChanSort.Loader.TllFile/TllFileSerializer.cs | 249 +- ChanSort/MainForm.Designer.cs | 208 +- ChanSort/MainForm.cs | 35 +- ChanSort/MainForm.de.resx | 324 +- ChanSort/MainForm.resx | 4412 ++++++++--------- ChanSort/Properties/Settings.Designer.cs | 36 + ChanSort/Properties/Settings.settings | 9 + ChanSort/app.config | 9 + readme.txt | 19 +- 18 files changed, 2530 insertions(+), 2890 deletions(-) diff --git a/ChanSort.Api/Controller/SerializerBase.cs b/ChanSort.Api/Controller/SerializerBase.cs index aa8eb9a..9781b9a 100644 --- a/ChanSort.Api/Controller/SerializerBase.cs +++ b/ChanSort.Api/Controller/SerializerBase.cs @@ -9,6 +9,7 @@ namespace ChanSort.Api public bool EraseChannelData { get; set; } public bool ChannelNameEdit { get; set; } public bool FileInformation { get; set; } + public bool CleanUpChannelData { get; set; } public bool DeviceSettings { get; set; } } @@ -43,5 +44,7 @@ namespace ChanSort.Api public virtual string GetFileInformation() { return ""; } public virtual void ShowDeviceSettingsForm(object parentWindow) { } + + public virtual string CleanUpChannelData() { return ""; } } } diff --git a/ChanSort.Api/Model/ChannelList.cs b/ChanSort.Api/Model/ChannelList.cs index 279c385..0baf409 100644 --- a/ChanSort.Api/Model/ChannelList.cs +++ b/ChanSort.Api/Model/ChannelList.cs @@ -127,5 +127,21 @@ namespace ChanSort.Api return this.channels.Where(c => c.NewProgramNr == newProgNr).ToList(); } #endregion + + #region RemoveChannel() + public void RemoveChannel(ChannelInfo channel) + { + this.channels.Remove(channel); + var list = this.channelByUid.TryGet(channel.Uid); + if (list != null && list.Contains(channel)) + list.Remove(channel); + list = this.channelByName.TryGet(channel.Name); + if (list != null && list.Contains(channel)) + list.Remove(channel); + var chan = this.channelByProgNr.TryGet(channel.OldProgramNr); + if (ReferenceEquals(chan, channel)) + this.channelByProgNr.Remove(channel.OldProgramNr); + } + #endregion } } diff --git a/ChanSort.Api/Model/Transponder.cs b/ChanSort.Api/Model/Transponder.cs index c1191d5..ad47bae 100644 --- a/ChanSort.Api/Model/Transponder.cs +++ b/ChanSort.Api/Model/Transponder.cs @@ -8,7 +8,7 @@ public Satellite Satellite { get; set; } public decimal FrequencyInMhz { get; set; } public int Number { get; set; } - public int SymbolRate { get; set; } + public virtual int SymbolRate { get; set; } public char Polarity { get; set; } public int OriginalNetworkId { get; set; } public int TransportStreamId { get; set; } diff --git a/ChanSort.Api/Utils/Tools.cs b/ChanSort.Api/Utils/Tools.cs index 56da207..6e206c8 100644 --- a/ChanSort.Api/Utils/Tools.cs +++ b/ChanSort.Api/Utils/Tools.cs @@ -1,5 +1,4 @@ using System.Collections.Generic; -using System.Text; namespace ChanSort.Api { @@ -38,5 +37,17 @@ namespace ChanSort.Api data[offset + 2] = (byte)(value >> 16); data[offset + 3] = (byte)(value >> 24); } + + public static void MemCopy(byte[] source, int sourceIndex, byte[] dest, int destIndex, int count) + { + for (int i = 0; i < count; i++) + dest[destIndex + i] = source[sourceIndex + i]; + } + + public static void MemSet(byte[] data, int offset, byte value, int count) + { + for (int i = 0; i < count; i++) + data[offset++] = value; + } } } diff --git a/ChanSort.Loader.TllFile/ChanSort.Loader.LG.ini b/ChanSort.Loader.TllFile/ChanSort.Loader.LG.ini index 0b68aa0..65da27a 100644 --- a/ChanSort.Loader.TllFile/ChanSort.Loader.LG.ini +++ b/ChanSort.Loader.TllFile/ChanSort.Loader.LG.ini @@ -208,6 +208,9 @@ lnbLength = 52 [TransponderDataMapping:40] + offFirstChannelIndex = 0 + offLastChannelIndex = 2 + offChannelCount = 4 offTransponderIndex = 10 offFrequency = 12 offOriginalNetworkId = 18 @@ -217,6 +220,9 @@ symbolRateFactor = 1 [TransponderDataMapping:56] + offFirstChannelIndex = 0 + offLastChannelIndex = 2 + offChannelCount = 4 offTransponderIndex = 10 offFrequency = 12 offOriginalNetworkId = 22 diff --git a/ChanSort.Loader.TllFile/DvbsDataLayout.cs b/ChanSort.Loader.TllFile/DvbsDataLayout.cs index 2d28235..a1b7c4c 100644 --- a/ChanSort.Loader.TllFile/DvbsDataLayout.cs +++ b/ChanSort.Loader.TllFile/DvbsDataLayout.cs @@ -42,6 +42,14 @@ this.dvbsBlockTotalLength += len + 4; } + /// + /// relative to start of DVBS-Block (including the intial 4 length bytes) + /// + public int TransponderTableOffset + { + get { return 4 + 4 + dvbsSubblockLength[0] + 4 + dvbsSubblockLength[1] + sizeOfTransponderBlockHeader; } + } + /// /// relative to start of DVBS-Block (including the intial 4 length bytes) /// @@ -68,5 +76,6 @@ get { return SequenceTableOffset + dvbsMaxChannelCount*sizeOfChannelLinkedListEntry; } } + } } diff --git a/ChanSort.Loader.TllFile/SatChannel.cs b/ChanSort.Loader.TllFile/SatChannel.cs index b9c2194..3156e67 100644 --- a/ChanSort.Loader.TllFile/SatChannel.cs +++ b/ChanSort.Loader.TllFile/SatChannel.cs @@ -22,6 +22,7 @@ namespace ChanSort.Loader.LG Transponder transponder = dataRoot.Transponder.TryGet(transponderIndex); Satellite sat = transponder.Satellite; + this.Transponder = transponder; this.Satellite = sat.Name; this.SatPosition = sat.OrbitalPosition; this.RecordOrder = order; diff --git a/ChanSort.Loader.TllFile/SatTransponder.cs b/ChanSort.Loader.TllFile/SatTransponder.cs index 50a2f01..587ecc1 100644 --- a/ChanSort.Loader.TllFile/SatTransponder.cs +++ b/ChanSort.Loader.TllFile/SatTransponder.cs @@ -1,10 +1,15 @@ -using System.Globalization; +#define SYMBOL_RATE_ROUNDING + +using System.Globalization; using ChanSort.Api; namespace ChanSort.Loader.LG { - internal class SatTransponder + internal class SatTransponder : Transponder { + private const string _FirstChannelIndex = "offFirstChannelIndex"; + private const string _LastChannelIndex = "offLastChannelIndex"; + private const string _ChannelCount = "offChannelCount"; private const string _Frequency = "offFrequency"; private const string _OriginalNetworkId = "offOriginalNetworkId"; private const string _TransportStreamId = "offTransportStreamId"; @@ -15,30 +20,70 @@ namespace ChanSort.Loader.LG private readonly byte[] data; private readonly int offset; private int symbolRate; + private int firstChannelIndex; + private int lastChannelIndex; - public SatTransponder(DataMapping mapping) + public SatTransponder(int index, DataMapping mapping, DataRoot dataRoot) : base(index) { this.mapping = mapping; this.data = mapping.Data; this.offset = mapping.BaseOffset; - this.Frequency = mapping.GetWord(_Frequency); + this.firstChannelIndex = mapping.GetWord(_FirstChannelIndex); + this.lastChannelIndex = mapping.GetWord(_LastChannelIndex); + + this.FrequencyInMhz = mapping.GetWord(_Frequency); this.OriginalNetworkId = mapping.GetWord(_OriginalNetworkId); this.TransportStreamId = mapping.GetWord(_TransportStreamId); - this.symbolRate = mapping.GetWord(_SymbolRate); + this.symbolRate = mapping.GetWord(_SymbolRate) & 0x7FFF; + +#if SYMBOL_RATE_ROUNDING + if (this.symbolRate%100 >= 95) + { + this.symbolRate = (this.symbolRate/100 + 1)*100; + mapping.SetWord(_SymbolRate, (mapping.GetWord(_SymbolRate) & 0x8000) + this.symbolRate); + } +#endif + string strFactor = mapping.Settings.GetString("symbolRateFactor"); decimal factor; if (!string.IsNullOrEmpty(strFactor) && decimal.TryParse(strFactor, NumberStyles.AllowDecimalPoint, NumberFormatInfo.InvariantInfo, out factor)) this.symbolRate = (int)(this.symbolRate * factor); - this.SatIndex = mapping.GetByte(_SatIndex); + this.Satellite = dataRoot.Satellites.TryGet(mapping.GetByte(_SatIndex)/2); } - public int Frequency { get; private set; } - public int OriginalNetworkId { get; private set; } - public int TransportStreamId { get; private set; } - public int SatIndex { get; private set; } + public int FirstChannelIndex + { + get { return this.firstChannelIndex; } + set + { + mapping.SetDataPtr(this.data, this.offset); + mapping.SetWord(_FirstChannelIndex, value); + this.firstChannelIndex = value; + } + } - public int SymbolRate + public int LastChannelIndex + { + get { return lastChannelIndex; } + set + { + mapping.SetDataPtr(this.data, this.offset); + mapping.SetWord(_LastChannelIndex, value); + this.lastChannelIndex = value; + } + } + + public int ChannelCount + { + set + { + mapping.SetDataPtr(this.data, this.offset); + mapping.SetWord(_ChannelCount, value); + } + } + + public override int SymbolRate { get { return symbolRate; } set diff --git a/ChanSort.Loader.TllFile/TllChannelBase.cs b/ChanSort.Loader.TllFile/TllChannelBase.cs index bd508ed..3b5fb5c 100644 --- a/ChanSort.Loader.TllFile/TllChannelBase.cs +++ b/ChanSort.Loader.TllFile/TllChannelBase.cs @@ -30,7 +30,7 @@ namespace ChanSort.Loader.LG protected readonly DataMapping mapping; protected readonly byte[] rawData; - internal readonly int baseOffset; + internal int baseOffset; protected TllChannelBase(DataMapping data) { diff --git a/ChanSort.Loader.TllFile/TllFileSerializer.cs b/ChanSort.Loader.TllFile/TllFileSerializer.cs index 79fccf2..a756fde 100644 --- a/ChanSort.Loader.TllFile/TllFileSerializer.cs +++ b/ChanSort.Loader.TllFile/TllFileSerializer.cs @@ -1,4 +1,4 @@ -#define SYMBOL_RATE_ROUNDING +//#define SYMBOL_RATE_ROUNDING //#define STORE_DVBS_CHANNELS_IN_DATABASE //#define TESTING_LM640T_HACK @@ -73,6 +73,7 @@ namespace ChanSort.Loader.LG this.Features.EraseChannelData = true; this.Features.FileInformation = true; this.Features.DeviceSettings = true; + this.Features.CleanUpChannelData = true; this.SupportedTvCountryCodes = new List { "___ (None)", "AUT (Austria)", "BEL (Belgium)", "CHE (Switzerland)", @@ -138,6 +139,9 @@ namespace ChanSort.Loader.LG this.ReadDvbSBlock(ref off); this.ReadSettingsBlock(ref off); + if (this.EraseDuplicateChannels) + this.CleanUpChannelData(); + #if STORE_DVBS_CHANNELS_IN_DATABASE this.StoreToDatabase(); #endif @@ -331,7 +335,7 @@ namespace ChanSort.Loader.LG this.dvbsChannelCount = header.ChannelCount; off += header.Size; off += satConfig.dvbsMaxChannelCount/8; // skip allocation bitmap - this.ReadDvbsChannelLinkedList(ref off); + this.ReadDvbsChannelLinkedList(header, ref off); this.ReadDvbsChannels(ref off, header.LinkedListStartIndex); @@ -379,24 +383,13 @@ namespace ChanSort.Loader.LG for (int i=0; i= 95) - data.SymbolRate = (ushort)((data.SymbolRate & 0x8000) | ((sr / 100 + 1) * 100)); -#endif - - Transponder transponder = new Transponder(i); - transponder.FrequencyInMhz = data.Frequency; - transponder.OriginalNetworkId = data.OriginalNetworkId; - transponder.TransportStreamId = data.TransportStreamId; - transponder.SymbolRate = data.SymbolRate & 0x7FFF; - if (data.SymbolRate == 11000) + if (transponder.SymbolRate == 11000) this.isDvbsSymbolRateDiv2 = true; - var sat = this.DataRoot.Satellites.TryGet(data.SatIndex/2); + var sat = transponder.Satellite; this.DataRoot.AddTransponder(sat, transponder); } @@ -411,16 +404,16 @@ namespace ChanSort.Loader.LG #endregion #region ReadDvbsChannelLinkedList() - private void ReadDvbsChannelLinkedList(ref int off) + private void ReadDvbsChannelLinkedList(SatChannelListHeader header, ref int off) { this.nextChannelIndex = new Dictionary(); - for (int i = 0; i < satConfig.dvbsMaxChannelCount; i++) + int index = header.LinkedListStartIndex; + while (index != 0xFFFF) { - int offEntry = off + i*satConfig.sizeOfChannelLinkedListEntry; - int cur = BitConverter.ToUInt16(fileContent, offEntry + 4); - if (cur != i) - break; - this.nextChannelIndex.Add(cur, BitConverter.ToUInt16(fileContent, offEntry + 2)); + int offEntry = off + index*satConfig.sizeOfChannelLinkedListEntry; + int nextIndex = BitConverter.ToUInt16(fileContent, offEntry + 2); + this.nextChannelIndex.Add(index, nextIndex); + index = nextIndex; } off += satConfig.dvbsMaxChannelCount*satConfig.sizeOfChannelLinkedListEntry; } @@ -438,28 +431,29 @@ namespace ChanSort.Loader.LG SatChannel ci = new SatChannel(i, index, mapping, this.DataRoot); if (!ci.InUse) ++this.deletedChannelsHard; - else if (ci.IsDeleted) - ++this.deletedChannelsSoft; else { + if (ci.IsDeleted) + { + ci.OldProgramNr = -1; + ci.NewProgramNr = -1; + ++this.deletedChannelsSoft; + } + var list = this.DataRoot.GetChannelList(ci.SignalSource); var dupes = list.GetChannelByUid(ci.Uid); if (dupes.Count == 0) { - if (ci.OldProgramNr == 0) + if (ci.OldProgramNr == 0 && !ci.IsDeleted) ++this.dvbsChannelsAtPr0; - this.DataRoot.AddChannel(list, ci); } else { - // duplicate channels (ONID,TSID,SSID) cause the TV to randomly reorder channels and show wrong ones in the - // program list, so we erase all dupes here this.DataRoot.Warnings.AppendFormat(ERR_dupeChannel, ci.RecordIndex, ci.OldProgramNr, dupes[0].RecordIndex, dupes[0].OldProgramNr, dupes[0].Name).AppendLine(); - if (this.EraseDuplicateChannels) - this.EraseDuplicateDvbsChannel(index, recordOffset, satConfig); ++this.duplicateChannels; } + this.DataRoot.AddChannel(list, ci); } if (!this.nextChannelIndex.TryGetValue(index, out index) || index == -1) @@ -469,39 +463,6 @@ namespace ChanSort.Loader.LG } #endregion - #region EraseDuplicateDvbsChannel() - private void EraseDuplicateDvbsChannel(int index, int off, DvbsDataLayout c) - { - // erase channel data - for (int i = 0; i < c.dvbsChannelLength; i++) - fileContent[off++] = 0xFF; - - // remove channel record from linked list - int listBaseOff = this.dvbsBlockOffset + c.SequenceTableOffset; - int listEntryOff = listBaseOff + index*c.sizeOfChannelLinkedListEntry; - int prevRecordIndex = BitConverter.ToInt16(fileContent, listEntryOff + 0); - int nextRecordIndex = BitConverter.ToInt16(fileContent, listEntryOff + 2); - Tools.SetInt16(fileContent, listEntryOff + 0, 0); - Tools.SetInt16(fileContent, listEntryOff + 2, 0); - Tools.SetInt16(fileContent, listEntryOff + 4, 0); - Tools.SetInt16(fileContent, listBaseOff + prevRecordIndex * c.sizeOfChannelLinkedListEntry + 2, nextRecordIndex); - Tools.SetInt16(fileContent, listBaseOff + nextRecordIndex*c.sizeOfChannelLinkedListEntry + 0, prevRecordIndex); - var header = new SatChannelListHeader(this.fileContent, this.dvbsBlockOffset + c.ChannelListHeaderOffset); - if (header.LinkedListStartIndex == index) - header.LinkedListStartIndex = nextRecordIndex; - if (header.LinkedListEndIndex1 == index) - header.LinkedListEndIndex1 = prevRecordIndex; - if (header.LinkedListEndIndex2 == index) - header.LinkedListEndIndex2 = prevRecordIndex; - --header.ChannelCount; - - // remove channel from allocation bitmap - int allocBitmapOffset = dvbsBlockOffset + c.AllocationBitmapOffset + (index/8); - int mask = 1 << (index & 7); - this.fileContent[allocBitmapOffset] &= (byte)~mask; - } - #endregion - #region GetSatLocation() private string GetSatLocation(byte degree, byte fractionAndOrientation) { @@ -509,6 +470,7 @@ namespace ChanSort.Loader.LG } #endregion + // Test code for fixing broken DVB-S block of xxLM640T ========== #region EraseDvbsBlock() @@ -593,6 +555,163 @@ namespace ChanSort.Loader.LG } #endregion + // Sat channel list cleanup ================== + + #region CleanUpChannelData() + public override string CleanUpChannelData() + { + this.ResetChannelInformationInTransponderData(); + + byte[] sortedChannels = new byte[this.satConfig.dvbsMaxChannelCount*this.satConfig.dvbsChannelLength]; + + var channelsByTransponder = + this.satTvChannels.Channels.Union(this.satRadioChannels.Channels).OrderBy(PhysicalChannelOrder).ToList(); + int prevChannelOrderId = -1; + int prevTransponderIndex = -1; + int channelCounter = 0; + int removedCounter = 0; + SatTransponder currentTransponder = null; + foreach (var channel in channelsByTransponder) + { + SatChannel satChannel = channel as SatChannel; + if (satChannel == null) // ignore proxy channels created by a reference list + continue; + RelocateChannelData(satChannel, ref prevChannelOrderId, sortedChannels, ref removedCounter, + ref prevTransponderIndex, ref channelCounter, ref currentTransponder); + } + if (currentTransponder != null) + { + currentTransponder.LastChannelIndex = channelCounter - 1; + currentTransponder.ChannelCount = channelCounter - currentTransponder.FirstChannelIndex; + } + + // copy temp data back to fileContent and clear remainder + Tools.MemCopy(sortedChannels, 0, + this.fileContent, this.dvbsBlockOffset + satConfig.ChannelListOffset, + channelCounter*satConfig.dvbsChannelLength); + Tools.MemSet(this.fileContent, + this.dvbsBlockOffset + satConfig.ChannelListOffset + channelCounter*satConfig.dvbsChannelLength, 0xFF, + (satConfig.dvbsMaxChannelCount - channelCounter)*satConfig.dvbsChannelLength); + + UpdateChannelAllocationBitmap(channelCounter); + UpdateChannelLinkedList(channelCounter); + + return string.Format("{0} duplicate channels were detected and removed", removedCounter); + } + #endregion + + #region ResetChannelInformationInTransponderData() + private void ResetChannelInformationInTransponderData() + { + foreach (SatTransponder transponder in this.DataRoot.Transponder.Values) + { + transponder.FirstChannelIndex = 0xFFFF; + transponder.LastChannelIndex = 0xFFFF; + transponder.ChannelCount = 0; + } + } + #endregion + + #region PhysicalChannelOrder() + private int PhysicalChannelOrder(ChannelInfo channel) + { + return (channel.Transponder.Id << 16) + channel.ServiceId; + } + #endregion + + #region RelocateChannelData() + private void RelocateChannelData(SatChannel channel, ref int prevChannelOrderId, + byte[] sortedChannels, ref int removed, ref int prevTransponderIndex, ref int counter, + ref SatTransponder currentTransponder) + { + if (RemoveChannelIfDupe(channel, ref prevChannelOrderId, ref removed)) + return; + + UpdateChannelIndexInTransponderData(channel, ref prevTransponderIndex, counter, ref currentTransponder); + + Tools.MemCopy(this.fileContent, + this.dvbsBlockOffset + satConfig.ChannelListOffset + channel.RecordIndex*satConfig.dvbsChannelLength, + sortedChannels, + counter*satConfig.dvbsChannelLength, + satConfig.dvbsChannelLength); + + channel.RecordIndex = counter++; + channel.baseOffset = this.dvbsBlockOffset + satConfig.ChannelListOffset + channel.RecordIndex*satConfig.dvbsChannelLength; + } + #endregion + + #region RemoveChannelIfDupe() + private bool RemoveChannelIfDupe(SatChannel channel, ref int prevOrder, ref int removed) + { + int order = this.PhysicalChannelOrder(channel); + if (order == prevOrder) + { + var list = this.DataRoot.GetChannelList(channel.SignalSource); + list.RemoveChannel(channel); + ++removed; + channel.NewProgramNr = -1; + channel.OldProgramNr = -1; + return true; + } + prevOrder = order; + return false; + } + #endregion + + #region UpdateChannelIndexInTransponderData() + private void UpdateChannelIndexInTransponderData(SatChannel channel, ref int prevTransponderIndex, int counter, + ref SatTransponder transponder) + { + if (channel.Transponder.Id == prevTransponderIndex) + return; + + if (transponder != null) + { + transponder.LastChannelIndex = counter - 1; + transponder.ChannelCount = counter - transponder.FirstChannelIndex; + } + + transponder = (SatTransponder)channel.Transponder; + transponder.FirstChannelIndex = counter; + prevTransponderIndex = channel.Transponder.Id; + } + #endregion + + #region UpdateChannelAllocationBitmap() + private void UpdateChannelAllocationBitmap(int counter) + { + Tools.MemSet(fileContent, this.dvbsBlockOffset + satConfig.AllocationBitmapOffset, 0, satConfig.dvbsMaxChannelCount / 8); + Tools.MemSet(fileContent, this.dvbsBlockOffset + satConfig.AllocationBitmapOffset, 0xFF, counter / 8); + if (counter % 8 != 0) + fileContent[this.dvbsBlockOffset + satConfig.AllocationBitmapOffset + counter / 8] = (byte)(0xFF >> (8 - counter % 8)); + } + #endregion + + #region UpdateChannelLinkedList() + private void UpdateChannelLinkedList(int counter) + { + var header = new SatChannelListHeader(this.fileContent, this.dvbsBlockOffset + satConfig.ChannelListHeaderOffset); + header.LinkedListStartIndex = 0; + header.LinkedListEndIndex1 = counter - 1; + header.LinkedListEndIndex2 = counter - 1; + header.ChannelCount = counter; + + // update linked list + var off = this.dvbsBlockOffset + satConfig.SequenceTableOffset; + for (int i = 0; i < counter; i++) + { + Tools.SetInt16(this.fileContent, off + 0, i - 1); + Tools.SetInt16(this.fileContent, off + 2, i + 1); + Tools.SetInt16(this.fileContent, off + 4, i); + off += satConfig.sizeOfChannelLinkedListEntry; + } + Tools.SetInt16(this.fileContent, off - satConfig.sizeOfChannelLinkedListEntry + 2, 0xFFFF); + Tools.MemSet(fileContent, off, 0, (satConfig.dvbsMaxChannelCount - counter) * satConfig.sizeOfChannelLinkedListEntry); + } + #endregion + + + // Saving ==================================== #region Save() public override void Save(string tvOutputFile) diff --git a/ChanSort/MainForm.Designer.cs b/ChanSort/MainForm.Designer.cs index 1bb9bfd..d690225 100644 --- a/ChanSort/MainForm.Designer.cs +++ b/ChanSort/MainForm.Designer.cs @@ -132,8 +132,9 @@ this.mnuCharset = new DevExpress.XtraBars.BarSubItem(); this.miCharsetForm = new DevExpress.XtraBars.BarButtonItem(); this.miIsoCharSets = new DevExpress.XtraBars.BarListItem(); - this.miEraseDuplicateChannels = new DevExpress.XtraBars.BarCheckItem(); this.miShowWarningsAfterLoad = new DevExpress.XtraBars.BarCheckItem(); + this.miAutoLoadRefList = new DevExpress.XtraBars.BarCheckItem(); + this.miEraseDuplicateChannels = new DevExpress.XtraBars.BarCheckItem(); this.mnuHelp = new DevExpress.XtraBars.BarSubItem(); this.miWiki = new DevExpress.XtraBars.BarButtonItem(); this.miOpenWebsite = new DevExpress.XtraBars.BarButtonItem(); @@ -144,6 +145,7 @@ this.barDockControlRight = new DevExpress.XtraBars.BarDockControl(); this.miMoveUp = new DevExpress.XtraBars.BarButtonItem(); this.miMoveDown = new DevExpress.XtraBars.BarButtonItem(); + this.miCleanupChannels = new DevExpress.XtraBars.BarButtonItem(); this.labelControl2 = new DevExpress.XtraEditors.LabelControl(); this.txtSetSlot = new DevExpress.XtraEditors.ButtonEdit(); this.labelControl11 = new DevExpress.XtraEditors.LabelControl(); @@ -196,36 +198,25 @@ // resources.ApplyResources(this.splitContainerControl1, "splitContainerControl1"); this.splitContainerControl1.Name = "splitContainerControl1"; - resources.ApplyResources(this.splitContainerControl1.Panel1, "splitContainerControl1.Panel1"); this.splitContainerControl1.Panel1.Controls.Add(this.grpOutputList); - resources.ApplyResources(this.splitContainerControl1.Panel2, "splitContainerControl1.Panel2"); + resources.ApplyResources(this.splitContainerControl1.Panel1, "splitContainerControl1.Panel1"); this.splitContainerControl1.Panel2.Controls.Add(this.grpInputList); + resources.ApplyResources(this.splitContainerControl1.Panel2, "splitContainerControl1.Panel2"); this.splitContainerControl1.SplitterPosition = 386; // // grpOutputList // - resources.ApplyResources(this.grpOutputList, "grpOutputList"); this.grpOutputList.Controls.Add(this.gridLeft); this.grpOutputList.Controls.Add(this.lblHotkeyLeft); 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.DataSource = this.dsChannels; - 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.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"); + resources.ApplyResources(this.gridLeft, "gridLeft"); this.gridLeft.MainView = this.gviewLeft; this.gridLeft.Name = "gridLeft"; this.gridLeft.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] { @@ -240,11 +231,8 @@ // // gviewLeft // - this.gviewLeft.Appearance.HeaderPanel.GradientMode = ((System.Drawing.Drawing2D.LinearGradientMode)(resources.GetObject("gviewLeft.Appearance.HeaderPanel.GradientMode"))); - this.gviewLeft.Appearance.HeaderPanel.Image = ((System.Drawing.Image)(resources.GetObject("gviewLeft.Appearance.HeaderPanel.Image"))); this.gviewLeft.Appearance.HeaderPanel.Options.UseTextOptions = true; this.gviewLeft.Appearance.HeaderPanel.TextOptions.WordWrap = DevExpress.Utils.WordWrap.Wrap; - resources.ApplyResources(this.gviewLeft, "gviewLeft"); this.gviewLeft.ColumnPanelRowHeight = 35; this.gviewLeft.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { this.colIndex1, @@ -322,15 +310,8 @@ new DevExpress.XtraEditors.Controls.EditorButton(((DevExpress.XtraEditors.Controls.ButtonPredefines)(resources.GetObject("repositoryItemCheckedComboBoxEdit1.Buttons"))))}); this.repositoryItemCheckedComboBoxEdit1.CloseUpKey = new DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.F2); this.repositoryItemCheckedComboBoxEdit1.ForceUpdateEditValue = DevExpress.Utils.DefaultBoolean.True; - this.repositoryItemCheckedComboBoxEdit1.Mask.AutoComplete = ((DevExpress.XtraEditors.Mask.AutoCompleteType)(resources.GetObject("repositoryItemCheckedComboBoxEdit1.Mask.AutoComplete"))); - this.repositoryItemCheckedComboBoxEdit1.Mask.BeepOnError = ((bool)(resources.GetObject("repositoryItemCheckedComboBoxEdit1.Mask.BeepOnError"))); this.repositoryItemCheckedComboBoxEdit1.Mask.EditMask = resources.GetString("repositoryItemCheckedComboBoxEdit1.Mask.EditMask"); - this.repositoryItemCheckedComboBoxEdit1.Mask.IgnoreMaskBlank = ((bool)(resources.GetObject("repositoryItemCheckedComboBoxEdit1.Mask.IgnoreMaskBlank"))); this.repositoryItemCheckedComboBoxEdit1.Mask.MaskType = ((DevExpress.XtraEditors.Mask.MaskType)(resources.GetObject("repositoryItemCheckedComboBoxEdit1.Mask.MaskType"))); - this.repositoryItemCheckedComboBoxEdit1.Mask.PlaceHolder = ((char)(resources.GetObject("repositoryItemCheckedComboBoxEdit1.Mask.PlaceHolder"))); - this.repositoryItemCheckedComboBoxEdit1.Mask.SaveLiteral = ((bool)(resources.GetObject("repositoryItemCheckedComboBoxEdit1.Mask.SaveLiteral"))); - this.repositoryItemCheckedComboBoxEdit1.Mask.ShowPlaceHolders = ((bool)(resources.GetObject("repositoryItemCheckedComboBoxEdit1.Mask.ShowPlaceHolders"))); - this.repositoryItemCheckedComboBoxEdit1.Mask.UseMaskAsDisplayFormat = ((bool)(resources.GetObject("repositoryItemCheckedComboBoxEdit1.Mask.UseMaskAsDisplayFormat"))); this.repositoryItemCheckedComboBoxEdit1.Name = "repositoryItemCheckedComboBoxEdit1"; this.repositoryItemCheckedComboBoxEdit1.PopupSizeable = false; this.repositoryItemCheckedComboBoxEdit1.SelectAllItemVisible = false; @@ -358,7 +339,6 @@ // // pnlEditControls // - resources.ApplyResources(this.pnlEditControls, "pnlEditControls"); this.pnlEditControls.Controls.Add(this.btnToggleLock); this.pnlEditControls.Controls.Add(this.btnToggleFavE); this.pnlEditControls.Controls.Add(this.btnToggleFavD); @@ -370,120 +350,108 @@ 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"; // // btnToggleLock // - resources.ApplyResources(this.btnToggleLock, "btnToggleLock"); this.btnToggleLock.ImageIndex = 15; this.btnToggleLock.ImageList = this.globalImageCollection1; + resources.ApplyResources(this.btnToggleLock, "btnToggleLock"); this.btnToggleLock.Name = "btnToggleLock"; this.btnToggleLock.Click += new System.EventHandler(this.btnToggleLock_Click); // // btnToggleFavE // - resources.ApplyResources(this.btnToggleFavE, "btnToggleFavE"); this.btnToggleFavE.ImageList = this.globalImageCollection1; + resources.ApplyResources(this.btnToggleFavE, "btnToggleFavE"); this.btnToggleFavE.Name = "btnToggleFavE"; this.btnToggleFavE.Tag = ""; this.btnToggleFavE.Click += new System.EventHandler(this.btnToggleFav_Click); // // btnToggleFavD // - resources.ApplyResources(this.btnToggleFavD, "btnToggleFavD"); this.btnToggleFavD.ImageList = this.globalImageCollection1; + resources.ApplyResources(this.btnToggleFavD, "btnToggleFavD"); this.btnToggleFavD.Name = "btnToggleFavD"; this.btnToggleFavD.Click += new System.EventHandler(this.btnToggleFav_Click); // // btnToggleFavC // - resources.ApplyResources(this.btnToggleFavC, "btnToggleFavC"); this.btnToggleFavC.ImageList = this.globalImageCollection1; + resources.ApplyResources(this.btnToggleFavC, "btnToggleFavC"); this.btnToggleFavC.Name = "btnToggleFavC"; this.btnToggleFavC.Click += new System.EventHandler(this.btnToggleFav_Click); // // btnToggleFavB // - resources.ApplyResources(this.btnToggleFavB, "btnToggleFavB"); this.btnToggleFavB.ImageList = this.globalImageCollection1; + resources.ApplyResources(this.btnToggleFavB, "btnToggleFavB"); this.btnToggleFavB.Name = "btnToggleFavB"; this.btnToggleFavB.Click += new System.EventHandler(this.btnToggleFav_Click); // // btnToggleFavA // - resources.ApplyResources(this.btnToggleFavA, "btnToggleFavA"); this.btnToggleFavA.ImageList = this.globalImageCollection1; + resources.ApplyResources(this.btnToggleFavA, "btnToggleFavA"); this.btnToggleFavA.Name = "btnToggleFavA"; this.btnToggleFavA.Click += new System.EventHandler(this.btnToggleFav_Click); // // btnClearLeftFilter // - resources.ApplyResources(this.btnClearLeftFilter, "btnClearLeftFilter"); this.btnClearLeftFilter.Appearance.Font = ((System.Drawing.Font)(resources.GetObject("btnClearLeftFilter.Appearance.Font"))); - this.btnClearLeftFilter.Appearance.GradientMode = ((System.Drawing.Drawing2D.LinearGradientMode)(resources.GetObject("btnClearLeftFilter.Appearance.GradientMode"))); - this.btnClearLeftFilter.Appearance.Image = ((System.Drawing.Image)(resources.GetObject("btnClearLeftFilter.Appearance.Image"))); this.btnClearLeftFilter.Appearance.Options.UseFont = true; this.btnClearLeftFilter.ImageIndex = 28; this.btnClearLeftFilter.ImageList = this.globalImageCollection1; + resources.ApplyResources(this.btnClearLeftFilter, "btnClearLeftFilter"); this.btnClearLeftFilter.Name = "btnClearLeftFilter"; this.btnClearLeftFilter.Click += new System.EventHandler(this.btnClearLeftFilter_Click); // // btnRenum // - resources.ApplyResources(this.btnRenum, "btnRenum"); this.btnRenum.ImageIndex = 22; this.btnRenum.ImageList = this.globalImageCollection1; + 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.ImageIndex = 25; this.btnDown.ImageList = this.globalImageCollection1; + 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.ImageIndex = 24; this.btnUp.ImageList = this.globalImageCollection1; + 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.ImageIndex = 11; this.btnRemoveLeft.ImageList = this.globalImageCollection1; + 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.lblHotkeyRight); this.grpInputList.Controls.Add(this.panelControl3); + 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.DataSource = this.dsChannels; - 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.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"); + resources.ApplyResources(this.gridRight, "gridRight"); this.gridRight.MainView = this.gviewRight; this.gridRight.Name = "gridRight"; this.gridRight.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] { @@ -494,11 +462,8 @@ // // gviewRight // - this.gviewRight.Appearance.HeaderPanel.GradientMode = ((System.Drawing.Drawing2D.LinearGradientMode)(resources.GetObject("gviewRight.Appearance.HeaderPanel.GradientMode"))); - this.gviewRight.Appearance.HeaderPanel.Image = ((System.Drawing.Image)(resources.GetObject("gviewRight.Appearance.HeaderPanel.Image"))); this.gviewRight.Appearance.HeaderPanel.Options.UseTextOptions = true; this.gviewRight.Appearance.HeaderPanel.TextOptions.WordWrap = DevExpress.Utils.WordWrap.Wrap; - resources.ApplyResources(this.gviewRight, "gviewRight"); this.gviewRight.ColumnPanelRowHeight = 35; this.gviewRight.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { this.colIndex, @@ -603,15 +568,8 @@ new DevExpress.XtraEditors.Controls.EditorButton(((DevExpress.XtraEditors.Controls.ButtonPredefines)(resources.GetObject("repositoryItemCheckedComboBoxEdit2.Buttons"))))}); this.repositoryItemCheckedComboBoxEdit2.CloseUpKey = new DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.F2); this.repositoryItemCheckedComboBoxEdit2.ForceUpdateEditValue = DevExpress.Utils.DefaultBoolean.True; - this.repositoryItemCheckedComboBoxEdit2.Mask.AutoComplete = ((DevExpress.XtraEditors.Mask.AutoCompleteType)(resources.GetObject("repositoryItemCheckedComboBoxEdit2.Mask.AutoComplete"))); - this.repositoryItemCheckedComboBoxEdit2.Mask.BeepOnError = ((bool)(resources.GetObject("repositoryItemCheckedComboBoxEdit2.Mask.BeepOnError"))); this.repositoryItemCheckedComboBoxEdit2.Mask.EditMask = resources.GetString("repositoryItemCheckedComboBoxEdit2.Mask.EditMask"); - this.repositoryItemCheckedComboBoxEdit2.Mask.IgnoreMaskBlank = ((bool)(resources.GetObject("repositoryItemCheckedComboBoxEdit2.Mask.IgnoreMaskBlank"))); this.repositoryItemCheckedComboBoxEdit2.Mask.MaskType = ((DevExpress.XtraEditors.Mask.MaskType)(resources.GetObject("repositoryItemCheckedComboBoxEdit2.Mask.MaskType"))); - this.repositoryItemCheckedComboBoxEdit2.Mask.PlaceHolder = ((char)(resources.GetObject("repositoryItemCheckedComboBoxEdit2.Mask.PlaceHolder"))); - this.repositoryItemCheckedComboBoxEdit2.Mask.SaveLiteral = ((bool)(resources.GetObject("repositoryItemCheckedComboBoxEdit2.Mask.SaveLiteral"))); - this.repositoryItemCheckedComboBoxEdit2.Mask.ShowPlaceHolders = ((bool)(resources.GetObject("repositoryItemCheckedComboBoxEdit2.Mask.ShowPlaceHolders"))); - this.repositoryItemCheckedComboBoxEdit2.Mask.UseMaskAsDisplayFormat = ((bool)(resources.GetObject("repositoryItemCheckedComboBoxEdit2.Mask.UseMaskAsDisplayFormat"))); this.repositoryItemCheckedComboBoxEdit2.Name = "repositoryItemCheckedComboBoxEdit2"; this.repositoryItemCheckedComboBoxEdit2.PopupSizeable = false; this.repositoryItemCheckedComboBoxEdit2.SelectAllItemVisible = false; @@ -690,10 +648,10 @@ // // colServiceTypeName // - resources.ApplyResources(this.colServiceTypeName, "colServiceTypeName"); this.colServiceTypeName.FieldName = "ServiceTypeName"; this.colServiceTypeName.Name = "colServiceTypeName"; this.colServiceTypeName.OptionsColumn.AllowEdit = false; + resources.ApplyResources(this.colServiceTypeName, "colServiceTypeName"); // // colSatellite // @@ -753,7 +711,6 @@ // // colDebug // - resources.ApplyResources(this.colDebug, "colDebug"); this.colDebug.FieldName = "Debug"; this.colDebug.Name = "colDebug"; this.colDebug.OptionsColumn.AllowEdit = false; @@ -780,18 +737,18 @@ // // panelControl3 // - resources.ApplyResources(this.panelControl3, "panelControl3"); this.panelControl3.Controls.Add(this.btnRemoveRight); this.panelControl3.Controls.Add(this.btnAddAll); this.panelControl3.Controls.Add(this.btnClearRightFilter); this.panelControl3.Controls.Add(this.btnAdd); + resources.ApplyResources(this.panelControl3, "panelControl3"); this.panelControl3.Name = "panelControl3"; // // btnRemoveRight // - resources.ApplyResources(this.btnRemoveRight, "btnRemoveRight"); this.btnRemoveRight.ImageIndex = 11; this.btnRemoveRight.ImageList = this.globalImageCollection1; + resources.ApplyResources(this.btnRemoveRight, "btnRemoveRight"); this.btnRemoveRight.Name = "btnRemoveRight"; this.btnRemoveRight.Click += new System.EventHandler(this.btnRemoveRight_Click); // @@ -803,21 +760,19 @@ // // btnClearRightFilter // - resources.ApplyResources(this.btnClearRightFilter, "btnClearRightFilter"); this.btnClearRightFilter.Appearance.Font = ((System.Drawing.Font)(resources.GetObject("btnClearRightFilter.Appearance.Font"))); - this.btnClearRightFilter.Appearance.GradientMode = ((System.Drawing.Drawing2D.LinearGradientMode)(resources.GetObject("btnClearRightFilter.Appearance.GradientMode"))); - this.btnClearRightFilter.Appearance.Image = ((System.Drawing.Image)(resources.GetObject("btnClearRightFilter.Appearance.Image"))); this.btnClearRightFilter.Appearance.Options.UseFont = true; this.btnClearRightFilter.ImageIndex = 28; this.btnClearRightFilter.ImageList = this.globalImageCollection1; + resources.ApplyResources(this.btnClearRightFilter, "btnClearRightFilter"); this.btnClearRightFilter.Name = "btnClearRightFilter"; this.btnClearRightFilter.Click += new System.EventHandler(this.btnClearRightFilter_Click); // // btnAdd // - resources.ApplyResources(this.btnAdd, "btnAdd"); this.btnAdd.ImageIndex = 26; this.btnAdd.ImageList = this.globalImageCollection1; + resources.ApplyResources(this.btnAdd, "btnAdd"); this.btnAdd.Name = "btnAdd"; this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click); // @@ -879,8 +834,10 @@ this.miOpenWebsite, this.miWiki, this.miEraseDuplicateChannels, - this.miShowWarningsAfterLoad}); - this.barManager1.MaxItemId = 55; + this.miShowWarningsAfterLoad, + this.miAutoLoadRefList, + this.miCleanupChannels}); + this.barManager1.MaxItemId = 57; // // bar1 // @@ -1210,8 +1167,9 @@ this.mnuOptions.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(DevExpress.XtraBars.BarLinkUserDefines.PaintStyle, this.barSubItem1, DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph), new DevExpress.XtraBars.LinkPersistInfo(DevExpress.XtraBars.BarLinkUserDefines.PaintStyle, this.mnuCharset, DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph), - new DevExpress.XtraBars.LinkPersistInfo(this.miEraseDuplicateChannels), - new DevExpress.XtraBars.LinkPersistInfo(this.miShowWarningsAfterLoad)}); + new DevExpress.XtraBars.LinkPersistInfo(this.miShowWarningsAfterLoad), + new DevExpress.XtraBars.LinkPersistInfo(this.miAutoLoadRefList), + new DevExpress.XtraBars.LinkPersistInfo(this.miEraseDuplicateChannels)}); this.mnuOptions.Name = "mnuOptions"; // // barSubItem1 @@ -1228,8 +1186,8 @@ // // miEnglish // - resources.ApplyResources(this.miEnglish, "miEnglish"); this.miEnglish.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; + resources.ApplyResources(this.miEnglish, "miEnglish"); this.miEnglish.CategoryGuid = new System.Guid("870e935c-f3d9-4202-9c58-87966069155d"); this.miEnglish.Id = 2; this.miEnglish.ImageIndex = 0; @@ -1239,8 +1197,8 @@ // // miGerman // - resources.ApplyResources(this.miGerman, "miGerman"); this.miGerman.ButtonStyle = DevExpress.XtraBars.BarButtonStyle.Check; + resources.ApplyResources(this.miGerman, "miGerman"); this.miGerman.CategoryGuid = new System.Guid("870e935c-f3d9-4202-9c58-87966069155d"); this.miGerman.Id = 1; this.miGerman.ImageIndex = 1; @@ -1278,6 +1236,19 @@ this.miIsoCharSets.ShowNumbers = true; this.miIsoCharSets.ListItemClick += new DevExpress.XtraBars.ListItemClickEventHandler(this.miIsoCharSets_ListItemClick); // + // miShowWarningsAfterLoad + // + resources.ApplyResources(this.miShowWarningsAfterLoad, "miShowWarningsAfterLoad"); + this.miShowWarningsAfterLoad.Id = 54; + this.miShowWarningsAfterLoad.Name = "miShowWarningsAfterLoad"; + // + // miAutoLoadRefList + // + resources.ApplyResources(this.miAutoLoadRefList, "miAutoLoadRefList"); + this.miAutoLoadRefList.Checked = true; + this.miAutoLoadRefList.Id = 55; + this.miAutoLoadRefList.Name = "miAutoLoadRefList"; + // // miEraseDuplicateChannels // resources.ApplyResources(this.miEraseDuplicateChannels, "miEraseDuplicateChannels"); @@ -1285,12 +1256,6 @@ this.miEraseDuplicateChannels.Id = 53; this.miEraseDuplicateChannels.Name = "miEraseDuplicateChannels"; // - // miShowWarningsAfterLoad - // - resources.ApplyResources(this.miShowWarningsAfterLoad, "miShowWarningsAfterLoad"); - this.miShowWarningsAfterLoad.Id = 54; - this.miShowWarningsAfterLoad.Name = "miShowWarningsAfterLoad"; - // // mnuHelp // resources.ApplyResources(this.mnuHelp, "mnuHelp"); @@ -1327,31 +1292,23 @@ // // barDockControlTop // - resources.ApplyResources(this.barDockControlTop, "barDockControlTop"); - this.barDockControlTop.Appearance.GradientMode = ((System.Drawing.Drawing2D.LinearGradientMode)(resources.GetObject("barDockControlTop.Appearance.GradientMode"))); - this.barDockControlTop.Appearance.Image = ((System.Drawing.Image)(resources.GetObject("barDockControlTop.Appearance.Image"))); this.barDockControlTop.CausesValidation = false; + resources.ApplyResources(this.barDockControlTop, "barDockControlTop"); // // barDockControlBottom // - resources.ApplyResources(this.barDockControlBottom, "barDockControlBottom"); - this.barDockControlBottom.Appearance.GradientMode = ((System.Drawing.Drawing2D.LinearGradientMode)(resources.GetObject("barDockControlBottom.Appearance.GradientMode"))); - this.barDockControlBottom.Appearance.Image = ((System.Drawing.Image)(resources.GetObject("barDockControlBottom.Appearance.Image"))); this.barDockControlBottom.CausesValidation = false; + resources.ApplyResources(this.barDockControlBottom, "barDockControlBottom"); // // barDockControlLeft // - resources.ApplyResources(this.barDockControlLeft, "barDockControlLeft"); - this.barDockControlLeft.Appearance.GradientMode = ((System.Drawing.Drawing2D.LinearGradientMode)(resources.GetObject("barDockControlLeft.Appearance.GradientMode"))); - this.barDockControlLeft.Appearance.Image = ((System.Drawing.Image)(resources.GetObject("barDockControlLeft.Appearance.Image"))); this.barDockControlLeft.CausesValidation = false; + resources.ApplyResources(this.barDockControlLeft, "barDockControlLeft"); // // barDockControlRight // - resources.ApplyResources(this.barDockControlRight, "barDockControlRight"); - this.barDockControlRight.Appearance.GradientMode = ((System.Drawing.Drawing2D.LinearGradientMode)(resources.GetObject("barDockControlRight.Appearance.GradientMode"))); - this.barDockControlRight.Appearance.Image = ((System.Drawing.Image)(resources.GetObject("barDockControlRight.Appearance.Image"))); this.barDockControlRight.CausesValidation = false; + resources.ApplyResources(this.barDockControlRight, "barDockControlRight"); // // miMoveUp // @@ -1371,6 +1328,13 @@ this.miMoveDown.Name = "miMoveDown"; this.miMoveDown.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miMoveDown_ItemClick); // + // miCleanupChannels + // + resources.ApplyResources(this.miCleanupChannels, "miCleanupChannels"); + this.miCleanupChannels.Id = 56; + this.miCleanupChannels.Name = "miCleanupChannels"; + this.miCleanupChannels.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miCleanupChannels_ItemClick); + // // labelControl2 // resources.ApplyResources(this.labelControl2, "labelControl2"); @@ -1380,22 +1344,10 @@ // resources.ApplyResources(this.txtSetSlot, "txtSetSlot"); this.txtSetSlot.Name = "txtSetSlot"; - this.txtSetSlot.Properties.AccessibleDescription = resources.GetString("txtSetSlot.Properties.AccessibleDescription"); - this.txtSetSlot.Properties.AccessibleName = resources.GetString("txtSetSlot.Properties.AccessibleName"); - this.txtSetSlot.Properties.AutoHeight = ((bool)(resources.GetObject("txtSetSlot.Properties.AutoHeight"))); this.txtSetSlot.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { new DevExpress.XtraEditors.Controls.EditorButton(((DevExpress.XtraEditors.Controls.ButtonPredefines)(resources.GetObject("txtSetSlot.Properties.Buttons"))))}); - this.txtSetSlot.Properties.Mask.AutoComplete = ((DevExpress.XtraEditors.Mask.AutoCompleteType)(resources.GetObject("txtSetSlot.Properties.Mask.AutoComplete"))); - this.txtSetSlot.Properties.Mask.BeepOnError = ((bool)(resources.GetObject("txtSetSlot.Properties.Mask.BeepOnError"))); this.txtSetSlot.Properties.Mask.EditMask = resources.GetString("txtSetSlot.Properties.Mask.EditMask"); - this.txtSetSlot.Properties.Mask.IgnoreMaskBlank = ((bool)(resources.GetObject("txtSetSlot.Properties.Mask.IgnoreMaskBlank"))); this.txtSetSlot.Properties.Mask.MaskType = ((DevExpress.XtraEditors.Mask.MaskType)(resources.GetObject("txtSetSlot.Properties.Mask.MaskType"))); - this.txtSetSlot.Properties.Mask.PlaceHolder = ((char)(resources.GetObject("txtSetSlot.Properties.Mask.PlaceHolder"))); - this.txtSetSlot.Properties.Mask.SaveLiteral = ((bool)(resources.GetObject("txtSetSlot.Properties.Mask.SaveLiteral"))); - this.txtSetSlot.Properties.Mask.ShowPlaceHolders = ((bool)(resources.GetObject("txtSetSlot.Properties.Mask.ShowPlaceHolders"))); - this.txtSetSlot.Properties.Mask.UseMaskAsDisplayFormat = ((bool)(resources.GetObject("txtSetSlot.Properties.Mask.UseMaskAsDisplayFormat"))); - this.txtSetSlot.Properties.NullValuePrompt = resources.GetString("txtSetSlot.Properties.NullValuePrompt"); - this.txtSetSlot.Properties.NullValuePromptShowForEmptyValue = ((bool)(resources.GetObject("txtSetSlot.Properties.NullValuePromptShowForEmptyValue"))); this.txtSetSlot.ButtonClick += new DevExpress.XtraEditors.Controls.ButtonPressedEventHandler(this.txtSetSlot_ButtonClick); this.txtSetSlot.EditValueChanged += new System.EventHandler(this.txtSetSlot_EditValueChanged); this.txtSetSlot.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtSetSlot_KeyDown); @@ -1411,11 +1363,7 @@ this.picDonate.EditValue = global::ChanSort.Ui.Properties.Resources.Donate; this.picDonate.MenuManager = this.barManager1; this.picDonate.Name = "picDonate"; - this.picDonate.Properties.AccessibleDescription = resources.GetString("picDonate.Properties.AccessibleDescription"); - this.picDonate.Properties.AccessibleName = resources.GetString("picDonate.Properties.AccessibleName"); this.picDonate.Properties.Appearance.BackColor = ((System.Drawing.Color)(resources.GetObject("picDonate.Properties.Appearance.BackColor"))); - this.picDonate.Properties.Appearance.GradientMode = ((System.Drawing.Drawing2D.LinearGradientMode)(resources.GetObject("picDonate.Properties.Appearance.GradientMode"))); - this.picDonate.Properties.Appearance.Image = ((System.Drawing.Image)(resources.GetObject("picDonate.Properties.Appearance.Image"))); this.picDonate.Properties.Appearance.Options.UseBackColor = true; this.picDonate.Properties.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder; this.picDonate.Properties.PictureAlignment = System.Drawing.ContentAlignment.TopRight; @@ -1427,7 +1375,6 @@ // // grpTopPanel // - resources.ApplyResources(this.grpTopPanel, "grpTopPanel"); this.grpTopPanel.Controls.Add(this.rbInsertSwap); this.grpTopPanel.Controls.Add(this.rbInsertAfter); this.grpTopPanel.Controls.Add(this.rbInsertBefore); @@ -1438,6 +1385,7 @@ this.grpTopPanel.Controls.Add(this.tabChannelList); this.grpTopPanel.Controls.Add(this.labelControl11); this.grpTopPanel.Controls.Add(this.txtSetSlot); + resources.ApplyResources(this.grpTopPanel, "grpTopPanel"); this.grpTopPanel.Name = "grpTopPanel"; this.grpTopPanel.ShowCaption = false; // @@ -1446,18 +1394,10 @@ resources.ApplyResources(this.rbInsertSwap, "rbInsertSwap"); this.rbInsertSwap.MenuManager = this.barManager1; this.rbInsertSwap.Name = "rbInsertSwap"; - this.rbInsertSwap.Properties.AccessibleDescription = resources.GetString("rbInsertSwap.Properties.AccessibleDescription"); - this.rbInsertSwap.Properties.AccessibleName = resources.GetString("rbInsertSwap.Properties.AccessibleName"); - this.rbInsertSwap.Properties.Appearance.GradientMode = ((System.Drawing.Drawing2D.LinearGradientMode)(resources.GetObject("rbInsertSwap.Properties.Appearance.GradientMode"))); - this.rbInsertSwap.Properties.Appearance.Image = ((System.Drawing.Image)(resources.GetObject("rbInsertSwap.Properties.Appearance.Image"))); this.rbInsertSwap.Properties.Appearance.Options.UseTextOptions = true; this.rbInsertSwap.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; - this.rbInsertSwap.Properties.AutoHeight = ((bool)(resources.GetObject("rbInsertSwap.Properties.AutoHeight"))); 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.RadioGroupIndex = 1; this.rbInsertSwap.TabStop = false; @@ -1468,14 +1408,8 @@ resources.ApplyResources(this.rbInsertAfter, "rbInsertAfter"); this.rbInsertAfter.MenuManager = this.barManager1; this.rbInsertAfter.Name = "rbInsertAfter"; - this.rbInsertAfter.Properties.AccessibleDescription = resources.GetString("rbInsertAfter.Properties.AccessibleDescription"); - this.rbInsertAfter.Properties.AccessibleName = resources.GetString("rbInsertAfter.Properties.AccessibleName"); - this.rbInsertAfter.Properties.AutoHeight = ((bool)(resources.GetObject("rbInsertAfter.Properties.AutoHeight"))); 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.RadioGroupIndex = 1; this.rbInsertAfter.CheckedChanged += new System.EventHandler(this.rbInsertMode_CheckedChanged); // @@ -1484,14 +1418,8 @@ resources.ApplyResources(this.rbInsertBefore, "rbInsertBefore"); this.rbInsertBefore.MenuManager = this.barManager1; this.rbInsertBefore.Name = "rbInsertBefore"; - this.rbInsertBefore.Properties.AccessibleDescription = resources.GetString("rbInsertBefore.Properties.AccessibleDescription"); - this.rbInsertBefore.Properties.AccessibleName = resources.GetString("rbInsertBefore.Properties.AccessibleName"); - this.rbInsertBefore.Properties.AutoHeight = ((bool)(resources.GetObject("rbInsertBefore.Properties.AutoHeight"))); 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.RadioGroupIndex = 1; this.rbInsertBefore.TabStop = false; this.rbInsertBefore.CheckedChanged += new System.EventHandler(this.rbInsertMode_CheckedChanged); @@ -1501,26 +1429,14 @@ resources.ApplyResources(this.cbCloseGap, "cbCloseGap"); this.cbCloseGap.MenuManager = this.barManager1; this.cbCloseGap.Name = "cbCloseGap"; - this.cbCloseGap.Properties.AccessibleDescription = resources.GetString("cbCloseGap.Properties.AccessibleDescription"); - this.cbCloseGap.Properties.AccessibleName = resources.GetString("cbCloseGap.Properties.AccessibleName"); - this.cbCloseGap.Properties.AutoHeight = ((bool)(resources.GetObject("cbCloseGap.Properties.AutoHeight"))); 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"); // // cbAppendUnsortedChannels // resources.ApplyResources(this.cbAppendUnsortedChannels, "cbAppendUnsortedChannels"); this.cbAppendUnsortedChannels.MenuManager = this.barManager1; this.cbAppendUnsortedChannels.Name = "cbAppendUnsortedChannels"; - this.cbAppendUnsortedChannels.Properties.AccessibleDescription = resources.GetString("cbAppendUnsortedChannels.Properties.AccessibleDescription"); - this.cbAppendUnsortedChannels.Properties.AccessibleName = resources.GetString("cbAppendUnsortedChannels.Properties.AccessibleName"); - this.cbAppendUnsortedChannels.Properties.AutoHeight = ((bool)(resources.GetObject("cbAppendUnsortedChannels.Properties.AutoHeight"))); this.cbAppendUnsortedChannels.Properties.Caption = resources.GetString("cbAppendUnsortedChannels.Properties.Caption"); - this.cbAppendUnsortedChannels.Properties.DisplayValueChecked = resources.GetString("cbAppendUnsortedChannels.Properties.DisplayValueChecked"); - this.cbAppendUnsortedChannels.Properties.DisplayValueGrayed = resources.GetString("cbAppendUnsortedChannels.Properties.DisplayValueGrayed"); - this.cbAppendUnsortedChannels.Properties.DisplayValueUnchecked = resources.GetString("cbAppendUnsortedChannels.Properties.DisplayValueUnchecked"); // // tabChannelList // @@ -1533,8 +1449,8 @@ // // pageEmpty // - resources.ApplyResources(this.pageEmpty, "pageEmpty"); this.pageEmpty.Name = "pageEmpty"; + resources.ApplyResources(this.pageEmpty, "pageEmpty"); // // mnuContext // @@ -1744,6 +1660,8 @@ private DevExpress.XtraBars.BarButtonItem miRenameChannel; private DevExpress.XtraBars.BarCheckItem miEraseDuplicateChannels; private DevExpress.XtraBars.BarCheckItem miShowWarningsAfterLoad; + private DevExpress.XtraBars.BarCheckItem miAutoLoadRefList; + private DevExpress.XtraBars.BarButtonItem miCleanupChannels; private DevExpress.XtraSplashScreen.SplashScreenManager splashScreenManager1; } } diff --git a/ChanSort/MainForm.cs b/ChanSort/MainForm.cs index 75c4b17..a1b24c3 100644 --- a/ChanSort/MainForm.cs +++ b/ChanSort/MainForm.cs @@ -23,7 +23,7 @@ namespace ChanSort.Ui { public partial class MainForm : XtraForm { - public const string AppVersion = "v2013-04-28a"; + public const string AppVersion = "v2013-04-29"; #region enum EditMode private enum EditMode @@ -208,7 +208,7 @@ namespace ChanSort.Ui this.currentTvSerializer.DefaultEncoding = this.defaultEncoding; this.miEraseChannelData.Enabled = newSerializer.Features.EraseChannelData; if (!this.LoadTvDataFile()) - return; + return; this.LoadCsvFile(); this.editor = new Editor(); @@ -357,7 +357,7 @@ namespace ChanSort.Ui #region LoadCsvFile() private void LoadCsvFile() { - if (File.Exists(this.currentCsvFile)) + if (File.Exists(this.currentCsvFile) && this.miAutoLoadRefList.Checked) { var csvSerializer = new CsvFileSerializer(this.currentCsvFile, this.dataRoot); csvSerializer.Load(); @@ -747,7 +747,9 @@ namespace ChanSort.Ui this.miEraseDuplicateChannels.Checked = Settings.Default.EraseDuplicateChannels; this.miShowWarningsAfterLoad.Checked = Settings.Default.ShowWarningsAfterLoading; - + this.miAutoLoadRefList.Checked = Settings.Default.AutoLoadRefList; + this.cbAppendUnsortedChannels.Checked = Settings.Default.AutoAppendUnsortedChannels; + this.cbCloseGap.Checked = Settings.Default.CloseGaps; this.ClearLeftFilter(); } #endregion @@ -812,7 +814,9 @@ namespace ChanSort.Ui SaveInputGridLayout(this.currentChannelList.SignalSource); Settings.Default.EraseDuplicateChannels = this.miEraseDuplicateChannels.Checked; Settings.Default.ShowWarningsAfterLoading = this.miShowWarningsAfterLoad.Checked; - + Settings.Default.AutoLoadRefList = this.miAutoLoadRefList.Checked; + Settings.Default.AutoAppendUnsortedChannels = this.cbAppendUnsortedChannels.Checked; + Settings.Default.CloseGaps = this.cbCloseGap.Checked; Settings.Default.Save(); } @@ -1051,6 +1055,8 @@ namespace ChanSort.Ui this.miMoveUp.Enabled = channel != null && channel.NewProgramNr > 1; this.miTvSettings.Enabled = this.currentTvSerializer != null; + this.miCleanupChannels.Visibility = this.currentTvSerializer != null && + this.currentTvSerializer.Features.CleanUpChannelData ? BarItemVisibility.Always : BarItemVisibility.Never; } #endregion @@ -1173,6 +1179,19 @@ namespace ChanSort.Ui } #endregion + #region CleanupChannelData() + private void CleanupChannelData() + { + if (this.currentTvSerializer != null && this.currentTvSerializer.Features.CleanUpChannelData) + { + var msg = this.currentTvSerializer.CleanUpChannelData(); + this.FillChannelListCombo(); + InfoBox.Show(this, msg, this.miCleanupChannels.Caption); + this.RefreshGrid(gviewLeft, gviewRight); + } + } + #endregion + // UI events #region MainForm_Load @@ -1363,6 +1382,11 @@ namespace ChanSort.Ui }); } + private void miCleanupChannels_ItemClick(object sender, ItemClickEventArgs e) + { + this.TryExecute(this.CleanupChannelData); + } + #endregion #region Character set menu @@ -1454,6 +1478,7 @@ namespace ChanSort.Ui private void gview_MouseUp(object sender, MouseEventArgs e) { this.timerEditDelay.Stop(); + this.BeginInvoke((Action) (() => { this.dontOpenEditor = false; })); } private void timerEditDelay_Tick(object sender, EventArgs e) diff --git a/ChanSort/MainForm.de.resx b/ChanSort/MainForm.de.resx index 3197bad..353fc2e 100644 --- a/ChanSort/MainForm.de.resx +++ b/ChanSort/MainForm.de.resx @@ -117,50 +117,6 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - - - - - - Default - - - Top, Left - - - - - - Tile - - - Inherit - - - - Center - - - - - - - None - - - - - - - Horizontal - - - - Neue Pr# @@ -173,34 +129,13 @@ Favoriten - - Default - - - - False - - - True - - - _ - - - True - - - True - - - False - Ge- sperrt Kindersicherung + 333, 17 @@ -294,11 +229,20 @@ &Zeichensatz - - Mehrfach vorhandene Sender löschen - - Warnungen nach dem Laden einer Datei anzeigen + Warnungen beim Laden anzeigen + + + Eventuelle Warnungen nach dem Laden einer TV-Datei automatisch anzeigen + + + Referenzliste automatisch laden + + + TV-Datei automatisch bereinigen + + + Nicht verwendete Senderdaten beim Laden der Datei automatisch entfernen &Hilfe @@ -350,168 +294,36 @@ WIeWYGkVXQEL - - Horizontal - - - - - - Horizontal - - - - - - Horizontal - - - - - - Horizontal - - - - Nach oben Nach unten - - - - - - - - Horizontal - - - - - - True - tauschen - - - - - - - - - - - - - - - - - True - dahinter - - - - - - - - - - - - - - - - - True - davor - - - - - - - - - - - - - - - - - True - Lücken beim Verschieben/Entfernen von Sendern schließen - - - - - - - - - Wenn aktiv, werden folgende Programmnummer automatisch vorgerückt - - - - - - - - True - Unsortierte Sender beim Speichern automatisch anhängen - - - - - - - - - 71, 13 Einfügemodus: - - - - - - - - Horizontal - - - - Keine Datei geladen @@ -521,54 +333,12 @@ Programplatz für Einfügen und Festlegen - - - - - - - - True - - - Default - - - False - - - True - - - _ - - - True - - - True - - - False - - - - - - False - ChanSort {0} - Senderlisten-Editor für Samsung, LG und Toshiba TVs Kindersicherung - - Horizontal - - - - Filter entfernen @@ -584,45 +354,6 @@ Sortierte Sender (.csv) - - - - - - - - Default - - - Top, Left - - - - - - Tile - - - Inherit - - - Center - - - - - - None - - - - - - Horizontal - - - - Alte Pr# @@ -644,27 +375,6 @@ Favoriten - - Default - - - False - - - True - - - _ - - - True - - - True - - - False - Ge- sperrt @@ -713,12 +423,6 @@ Sender aus sortierter Liste entfernen - - Horizontal - - - - Filter entfernen diff --git a/ChanSort/MainForm.resx b/ChanSort/MainForm.resx index 9b25f5f..d8ad422 100644 --- a/ChanSort/MainForm.resx +++ b/ChanSort/MainForm.resx @@ -117,405 +117,318 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - lblHotkeyLeft - - - - - - - 5 - - - 17 - - - miFavUnset - - - 2 - - - Program number for insert and set operations - - - $this - - - DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colNetworkName - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - - - - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miEnglish - - - miRemove - - - DevExpress.XtraTab.XtraTabPage, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - Symbol rate - - - True - - - defaultLookAndFeel1 + + Fill - - 66, 20 + + 0, 109 - - 382, 417 + + 361, 17 + + + Fill - - True - - - 0 - - - colName - - - X - - - 0, 0 - - - miFavSet - - - miEraseDuplicateChannels - - - - - - Bottom - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - - - - btnAddAll - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - + + 2, 54 Pr. index - - 0, 568 + + Service Type - - panelControl3 - - + + True - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy - LjIuOC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA - ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li - bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEVkaXQE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC - X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICZMTu18lZRU+IqmAu - ZMgcwAEL - + + 0 - - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + 45 - - miTvSettings + + New Pr# - - + + New program number - - + + True - + 1 - - 8 - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 169, 24 - - - DevExpress.XtraGrid.Views.Grid.GridView, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 63, 5 - - - miSkipOff - - - &English - - - Right - - - Alle &Zeichensätze... - - - bar1 - - - &Language - - - gridRight - 50 - - 182, 5 + + Channel name - - colServiceId - - - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 0, 109 - - - barDockControlTop - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - - None - - - - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miMoveDown - - - colNetworkOperator - - - &Skip channel: on - - - 0 - - - colServiceTypeName - - - colIndex - - - 4 - - - System.Windows.Forms.Timer, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - + True - - $this + + 2 - - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + 158 Favorites - - Erase all channel data + + False - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + Combo - - 1474, 0 - - + - - Sor&t channels alphabetically - - - True - - - after - - + RegEx - - Horizontal + + True - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + 3 - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 19 - - - 4 - - - &Lock channel: on - - - Order - - - System.Windows.Forms.BindingSource, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 311, 25 - - - Locked - - - Bottom, Left - - - gviewRight - - - miCharsetForm - - - 0 - - - DevExpress.XtraEditors.PictureEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - globalImageCollection1 - - + 55 - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - &Quit - - - Tile - - - 45 - - - miSave - - - panelControl3 + + UID Lock - - miQuit + + Parental lock - - 8 + + True - - MainForm + + 4 - - 5 + + 35 + + + 382, 417 + + + 1 + + + gridLeft + + + DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + grpOutputList + + + 0 + + + Bottom + + + 2, 471 + + + 2, 2, 2, 2 + + + 302, 17 + + + 2 + + + F3: Filter | F4: List | -: move up | +: move down | Del: remove + + + lblHotkeyLeft + + + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + grpOutputList + + + 1 + + + 600, 17 + + + True + + + 6, 13 + + + 1474, 599 + + + 5, 24 + + + 475, 17 + + + &File + + + &Open TV data file... + + + &Reload + + + Restore backup + + + File &information... + + + &Save + + + Save &as... + + + Import reference list... + + + &Quit + + + &Edit + + + &Add channels + + + &Remove channels + + + Rename channel + + + Sor&t channels alphabetically + + + Re&number channels + + + Add to &Favorites + + + Favoriten setzen + + + Remove from Favorites + + + Favoriten entfernen + + + &Lock channel: on + + + Lock channel: off + + + &Skip channel: on + + + Skip channel: off + + + &Hide channel: on + + + Hide channel: off + + + TV-Set + + + Device setting... + + + Erase all channel data + + + &Settings + + + &Language + + + &English + + + &Deutsch + + + &Character set + + + Alle &Zeichensätze... ISO Zeichensätze - - Horizontal + + Show warnings after loading file - - False + + Load reference list automatically - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + Cleanup TV data file after loading - - swap + + Automatically clean up TV data file after loading - - grpInputList + + &Help - - + + Wiki - - miGerman + + ChanSort website... - - Transparent + + &About ChanSort... - - Channel or transponder number + + Tools - - + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy + LjIuOC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA + ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li + bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEZpbGUE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC + X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICKaPJ5gsBeU2NTSFe + Xxl+0wEL + @@ -527,636 +440,15 @@ KphCYAEL - - 35 - - - - - - DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 3 - - - True - - - DevExpress.XtraBars.BarDockControl, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - Tahoma, 8.25pt, style=Strikeout - - - - - - &Settings - - - True - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - _ - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 207, 5 - - - grpTopPanel - - - 62, 13 - - - 34, 5 - - - grpTopPanel - - - 23, 23 - - - - - - 66, 23 - - - True - - - 40 - - - True - - - 0, 568 - - - 23, 23 - - - 0, 54 - - - 1474, 78 - - - DevExpress.XtraEditors.Repository.RepositoryItemCheckedComboBoxEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - F5: Filter | F6: List | Enter: add - - - 0 - - - &Open TV data file... - - - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - Default - - - Old Pr# - - - pnlEditControls - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - Horizontal - - - True - - - 2 - - - 14 - - - - - - 2, 21 - - - 8 - - - mnuFavSet - - - colHidden - - - 5, 5 - - - 0 - - - True - - - DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - btnRemoveRight - - - colIndex1 - - - 40 - - - 1079, 33 - - - True - - - Move down - - - colSignalSource - - - colShortName - - - colNetworkId - - - Fill - - - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - True - - - 1 - - - DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 21 - - - colPolarity - - - DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 2, 21 - - - miAddChannel - - - miHideOff - - - Crypt - - - dsChannels - - - 6, 13 - - - colTransportStreamId - - - before - - - - - - - - - ChanSort website... - - - 4 - - - barManager1 - - - colLogicalIndex - - - 04/28/2013 12:38:39 - - - Audio PID - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colChannelOrTransponder - - - DevExpress.XtraBars.BarListItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 7 - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - panelControl3 - - - Hide - - - 1 - - - 1083, 490 - - - &Deutsch - - - True - - - 23, 23 - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - No file loaded - - - - - - Save &as... - - - DevExpress.XtraBars.BarManager, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - True - - - Default - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 5 - - - colSlotOld - - - New Pr# - - - False - - - 121, 23 - - - 40 - - - grpOutputList - - - 40 - - - ^ - - - grpTopPanel - - - True - - - - Default - - - Combo - - - TV-Set - - - - - - Chan/ Transp - - - DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 0 - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - btnToggleFavB - - - - - - labelControl2 - - - 9 - - - Parental lock - - - Tools - - - False - - - 10 - - - 57 - - - 132, 5 - - - - - - miSort - - - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 0 - - - Top - - - False - - - Default - - - 98, 5 - - - colOutFav - - - 66, 23 - - - False - - - 80, 13 - - - $this - - - btnRemoveLeft - - - grpOutputList - - - DevExpress.XtraBars.BarListItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 4 - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 2, 471 - - - New program number - - - - - - 2 - - - colSatellite - - - 12 - - - colVideoPid - - - True - - - False - - - 0 - - - mnuFavUnset - - - True - - - Reset filter - - - Top - - - 16 - - - Top, Left - - - miFileInformation - - - 12 - - - 6 - - - 7 - - - Rename channel - - - miWiki - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - - - - 23, 23 - - - Channel name - - - 40 - - - 1-999 - - - 157, 5 - - - Service ID - - - miRenameChannel - - - Reset filter - - - DevExpress.LookAndFeel.DefaultLookAndFeel, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - btnClearLeftFilter - - - 71, 5 - - - grpTopPanel - - - 6 - - - 50 - - - 34, 5 - - - Lock channel: off - - - &About ChanSort... - - - 1 - - - colEncrypted - - - 1 - - - 23, 23 - - - 1474, 599 - - - $this - - - Append all currently unsorted channels at the end of the list - - - 5 - - - Close gap when moving/deleting a channel - - - 9 - - - Skip - - - Tile - - - 45 - - - 15 - - - pnlEditControls + + + AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy + LjIuOC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA + ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li + bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEVkaXQE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC + X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICZMTu18lZRU+IqmAu + ZMgcwAEL + @@ -1168,1439 +460,1865 @@ WIeWYGkVXQEL - - Filter - - - 23, 23 - - - - - - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - Uid - - - 311, 4 - - - True - - - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 0 - - - Short name - - - panelControl3 - - - 2 - - - - - - 40 - - - 40 - - - pnlEditControls - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 322, 19 - - - 0 - - - &Remove channels - - - 18 - - - 2 - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - Horizontal - - - ±C - - - 88, 5 - - - When loading a file which contains duplicate channels, delete those duplicates - - - &File - - - colOutSlot - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - Bottom - - - 5, 24 - - - _ - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 5 - - - 23, 23 - - - ±B - - - Vertical - - - grpTopPanel - - - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - True - - - 3 - - - 2 - - - grpInputList - - - miSaveAs - - - btnDown - - - 23, 23 - - - 40 - - - 2, 54 - - - ChanSort {0} - Channel List Editor for Samsung, LG and Toshiba TVs - - - 302, 17 - - - DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 6 - - - UID - - - True - - - True - - - labelControl11 - - - 0 - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - rbInsertSwap - - - $this - - - miMoveUp - - - Tahoma, 8.25pt, style=Strikeout - - - True - - - pageEmpty - - - grpTopPanel - - - &Hide channel: on - - - 10 - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy - LjIuOC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA - ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li - bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEZpbGUE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC - X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICKaPJ5gsBeU2NTSFe - Xxl+0wEL - - - - True - - - - - - btnToggleFavC - - - DevExpress.XtraGrid.Views.Grid.GridView, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 23, 23 - - - colAudioPid - - - Favoriten setzen - - - Fill - - - 158 - - - 2, 2, 2, 2 - - - True - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - True - - - miShowWarningsAfterLoad - - - 45 - - - DevExpress.XtraBars.BarCheckItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 6 - - - - - - 4 - - - True - - - Old program number - - - Insert mode: - - - Service Type - - - X - - - 45 - - - 2 - - - 3 - - - Horizontal - - - Device setting... - - - 1 - - - pnlEditControls - - - True - - - Encrypted - - - cbCloseGap - - - miRestoreOriginal - - - 0 - - - 6 - - - DevExpress.XtraEditors.Repository.RepositoryItemCheckedComboBoxEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - tabChannelList - - - barDockControlBottom - - - rbInsertAfter - - - 5 - - - miReload - - - splitContainerControl1.Panel2 - - - $this - - - barSubItem1 - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 5, 5 - - - ±A - - - True - - - Horizontal - - - True - - - Channel name - - - 1 - - - grpTopPanel - - - Add to &Favorites - - - Re&number channels - - - 23, 23 - - - 1474, 490 - - - True - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - tabChannelList - - - DevExpress.XtraEditors.PanelControl, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - - - - panelControl3 - - - 100 - - - pnlEditControls - - - 232, 5 - - - DevExpress.XtraBars.BarCheckItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - cbAppendUnsortedChannels - - - pnlEditControls - - - Move selected channels up - - - 23, 23 - - - Satellite - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 7 - - - Pr. index - - - Remove selected channels - - - v - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miIsoCharSets - - - True - - - 40 - - - gviewLeft - - - RegEx - - - colOutLock - - - Panel2 - - - - - - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - ChanSort.Ui.GlobalImageCollection, ChanSort, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - - - False - - - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - grpTopPanel - - - repositoryItemCheckedComboBoxEdit2 - - - barDockControlLeft - - - Network Operator - - - 169, 8 - - - 0 - - - - - - DevExpress.XtraBars.BarDockControl, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - Erase duplicate channels - - - ±E - - - 55 - - - - - - - - - btnToggleLock - - - picDonate - - - 638, 22 - - - Show warnings after loading file - - - Filter - - - _ - - - colUid - - - ±D - - - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - Auto-append unsorted channels when saving file - - - barSubItem2 - - - &Help - - - 2, 2, 2, 2 - - - 2 - - - - - - - - - 15 - - - DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - btnToggleFavE - - - - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 8 - - - DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 2 - - - 386, 490 - - - - - - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - Left - - - btnToggleFavA - - - DevExpress.XtraEditors.SplitContainerControl, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - groupControl1 - - - grpInputList - - - 632, 0 - - - OK - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - \d{1,4} - - - colLock - - - btnRenum - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 9 - - - Panel1 - - - 1 - - - - - - Top, Left - - - DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - True - - - DevExpress.XtraBars.BarDockControl, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - True - - - Fill - - - - - - Inherit - - - Wiki - - - 166, 54 - - - splashScreenManager1 - - - gridLeft - - - New program number - - - 295, 4 - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - DevExpress.XtraBars.BarListItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colFreqInMhz - - - - - - DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - Signal source - - - mnuCharset - - - 75, 19 - - - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 11 - - - 0 - - - 14 - - - miLockOn - - - pnlEditControls - - - DevExpress.XtraBars.BarDockControl, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 0, 599 - - - barDockControlRight - - - True - - - Skip channel: off - - - Polarity - - - Horizontal - - - 45 - - - pnlEditControls - - - DevExpress.XtraTab.XtraTabControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 0 - - - Renumber selected channels - - - &Character set - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - Favorites - - - 16, 16 - - - Favoriten entfernen - - - 77, 19 - - - grpTopPanel - - - - - - Video PID - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 2, 54 - - - miEraseChannelData - - - 382, 33 - - - 198, 5 - - - 1474, 31 - - - 13 - - - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colServiceType - - - Center - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miFile - - - Horizontal - - - File &information... - - - 23, 23 - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - DevExpress.XtraBars.PopupMenu, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - << - - - - - - 75, 19 - - - DevExpress.XtraBars.Bar, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - True - - - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 1079, 417 - - + Top - - repositoryItemCheckedComboBoxEdit1 - - - 13 - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - When active, all channels after the current one will be automatically renumbered - - - 153, 17 - - - 0, 0 - - - 7 - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 180 - - - 3 - - - txtSetSlot - - - DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 45 - - - 6 - - - miSkipOn - - - grpOutputList - - - miLockOff - - - 45 - - - 5 - - - miOpenReferenceFile - - - 20 - - - colSlotNew - - - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miAbout - - - Move up - - - 1296, 8 - - - 120 - - - 3 - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 0, 31 - - - colOutServiceType - - - Fill - - - - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 5 - - - RegEx - - - True - - - Bottom - - - btnToggleFavD - - - rbInsertBefore - - - Set Pr#: - - - Inherit - - - - - - pnlEditControls - 0, 0 - - 8 - - - True - - - Import reference list... - - - False - - - - - - New Pr# - - - miRenum - - - Move selected channels down - - - 11 - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - &Edit - - - 10 - - - mnuOptions - 1474, 31 - - Restore backup + + barDockControlTop - - grpInputList + + DevExpress.XtraBars.BarDockControl, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - Sorted channels (.csv) + + $this - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + 5 - - DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + Bottom - - Fill + + 0, 599 - - 9 + + 1474, 0 - - + + barDockControlBottom - - grpTopPanel + + DevExpress.XtraBars.BarDockControl, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miOpen - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - Top - - - 0 - - - Center - - - 0 - - - 2, 471 - - - pnlEditControls - - - Service Typ - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miHideOn - - - 1 - - - splitContainerControl1.Panel1 - - - grpOutputList - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - Far - - - btnUp - - - DevExpress.XtraEditors.PanelControl, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colUid1 - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - True - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 2 - - - 3 - - - Top, Right - - - mnuHelp - - - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - Netzwerk (ONID) - - - timerEditDelay - - - Horizontal - - - colDebug - - - << Add all - - - &Save - - - - - - mnuContext - - - miOpenWebsite - - - All channels - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - Add selected channels to sorted list - - - grpTopPanel - - - True - - - Transport Stream ID - - - 7, 8 - - - True - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - miEdit - - - - - - TS ID - - - splitContainerControl1 - - - F3: Filter | F4: List | -: move up | +: move down | Del: remove - - - Default - - - colSkip - - - Combo - - - True - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - Hide channel: off - - - &Reload - - - 2 - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - True - - - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - Freqency (MHz) - - - 10 - - - 1 - - - &Add channels - - - 257, 5 - - - DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - btnAdd - - - Network Name - - - - - - 1 - - - None - - - 2 - - - + + $this 4 - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + Left - - 322, 19 + + 0, 31 - - True + + 0, 568 - - CenterScreen + + barDockControlLeft - - + + DevExpress.XtraBars.BarDockControl, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - Remove selected channels from sorted list + + $this - + + 2 + + + Right + + + 1474, 31 + + + 0, 568 + + + barDockControlRight + + + DevExpress.XtraBars.BarDockControl, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + $this + + + 3 + + + Move up + + + Move down + + + Cleanup channel data + + + Remove duplicate channels and reorganize + + + swap + + + + Far + + + 77, 19 + + + 10 + + + rbInsertSwap + + + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + grpTopPanel + + 0 - - colFavorites - - - 9 - - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - False - - - DevExpress.XtraSplashScreen.SplashScreenManager, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - colOutName - - - btnClearRightFilter - - + True 88, 24 - - pnlEditControls + + after - - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + 75, 19 - - Horizontal + + 9 - + + rbInsertAfter + + + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + grpTopPanel + + + 1 + + + 88, 5 + + + before + + + 75, 19 + + + 8 + + + rbInsertBefore + + + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + grpTopPanel + + 2 - - pnlEditControls + + True - - lblHotkeyRight + + 311, 25 - + + Close gap when moving/deleting a channel + + + 322, 19 + + + 7 + + + When active, all channels after the current one will be automatically renumbered + + + cbCloseGap + + + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + grpTopPanel + + + 3 + + + True + + + 311, 4 + + + Auto-append unsorted channels when saving file + + + 322, 19 + + + 6 + + + cbAppendUnsortedChannels + + + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + grpTopPanel + + + 4 + + + 7, 8 + + + 62, 13 + + + 2 + + + Insert mode: + + + labelControl2 + + + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + grpTopPanel + + + 5 + + + Top, Right + + + 1296, 8 + + + Transparent + + + 166, 54 + + + 0 + + + picDonate + + + DevExpress.XtraEditors.PictureEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + grpTopPanel + + + 6 + + + Bottom, Left + + + 0, 54 + + + 632, 0 + + + No file loaded + + + pageEmpty + + + DevExpress.XtraTab.XtraTabPage, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + tabChannelList + + + 0 + + + 638, 22 + + + 5 + + + tabChannelList + + + DevExpress.XtraTab.XtraTabControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + grpTopPanel + + + 7 + + + Vertical + + + 169, 8 + + + 80, 13 + + + 0 + + + Set Pr#: + + + Program number for insert and set operations + + + labelControl11 + + + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + grpTopPanel + + + 8 + + + 169, 24 + + + OK + + + \d{1,4} + + + RegEx + + + 66, 20 + + + 1 + + + txtSetSlot + + + DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + grpTopPanel + + + 9 + + + Top + + 0, 31 - - Remove from Favorites + + 1474, 78 - - splitContainerControl1 + + 0 + + + groupControl1 + + + grpTopPanel + + + DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + $this + + + 1 + + + CenterScreen + + + ChanSort {0} - Channel List Editor for Samsung, LG and Toshiba TVs + + + dsChannels + + + System.Windows.Forms.BindingSource, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + gviewLeft + + + DevExpress.XtraGrid.Views.Grid.GridView, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colIndex1 + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colOutServiceType + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colOutSlot + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colOutName + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colOutFav + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + repositoryItemCheckedComboBoxEdit1 + + + DevExpress.XtraEditors.Repository.RepositoryItemCheckedComboBoxEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colUid1 + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colOutLock + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + globalImageCollection1 + + + ChanSort.Ui.GlobalImageCollection, ChanSort, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + + + gviewRight + + + DevExpress.XtraGrid.Views.Grid.GridView, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colIndex + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colSlotOld + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colSlotNew + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colName + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colShortName + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colFavorites + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + repositoryItemCheckedComboBoxEdit2 + + + DevExpress.XtraEditors.Repository.RepositoryItemCheckedComboBoxEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colLock + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colSkip + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colHidden + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colEncrypted + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colChannelOrTransponder + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colFreqInMhz + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colServiceId + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colVideoPid + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colAudioPid + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colServiceType + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colServiceTypeName + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colSatellite + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colNetworkId + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colTransportStreamId + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colSymbolRate - - 600, 17 - - - de - - + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colPolarity + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colUid + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colNetworkName + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colNetworkOperator + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colDebug + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colLogicalIndex + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + colSignalSource + + + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + barManager1 + + + DevExpress.XtraBars.BarManager, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + bar1 + + + DevExpress.XtraBars.Bar, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miFile + + + DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miOpen + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miReload + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miRestoreOriginal + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miFileInformation + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miSave + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miSaveAs + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miOpenReferenceFile + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miQuit + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miEdit + + + DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miAddChannel + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miRemove + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miRenameChannel + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miSort + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miRenum + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + mnuFavSet + + + DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miFavSet + + + DevExpress.XtraBars.BarListItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + mnuFavUnset + + + DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miFavUnset + + + DevExpress.XtraBars.BarListItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miLockOn + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miLockOff + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miSkipOn + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miSkipOff + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miHideOn + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miHideOff + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + barSubItem2 + + + DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miTvSettings + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miEraseChannelData + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + mnuOptions + + + DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + barSubItem1 + + + DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miEnglish + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miGerman + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + mnuCharset + + + DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miCharsetForm + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miIsoCharSets + + + DevExpress.XtraBars.BarListItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miShowWarningsAfterLoad + + + DevExpress.XtraBars.BarCheckItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miAutoLoadRefList + + + DevExpress.XtraBars.BarCheckItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miEraseDuplicateChannels + + + DevExpress.XtraBars.BarCheckItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + mnuHelp + + + DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miWiki + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miOpenWebsite + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miAbout + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miMoveUp + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miMoveDown + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miCleanupChannels + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + defaultLookAndFeel1 + + + DevExpress.LookAndFeel.DefaultLookAndFeel, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + splashScreenManager1 + + + DevExpress.XtraSplashScreen.SplashScreenManager, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + mnuContext + + + DevExpress.XtraBars.PopupMenu, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + timerEditDelay + + + System.Windows.Forms.Timer, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + MainForm + + + DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + 04/29/2013 00:24:15 + + + 16, 16 + + + 257, 5 + + + 23, 23 + + + 15 + + + btnToggleLock + + + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + pnlEditControls + + + 0 + + + 232, 5 + + + 23, 23 + + + 14 + + + ±E + + + btnToggleFavE + + + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + pnlEditControls + + + 1 + + + 207, 5 + + + 23, 23 + + + 13 + + + ±D + + + btnToggleFavD + + + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + pnlEditControls + + + 2 + + + 182, 5 + + + 23, 23 + + + 12 + + + ±C + + + btnToggleFavC + + + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + pnlEditControls + + + 3 + + + 157, 5 + + + 23, 23 + + + 11 + + + ±B + + + btnToggleFavB + + + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + pnlEditControls + + + 4 + + + 132, 5 + + + 23, 23 + + + 10 + + + ±A + + + btnToggleFavA + + + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + pnlEditControls + + + 5 + + + Tahoma, 8.25pt, style=Strikeout + + + 295, 4 + + + 66, 23 + + + 9 + + + Filter + + + Reset filter + + + btnClearLeftFilter + + + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + pnlEditControls + + + 6 + + + 98, 5 + + + 23, 23 + + + 8 + + + 1-999 + + + Renumber selected channels + + + btnRenum + + + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + pnlEditControls + + + 7 + + + 34, 5 + + + 23, 23 + + + 6 + + + v + + + Move selected channels down + + + btnDown + + + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + pnlEditControls + + + 8 + + + 5, 5 + + + 23, 23 + + + 5 + + + ^ + + + Move selected channels up + + + btnUp + + + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + pnlEditControls + + + 9 + + + 63, 5 + + + 23, 23 + + + 2 + + + X + + + Remove selected channels + + + btnRemoveLeft + + + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + pnlEditControls + + + 10 + + + Top + + + 2, 21 + + + 382, 33 + + + 0 + + + pnlEditControls + + + DevExpress.XtraEditors.PanelControl, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + grpOutputList + + + 2 + + + Fill + + + 0, 0 + + + 386, 490 + + + 0 + + + Sorted channels (.csv) + + + grpOutputList + + + DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + splitContainerControl1.Panel1 + + + 0 + + + Panel1 + + + Fill + + + 2, 54 + + + Pr. index + + + Old Pr# + + + Old program number + + True + + + 0 + + + 50 + + + New Pr# + + + New program number + + + True + + + 1 + + + 45 + + + Channel name + + + True + + + 2 + + + 180 + + + Short name + + + True + + + 3 + + + Favorites + + + False + + + Combo + + + + + + RegEx + + + True + + + 4 + + + 55 + + + Locked + + + True + + + 5 + + + 40 + + + Skip + + + True + + + 6 + + + 40 + + + Hide + + + True + + + 7 + + + 40 + + + Crypt + + + Encrypted + + + True + + + 8 + + + 40 + + + Chan/ Transp + + + Channel or transponder number + + + True + + + 11 + + + 45 + + + Freqency (MHz) + + + True + + + 10 + + + 57 + + + Service ID + + + True + + + 12 + + + 45 + + + Video PID + + + True + + + 13 + + + 40 + + + Audio PID + + + True + + + 14 + + + 40 + + + Service Typ + + + True + + + 15 + + + 45 + + + True + + + 9 + + + 45 + + + Satellite + + + True + + + 16 + + + 100 + + + Netzwerk (ONID) + + + True + + + 17 + + + 45 + + + TS ID + + + Transport Stream ID + + + True + + + 18 + + + 40 + + + Symbol rate + + + True + + + 19 + + + 40 + + + Polarity + + + 40 + + + Uid + + + 120 + + + Network Name + + + True + + + 20 + + + Network Operator + + + True + + + 21 + + + Order + + + Signal source + + + 1079, 417 + + + 1 + + + gridRight + + + DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + grpInputList + + + 0 + + + Bottom + + + 2, 471 + + + 2, 2, 2, 2 + + + 153, 17 + + + 2 + + + F5: Filter | F6: List | Enter: add + + + lblHotkeyRight + + + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + grpInputList + + + 1 + + + 34, 5 + + + 23, 23 + + + 6 + + + X + + + Remove selected channels from sorted list + + + btnRemoveRight + + + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + panelControl3 + + + 0 + + + 71, 5 + + + 121, 23 + + + 5 + + + << Add all + + + Append all currently unsorted channels at the end of the list + + + btnAddAll + + + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + panelControl3 + + + 1 + + + Tahoma, 8.25pt, style=Strikeout + + + 198, 5 + + + 66, 23 + + + 2 + + + Filter + + + Reset filter + + + btnClearRightFilter + + + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + panelControl3 + + + 2 + + + 5, 5 + + + 23, 23 + + + 4 + + + << + + + Add selected channels to sorted list + + + btnAdd + + + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + panelControl3 + + + 3 + + + Top + + + 2, 21 + + + 1079, 33 + + + 0 + + + panelControl3 + + + DevExpress.XtraEditors.PanelControl, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + grpInputList + + + 2 + + + Fill + + + 0, 0 + + + 1083, 490 + + + 0 + + + All channels + + + grpInputList + + + DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + splitContainerControl1.Panel2 + + + 0 + + + Panel2 + + + 1474, 490 + + + 5 + + + splitContainerControl1 + + + splitContainerControl1 + + + DevExpress.XtraEditors.SplitContainerControl, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + $this + + + 0 + + + 194, 17 781, 17 - - 194, 17 - - - 361, 17 - 900, 17 - - 475, 17 - \ No newline at end of file diff --git a/ChanSort/Properties/Settings.Designer.cs b/ChanSort/Properties/Settings.Designer.cs index 6e5ea07..d24c3ae 100644 --- a/ChanSort/Properties/Settings.Designer.cs +++ b/ChanSort/Properties/Settings.Designer.cs @@ -286,5 +286,41 @@ namespace ChanSort.Ui.Properties { this["EraseDuplicateChannels"] = value; } } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("True")] + public bool AutoLoadRefList { + get { + return ((bool)(this["AutoLoadRefList"])); + } + set { + this["AutoLoadRefList"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("True")] + public bool AutoAppendUnsortedChannels { + get { + return ((bool)(this["AutoAppendUnsortedChannels"])); + } + set { + this["AutoAppendUnsortedChannels"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("True")] + public bool CloseGaps { + get { + return ((bool)(this["CloseGaps"])); + } + set { + this["CloseGaps"] = value; + } + } } } diff --git a/ChanSort/Properties/Settings.settings b/ChanSort/Properties/Settings.settings index 8c163de..61dddc6 100644 --- a/ChanSort/Properties/Settings.settings +++ b/ChanSort/Properties/Settings.settings @@ -68,5 +68,14 @@ True + + True + + + True + + + True + \ No newline at end of file diff --git a/ChanSort/app.config b/ChanSort/app.config index 3df2653..2c025b9 100644 --- a/ChanSort/app.config +++ b/ChanSort/app.config @@ -74,6 +74,15 @@ True + + True + + + True + + + True + diff --git a/readme.txt b/readme.txt index 88646a1..2426b5a 100644 --- a/readme.txt +++ b/readme.txt @@ -1,11 +1,14 @@ -Version v2013-04-28 ======================================================= +Version v2013-04-29a ====================================================== Changes: - Added support for LG's 2013 LA-series DVB-S channel lists. Due to a lack of test files containing analog or DVB-C/T channels, these lists are not supported yet. If you have a TLL file with such channels please send it to horst@beham.biz. -- Improved clean-up of LG channel lists with duplicate channels +- Improved clean-up of LG channel lists. This should solve problems with + program numbers changing randomly or inability to change them at all. +- Fixed: Program number and channel name can be edited again by directly + typing the number or name on the keyboard. - Fixed: Sorting and column layout is now preserved when switching lists The complete change log can be found at the end of this document @@ -104,8 +107,16 @@ OTHER DEALINGS IN THE SOFTWARE. Change log ================================================================ -2013-04-27 -- Added support for LG's 2013 LA-series (DVB-S only) +2013-04-29a (inofficial alpha) +- Added support for LG's 2013 LA-series DVB-S channel lists. + Due to a lack of test files containing analog or DVB-C/T channels, these + lists are not supported yet. If you have a TLL file with such channels + please send it to horst@beham.biz. +- Improved clean-up of LG channel lists. This should solve problems with + program numbers changing randomly or inability to change them at all. +- Fixed: Program number and channel name can be edited again by directly + typing the number or name on the keyboard. +- Fixed: Sorting and column layout is now preserved when switching lists 2013-04-21 - Fix: Encryption flag for Samsung analog and DVB-C/T lists now shown