Skip to content

Commit

Permalink
- LG GlobalClone: Favorites were not loaded correctly into ChanSort
Browse files Browse the repository at this point in the history
- LG GlobalClone: some changes that might fix problems where the TV didn't work properly
  with an importet list (ChanSort now modifies less data in the file)
- Menu items for hide/unhide, skip/unskip, lock/unlock are now disabled when these features are not supported by the
  channel list file format
- Applying a .txt reference list (which doesn't contain information about skip/lock/hide) will no longer clear these
  flags in the current channel list
  • Loading branch information
PredatH0r committed Nov 24, 2019
1 parent cdd7c21 commit 9ba8a35
Show file tree
Hide file tree
Showing 18 changed files with 107 additions and 18 deletions.
2 changes: 2 additions & 0 deletions source/ChanSort.Api/Controller/CsvRefListSerializer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ public CsvRefListSerializer(string fileName) : base(fileName)
{
this.Features.ChannelNameEdit = ChannelNameEditMode.All;
this.Features.CanSkipChannels = true;
this.Features.CanLockChannels = true;
this.Features.CanHideChannels = true;
this.Features.DeleteMode = DeleteMode.FlagWithoutPrNr;
this.Features.CanHaveGaps = true;
this.Features.EncryptedFlagEdit = false;
Expand Down
12 changes: 8 additions & 4 deletions source/ChanSort.Api/Controller/Editor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -293,10 +293,14 @@ public void ApplyReferenceList(DataRoot refDataRoot, ChannelList refList, Channe
chan.NewProgramNr = -1;

tvChannel.SetPosition(0, newNr);
tvChannel.Skip = refChannel.Skip;
tvChannel.Lock = refChannel.Lock;
tvChannel.Hidden = refChannel.Hidden;
tvChannel.IsDeleted = refChannel.IsDeleted;
if (refDataRoot.CanSkip && this.DataRoot.CanSkip)
tvChannel.Skip = refChannel.Skip;
if (refDataRoot.CanLock && this.DataRoot.CanLock)
tvChannel.Lock = refChannel.Lock;
if (refDataRoot.CanHide && this.DataRoot.CanHide)
tvChannel.Hidden = refChannel.Hidden;

//tvChannel.IsDeleted = refChannel.IsDeleted;
if ((tvChannel.SignalSource & SignalSource.Analog) != 0 && !string.IsNullOrEmpty(refChannel.Name))
{
tvChannel.Name = refChannel.Name;
Expand Down
2 changes: 2 additions & 0 deletions source/ChanSort.Api/Controller/SerializerBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ public class SupportedFeatures
public bool CleanUpChannelData { get; set; }
public bool DeviceSettings { get; set; }
public bool CanSkipChannels { get; set; } = true;
public bool CanLockChannels { get; set; } = true;
public bool CanHideChannels { get; set; } = true;
public bool CanHaveGaps { get; set; } = true;
public bool EncryptedFlagEdit { get; set; }
public DeleteMode DeleteMode { get; set; } = DeleteMode.NotSupported;
Expand Down
2 changes: 2 additions & 0 deletions source/ChanSort.Api/Controller/TxtRefListSerializer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ public TxtRefListSerializer(string inputFile) : base(inputFile)
{
this.Features.ChannelNameEdit = ChannelNameEditMode.All;
this.Features.CanSkipChannels = false;
this.Features.CanLockChannels = false;
this.Features.CanHideChannels = false;
this.Features.DeleteMode = DeleteMode.Physically;
this.Features.CanHaveGaps = true;
this.Features.EncryptedFlagEdit = false;
Expand Down
3 changes: 3 additions & 0 deletions source/ChanSort.Api/Model/DataRoot.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@ public class DataRoot
public bool MixedSourceFavorites => this.loader.Features.MixedSourceFavorites;
public bool AllowGapsInFavNumbers => this.loader.Features.AllowGapsInFavNumbers;
public bool DeletedChannelsNeedNumbers => this.loader.Features.DeleteMode == SerializerBase.DeleteMode.FlagWithPrNr;
public bool CanSkip => this.loader.Features.CanSkipChannels;
public bool CanLock => this.loader.Features.CanLockChannels;
public bool CanHide => this.loader.Features.CanHideChannels;

public DataRoot(SerializerBase loader)
{
Expand Down
25 changes: 19 additions & 6 deletions source/ChanSort.Loader.GlobalClone/GcSerializer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,11 @@ class GcSerializer : SerializerBase
public GcSerializer(string inputFile) : base(inputFile)
{
this.Features.ChannelNameEdit = ChannelNameEditMode.All;
this.Features.DeleteMode = DeleteMode.FlagWithPrNr;
this.Features.DeleteMode = DeleteMode.FlagWithoutPrNr;
this.Features.CanHaveGaps = true;
this.Features.CanSkipChannels = true;
this.Features.CanLockChannels = true;
this.Features.CanHideChannels = true;

this.DataRoot.AddChannelList(this.atvChannels);
this.DataRoot.AddChannelList(this.dtvTvChannels);
Expand Down Expand Up @@ -272,7 +275,7 @@ private void ParseChannelInfoNodes(XmlNode itemNode, GcChannel ch, bool onlyName
case "transport_id":
ch.TransportStreamId = int.Parse(info.InnerText);
break;
case "service_id":
case "service_id": // also same value in "programNo"
ch.ServiceId = int.Parse(info.InnerText);
break;
case "serviceType":
Expand Down Expand Up @@ -320,7 +323,7 @@ private void ParseChannelInfoNodes(XmlNode itemNode, GcChannel ch, bool onlyName
this.Features.SupportedFavorites |= (Favorites)mask;
this.Features.SortedFavorites = true;
if (((int)ch.Favorites & mask) != 0) // xml element holds bad index data (250) when fav is not set
ch.SetPosition(n + 1, int.Parse(info.InnerText));
ch.SetOldPosition(n + 1, int.Parse(info.InnerText));
}
break;
}
Expand Down Expand Up @@ -379,7 +382,6 @@ public override void Save(string tvOutputFile)
{
foreach (var list in this.DataRoot.ChannelLists)
{

foreach (var channel in list.Channels)
{
var ch = channel as GcChannel;
Expand Down Expand Up @@ -425,17 +427,25 @@ public override void Save(string tvOutputFile)
// ?
break;
case "isDisabled":
node.InnerText = ch.IsDeleted || ch.IsDisabled ? "1" : "0";
node.InnerText = ch.IsDisabled /* || ch.IsDeleted */ ? "1" : "0";
break;
case "isDeleted":
node.InnerText = ch.IsDeleted ? "1" : "0";
break;
case "isUserSelCHNo":
if (ch.NewProgramNr != ch.OldProgramNr)
node.InnerText = "1";
node.InnerText = ch.IsDeleted ? "0" : "1";
break;
case "mapType":
mapType = node.InnerText;
if (int.TryParse(mapType, out int value))
{
if (ch.IsDeleted)
value |= 0x02; // all channels that have isDeleted=1 had mapType=0x03, all other channels had mapType=0x01
else
value &= ~0x02;
node.InnerText = value.ToString();
}
break;
case "mapAttr":
if (mapType == "1")
Expand Down Expand Up @@ -474,6 +484,9 @@ public override void Save(string tvOutputFile)
xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n\r\n" + xml;
xml = xml.Replace("<ATV></ATV>\r\n", "<ATV>\r\n</ATV>\r\n");
xml = xml.Replace("<DTV></DTV>\r\n", "<DTV>\r\n</DTV>\r\n");
xml = xml.Replace("<hexAszTkgsMessage type=\"0\"></hexAszTkgsMessage>", "<hexAszTkgsMessage type=\"0\"> </hexAszTkgsMessage>");
xml = xml.Replace("<aszTkgsMessage type=\"0\"></aszTkgsMessage>", "<aszTkgsMessage type=\"0\"> </aszTkgsMessage>");

if (!xml.EndsWith("\r\n"))
xml += "\r\n";
File.WriteAllText(tvOutputFile, xml, settings.Encoding);
Expand Down
2 changes: 2 additions & 0 deletions source/ChanSort.Loader.Hisense/HisDbSerializer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,8 @@ public HisDbSerializer(string inputFile) : base(inputFile)
this.Features.ChannelNameEdit = ChannelNameEditMode.All;
this.Features.DeleteMode = DeleteMode.NotSupported;
this.Features.CanSkipChannels = false;
this.Features.CanLockChannels = true;
this.Features.CanHideChannels = true;
this.Features.CanHaveGaps = true;
this.Features.SortedFavorites = true;

Expand Down
2 changes: 2 additions & 0 deletions source/ChanSort.Loader.Hisense2017/HisDbSerializer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,8 @@ public HisDbSerializer(string inputFile) : base(inputFile)
Features.ChannelNameEdit = ChannelNameEditMode.All;
Features.DeleteMode = DeleteMode.FlagWithPrNr;
Features.CanSkipChannels = true;
Features.CanLockChannels = true;
Features.CanHideChannels = true;
Features.CanHaveGaps = true;
Features.MixedSourceFavorites = true;
Features.SortedFavorites = true;
Expand Down
3 changes: 3 additions & 0 deletions source/ChanSort.Loader.LG/TllFileSerializer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,9 @@ public TllFileSerializer(string inputFile) : base(inputFile)
{
this.Features.ChannelNameEdit = ChannelNameEditMode.Analog;
this.Features.DeleteMode = DeleteMode.FlagWithoutPrNr;
this.Features.CanSkipChannels = true;
this.Features.CanLockChannels = true;
this.Features.CanHideChannels = true;
this.Features.CanHaveGaps = true;
this.Features.DeviceSettings = true;
this.Features.CleanUpChannelData = true;
Expand Down
3 changes: 3 additions & 0 deletions source/ChanSort.Loader.Panasonic/Serializer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@ public Serializer(string inputFile) : base(inputFile)

this.Features.ChannelNameEdit = ChannelNameEditMode.None; // due to the chaos with binary data inside the "sname" string column, writing back a name has undesired side effects
this.Features.DeleteMode = DeleteMode.Physically;
this.Features.CanSkipChannels = true;
this.Features.CanLockChannels = true;
this.Features.CanHideChannels = false;
this.Features.CanHaveGaps = false;
this.Features.EncryptedFlagEdit = true;
this.Features.SortedFavorites = true;
Expand Down
35 changes: 29 additions & 6 deletions source/ChanSort.Loader.PhilipsXml/Serializer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,30 @@ namespace ChanSort.Loader.PhilipsXml
{
/*
This loader supports 2 different kinds of XML files from Philips.
I had a test file "DVBS.xml" with satellite channels and entries like:
<Channel>
<Setup SatelliteName="0x54 0x00 0x55 0x00 0x52 0x00 0x4B 0x00 0x53 0x00 0x41 0x00 0x54 0x00 0x20 0x00 0x34 0x00 0x32 0x00 0x45 0x00 " ChannelNumber="1" ChannelName="0x54 0x00 0xC4 0x00 0xB0 0x00 0x56 0x00 0xC4 0x00 0xB0 0x00 0x42 0x00 0x55 0x00 0x20 0x00 0x53 0x00 0x50 0x00 0x4F 0x00 0x52 0x00 " ChannelLock="0" UserModifiedName="0" LogoID="0" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" />
<Broadcast ChannelType="3" Onid="1070" Tsid="43203" Sid="16001" Frequency="11794" Modulation="0" ServiceType="1" SymbolRate="27507" LNBNumber="38" Polarization="0" SystemHidden="0" />
<Setup SatelliteName="0x54 0x00 0x55 0x00 0x52 0x00 0x4B 0x00 0x53 0x00 0x41 0x00 0x54 0x00 0x20 0x00 0x34 0x00 0x32 0x00 0x45 0x00 " ChannelNumber="1" ChannelName="0x54 0x00 0xC4 0x00 0xB0 0x00 0x56 0x00 0xC4 0x00 0xB0 0x00 0x42 0x00 0x55 0x00 0x20 0x00 0x53 0x00 0x50 0x00 0x4F 0x00 0x52 0x00 " ChannelLock="0" UserModifiedName="0" LogoID="0" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" />
<Broadcast ChannelType="3" Onid="1070" Tsid="43203" Sid="16001" Frequency="11794" Modulation="0" ServiceType="1" SymbolRate="27507" LNBNumber="38" Polarization="0" SystemHidden="0" />
</Channel>
Example from a ChannelMap_100\ChannelList\channellib\DVBC.xml:
<Channel>
<Setup ChannelNumber="2" ChannelName="0x50 0x00 0x61 0x00 0x72 0x00 0x61 0x00 0x6D 0x00 0x6F 0x00 0x75 0x00 0x6E 0x00 0x74 0x00 0x20 0x00 0x43 0x00 0x68 0x00 0x61 0x00 0x6E 0x00 0x6E 0x00 0x65 0x00 0x6C 0x00 " LogoID="0" ChannelLock="0" UserModifiedName="0" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scramble="0"></Setup>
<Broadcast ChannelType="3" Onid="1" Tsid="104" Sid="357" Frequency="386000000" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="6900" DecoderType="2" SubType="0" NetworkID="0" StreamPriority="0" SystemHidden="0"></Broadcast>
</Channel>
Example from a ChannelMap_105\ChannelList\s2channellib\DVBS.xml:
<Channel>
<Setup SatelliteName="0x41 0x00 0x53 0x00 0x54 0x00 0x52 0x00 0x41 0x00 0x20 0x00 0x31 0x00 0x39 0x00 0x2E 0x00 0x32 0x00 0x45 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelNumber="45" ChannelName="0x31 0x00 0x2D 0x00 0x32 0x00 0x2D 0x00 0x33 0x00 0x2E 0x00 0x74 0x00 0x76 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="1441" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="45" Scrambled="0"></Setup>
<Broadcast UniqueID="14" ChannelType="3" Onid="133" Tsid="5" Sid="1" Frequency="12460" Modulation="8-VSB" ServiceType="1" SymbolRate="27500" LNBNumber="1" Polarization="1" SystemHidden="0"></Broadcast>
</Channel>
Example from a ChannelMap_110\ChannelList\channellib\DVBC.xml:
<Channel>
<Setup ChannelNumber="1" ChannelName="0x44 0x00 0x61 0x00 0x73 0x00 0x20 0x00 0x45 0x00 0x72 0x00 0x73 0x00 0x74 0x00 0x65 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="0" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="12" ChannelType="3" Onid="1" Tsid="1101" Sid="1" Frequency="306" Modulation="256" ServiceType="1" Bandwidth="8" SymbolRate="6901000" DecoderType="2" NetworkID="43264" StreamPriority="0" SystemHidden="0"></Broadcast>
</Channel>
The other file was "CM_TPM1013E_LA_CK.xml" with entries like:
<Channel>
Expand All @@ -43,6 +61,9 @@ class Serializer : SerializerBase
public Serializer(string inputFile) : base(inputFile)
{
this.Features.ChannelNameEdit = ChannelNameEditMode.All;
this.Features.CanSkipChannels = false;
this.Features.CanLockChannels = true;
this.Features.CanHideChannels = true;
this.Features.DeleteMode = DeleteMode.Physically;
this.Features.CanSaveAs = false;

Expand Down Expand Up @@ -252,8 +273,10 @@ private void ReadChannel(FileData file, ChannelList curList, XmlNode node, int r
foreach(XmlAttribute attr in n.Attributes)
data.Add(attr.LocalName, attr.Value);
}

var chan = new Channel(curList.SignalSource & SignalSource.MaskAdInput, rowId, rowId, setupNode);

if (!int.TryParse(data["UniqueID"], out var uniqueId)) // UniqueId only exists in ChannelMap_105 and later
uniqueId = rowId;
var chan = new Channel(curList.SignalSource & SignalSource.MaskAdInput, rowId, uniqueId, setupNode);
chan.OldProgramNr = -1;
chan.IsDeleted = false;
if (file.formatVersion == 1)
Expand Down
3 changes: 3 additions & 0 deletions source/ChanSort.Loader.Samsung/ScmSerializer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,9 @@ public ScmSerializer(string inputFile) : base(inputFile)
this.ReadConfigurationFromIniFile();
this.Features.ChannelNameEdit = ChannelNameEditMode.All;
this.Features.DeleteMode = DeleteMode.FlagWithPrNr;
this.Features.CanSkipChannels = true;
this.Features.CanLockChannels = true;
this.Features.CanHideChannels = true;
this.Features.CleanUpChannelData = true;
this.Features.EncryptedFlagEdit = true;
}
Expand Down
3 changes: 3 additions & 0 deletions source/ChanSort.Loader.SamsungJ/DbSerializer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ public DbSerializer(string inputFile) : base(inputFile)

this.Features.ChannelNameEdit = ChannelNameEditMode.All;
this.Features.DeleteMode = DeleteMode.Physically;
this.Features.CanSkipChannels = true;
this.Features.CanLockChannels = true;
this.Features.CanHideChannels = true;
this.Features.SupportedFavorites = Favorites.A | Favorites.B | Favorites.C | Favorites.D | Favorites.E;
this.Features.SortedFavorites = true;
this.Features.AllowGapsInFavNumbers = false;
Expand Down
3 changes: 3 additions & 0 deletions source/ChanSort.Loader.SilvaSchneider/Serializer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ public Serializer(string inputFile) : base(inputFile)
{
this.Features.ChannelNameEdit = ChannelNameEditMode.None;
this.Features.DeleteMode = DeleteMode.Physically;
this.Features.CanSkipChannels = false;
this.Features.CanLockChannels = false;
this.Features.CanHideChannels = false;
this.Features.SortedFavorites = false;
this.Features.SupportedFavorites = 0;

Expand Down
5 changes: 5 additions & 0 deletions source/ChanSort.Loader.Sony/Serializer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,10 @@ public Serializer(string inputFile) : base(inputFile)
this.Features.DeleteMode = DeleteMode.FlagWithoutPrNr; // in Android/e-format, this will be changed to FlagWithPrNr
this.Features.MixedSourceFavorites = false; // true for Android/e-format
this.Features.SortedFavorites = false; // true for Android/e-format
this.Features.CanSkipChannels = false;
this.Features.CanLockChannels = false;
this.Features.CanHideChannels = false; // true in Android/e-format


this.DataRoot.AddChannelList(new ChannelList(SignalSource.DvbT | SignalSource.Tv, "DVB-T TV"));
this.DataRoot.AddChannelList(new ChannelList(SignalSource.DvbT | SignalSource.Radio, "DVB-T Radio"));
Expand Down Expand Up @@ -164,6 +168,7 @@ private void ReadSdbXml(XmlNode node)
this.format = "e" + formatNode.InnerText;
this.isEFormat = true;
this.Features.DeleteMode = DeleteMode.FlagWithPrNr;
this.Features.CanHideChannels = true;
this.Features.MixedSourceFavorites = true;
this.Features.SortedFavorites = true;
this.mixedFavList = new ChannelList(SignalSource.All, "Favorites");
Expand Down
3 changes: 3 additions & 0 deletions source/ChanSort.Loader.Toshiba/DbSerializer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ public DbSerializer(string inputFile) : base(inputFile)

this.Features.ChannelNameEdit = ChannelNameEditMode.All;
this.Features.DeleteMode = DeleteMode.Physically;
this.Features.CanSkipChannels = false;
this.Features.CanLockChannels = true;
this.Features.CanHideChannels = false; // true in Android/e-format

this.DataRoot.AddChannelList(this.atvChannels);
this.DataRoot.AddChannelList(this.dtvTvChannels);
Expand Down
8 changes: 6 additions & 2 deletions source/ChanSort/MainForm.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1480,7 +1480,7 @@ private bool GetGridColumnVisibility(GridColumn col)
{
if (filter.Contains("+" + col.FieldName)) // force-show without further checks
return true;
if (!filter.Contains(col.FieldName)) // force-hide without further checks
if (filter.Contains("-" + col.FieldName) || !filter.Contains(col.FieldName)) // force-hide without further checks
return false;
}
else if (col.Tag is bool originalVisible && !originalVisible)
Expand All @@ -1497,14 +1497,16 @@ private bool GetGridColumnVisibility(GridColumn col)
if (col == this.colAudioPid) return (source & SignalSource.Digital) != 0;
//if (col == this.colServiceType) return (source & SignalSource.Digital) != 0;
if (col == this.colServiceTypeName) return (source & SignalSource.Digital) != 0;
if (col == this.colEncrypted) return (source & SignalSource.Digital) != 0;
if (col == this.colTransportStreamId) return (source & SignalSource.Digital) != 0;
if (col == this.colNetworkName) return (source & SignalSource.Digital) != 0;
if (col == this.colNetworkOperator) return (source & SignalSource.Digital) != 0;
if (col == this.colProvider) return (source & SignalSource.Digital) != 0;
if (col == this.colSatellite) return (source & SignalSource.Sat) != 0;
if (col == this.colNetworkId) return (source & SignalSource.Digital) != 0;
if (col == this.colSymbolRate) return (source & SignalSource.Digital) != 0;
if (col == this.colSkip) return (source & SignalSource.Digital) != 0 && this.DataRoot.CanSkip;
if (col == this.colLock) return (source & SignalSource.Digital) != 0 && this.DataRoot.CanLock;
if (col == this.colHidden) return (source & SignalSource.Digital) != 0 && this.DataRoot.CanHide;
if (col == this.colIndex) return col.Visible;
if (col == this.colUid) return col.Visible;
if (col == this.colDebug) return col.Visible;
Expand Down Expand Up @@ -1643,6 +1645,8 @@ private void UpdateMenu(bool afterFileLoad = false)
this.miMoveDown.Visibility = visLeft;
this.miAddChannel.Visibility = visRight;
this.miSkipOn.Enabled = this.miSkipOff.Enabled = this.currentTvSerializer?.Features.CanSkipChannels ?? false;
this.miLockOn.Enabled = this.miLockOff.Enabled = this.currentTvSerializer?.Features.CanLockChannels ?? false;
this.miHideOn.Enabled = this.miHideOff.Enabled = this.currentTvSerializer?.Features.CanHideChannels ?? false;

var isLeftGridSortedByNewProgNr = this.IsLeftGridSortedByNewProgNr;
var sel = this.gviewLeft.GetSelectedRows();
Expand Down
9 changes: 9 additions & 0 deletions source/changelog.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,15 @@
ChanSort Change Log
===================

2019-11-24
- LG GlobalClone: Favorites were not loaded correctly into ChanSort
- LG GlobalClone: some changes that might fix problems where the TV didn't work properly
with an importet list (ChanSort now modifies less data in the file)
- Menu items for hide/unhide, skip/unskip, lock/unlock are now disabled when these features are not supported by the
channel list file format
- Applying a .txt reference list (which doesn't contain information about skip/lock/hide) will no longer clear these
flags in the current channel list

2019-11-18
- Philips: fixed file detection in some ChannelMap_xxx folder structures

Expand Down

0 comments on commit 9ba8a35

Please sign in to comment.