- reworked UI

- fixed various issues with incorrect selection and program# assignment
This commit is contained in:
hbeham
2013-04-06 01:46:28 +02:00
parent f882df48c1
commit 961f3be305
28 changed files with 3645 additions and 2926 deletions

View File

@@ -122,15 +122,16 @@ namespace ChanSort.Api
ChannelInfo lastInsertedChannel = null;
int progNr = this.ChannelList.InsertProgramNumber;
int relativeChannelNumber = 0;
foreach(var channel in this.ChannelList.Channels)
foreach(var channel in this.ChannelList.Channels.Where(c => c.NewProgramNr>=progNr).OrderBy(c=>c.NewProgramNr))
{
if (channel.NewProgramNr != 0 && channel.NewProgramNr >= progNr)
//if (channel.NewProgramNr != 0 && channel.NewProgramNr >= progNr)
{
int gap = count - (channel.NewProgramNr - progNr - relativeChannelNumber);
if (gap <= 0)
break;
channel.NewProgramNr += gap;
++relativeChannelNumber;
if (gap > 0)
{
channel.NewProgramNr += gap;
++relativeChannelNumber;
}
}
}
@@ -154,24 +155,28 @@ namespace ChanSort.Api
#region RemoveChannels()
public void RemoveChannels(IList<ChannelInfo> channels)
public void RemoveChannels(IList<ChannelInfo> channels, bool closeGap)
{
if (channels.Count == 0) return;
this.ChannelList.InsertProgramNumber = channels[0].NewProgramNr;
var orderedChannelList = this.ChannelList.Channels.Where(c => c.NewProgramNr > 0).OrderBy(c => c.NewProgramNr);
foreach (var channel in channels)
{
if (channel.NewProgramNr == 0)
continue;
int prevNr = channel.NewProgramNr;
foreach (var channel2 in this.ChannelList.Channels)
if (closeGap)
{
if (channel2.NewProgramNr > channel.NewProgramNr)
int prevNr = channel.NewProgramNr;
foreach (var channel2 in orderedChannelList)
{
if (prevNr != -1 && channel2.NewProgramNr != prevNr + 1) // don't pull down numbers after a gap
break;
prevNr = channel2.NewProgramNr;
--channel2.NewProgramNr;
if (channel2.NewProgramNr > channel.NewProgramNr)
{
if (prevNr != -1 && channel2.NewProgramNr != prevNr + 1) // don't pull down numbers after a gap
break;
prevNr = channel2.NewProgramNr;
--channel2.NewProgramNr;
}
}
}
channel.NewProgramNr = 0;
@@ -225,7 +230,7 @@ namespace ChanSort.Api
#endregion
#region SetSlotNumber()
public void SetSlotNumber(IList<ChannelInfo> channels, int slot, bool swap)
public void SetSlotNumber(IList<ChannelInfo> channels, int slot, bool swap, bool closeGap)
{
if (channels.Count == 0) return;
if (swap)
@@ -243,7 +248,7 @@ namespace ChanSort.Api
}
else
{
this.RemoveChannels(channels);
this.RemoveChannels(channels, closeGap);
this.ChannelList.InsertProgramNumber = slot;
this.AddChannels(channels);
}
@@ -266,7 +271,7 @@ namespace ChanSort.Api
var list = new List<ChannelInfo>();
list.Add(channel);
this.RemoveChannels(list);
this.RemoveChannels(list, false);
this.ChannelList.InsertProgramNumber = progNr++;
this.AddChannels(list);
this.DataRoot.NeedsSaving = true;
@@ -290,7 +295,7 @@ namespace ChanSort.Api
if (appChannel.RecordIndex < 0)
continue;
if (appChannel.NewProgramNr <= 0 && mode == UnsortedChannelMode.Hide)
if (appChannel.NewProgramNr <= 0 && mode == UnsortedChannelMode.MarkDeleted)
continue;
int progNr = GetNewProgramNr(appChannel, ref maxProgNr);
@@ -307,7 +312,7 @@ namespace ChanSort.Api
return channel.NewProgramNr.ToString("d4");
// eventually hide unsorted channels
if (this.unsortedChannelMode == UnsortedChannelMode.Hide)
if (this.unsortedChannelMode == UnsortedChannelMode.MarkDeleted)
return "Z";
// eventually append in old order
@@ -331,7 +336,7 @@ namespace ChanSort.Api
maxPrNr = prNr;
if (prNr == 0)
{
if (appChannel.OldProgramNr != 0 && this.unsortedChannelMode != UnsortedChannelMode.Hide)
if (appChannel.OldProgramNr != 0 && this.unsortedChannelMode != UnsortedChannelMode.MarkDeleted)
prNr = ++maxPrNr;
}
return prNr;

View File

@@ -96,7 +96,7 @@ namespace ChanSort.Api
public override string ToString()
{
return this.Name;
return this.NewProgramNr + ": " + this.Name;
}
public override bool Equals(object obj)

View File

@@ -50,7 +50,7 @@ namespace ChanSort.Api
{
AppendInOrder=0,
AppendAlphabetically=1,
Hide=2
MarkDeleted=2
}
public enum DvbServiceType

View File

@@ -1,5 +1,5 @@
using System;
using System.Collections.Generic;
using System.Collections.Generic;
using System.IO;
namespace ChanSort.Api
{
@@ -26,7 +26,7 @@ namespace ChanSort.Api
T mapping;
if (!mappings.TryGetValue(dataLength, out mapping) && throwException)
throw new Exception(string.Format(ERR_unknownACTChannelDataLength, this.caption, dataLength));
throw new FileLoadException(string.Format(ERR_unknownACTChannelDataLength, this.caption, dataLength));
return mapping;
}
}

View File

@@ -113,7 +113,7 @@ namespace ChanSort.Loader.ScmFile
if (DetectModelFromCloneInfoFile(zip)) return;
if (DetectModelFromContentFileLengths(zip)) return;
if (DetectModelFromFileName()) return;
throw new IOException("Unable to determine TV model from file content or name");
throw new FileLoadException("Unable to determine TV model from file content or name");
}
#endregion
@@ -385,7 +385,7 @@ namespace ChanSort.Loader.ScmFile
for (int i = 0; i < count; i++)
{
if (satMapping.MagicMarker != 0x55)
throw new IOException("Unknown SatDataBase.dat format");
throw new FileLoadException("Unknown SatDataBase.dat format");
string location = string.Format("{0}.{1}{2}",
satMapping.Longitude/10, satMapping.Longitude%10, satMapping.IsEast ? "E" : "W");

View File

@@ -4,7 +4,7 @@ namespace ChanSort.Loader.ScmFile
{
public class ScmSerializerPlugin : ISerializerPlugin
{
public string PluginName { get { return "Samsung *.scm Loader"; } }
public string PluginName { get { return "Samsung *.scm"; } }
public string FileFilter { get { return "*.scm"; } }
public SerializerBase CreateSerializer(string inputFile)

View File

@@ -13,6 +13,7 @@
public readonly int lnbCount;
public readonly int lnbLength;
public readonly int[] dvbsSubblockLength;
public readonly int dvbsBlockTotalLength;
public int LnbBlockHeaderSize = 12;
@@ -36,6 +37,9 @@
12 + dvbsMaxChannelCount/8 + dvbsMaxChannelCount*sizeOfChannelLinkedListEntry + dvbsMaxChannelCount * dvbsChannelLength, // channels
LnbBlockHeaderSize - 4 + lnbCount * lnbLength // sat/LNB-Config
};
foreach (int len in this.dvbsSubblockLength)
this.dvbsBlockTotalLength += len + 4;
}
/// <summary>

View File

@@ -95,14 +95,5 @@ namespace ChanSort.Loader.TllFile {
return ResourceManager.GetString("TllFileSerializerPlugin_ERR_modelUnknown", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to LG-Electronics *.tll Loader.
/// </summary>
internal static string TllFileSerializerPlugin_PluginName {
get {
return ResourceManager.GetString("TllFileSerializerPlugin_PluginName", resourceCulture);
}
}
}
}

View File

@@ -126,9 +126,6 @@
<data name="TllFileSerializerPlugin_ERR_fileTooBig" xml:space="preserve">
<value>Dateigröße {0} überschreitet das erlaubte Maximum von {1}</value>
</data>
<data name="TllFileSerializerPlugin_PluginName" xml:space="preserve">
<value>LG-Electronics *.tll Loader</value>
</data>
<data name="TllFileSerializer_ERR_dupeChannel" xml:space="preserve">
<value>Sender #{0} (Pr# {1}) wurde gelöscht da er ein Duplikat von Sender #{2} (Pr# {3}) ist: {4}</value>
</data>

View File

@@ -107,9 +107,6 @@
<data name="TllFileSerializerPlugin_ERR_fileTooBig" xml:space="preserve">
<value>File size {0} is larger than allowed maxiumum of {1}</value>
</data>
<data name="TllFileSerializerPlugin_PluginName" xml:space="preserve">
<value>LG-Electronics *.tll Loader</value>
</data>
<data name="TllFileSerializer_ERR_dupeChannel" xml:space="preserve">
<value>Channel #{0} (Pr# {1}) was erased because it is a duplicate of channel #{2} (Pr# {3}): {4}</value>
</data>

View File

@@ -14,6 +14,7 @@ namespace ChanSort.Loader.TllFile
{
public partial class TllFileSerializer : SerializerBase
{
private const long DVBS_S2 = 0x0032532D53425644; // reverse of "DVBS-S2\0"
private const long MaxFileSize = 2000000;
private readonly string ERR_fileTooBig = Resource.TllFileSerializerPlugin_ERR_fileTooBig;
private readonly string ERR_modelUnknown = Resource.TllFileSerializerPlugin_ERR_modelUnknown;
@@ -83,8 +84,6 @@ namespace ChanSort.Loader.TllFile
this.DataRoot.AddChannelList(atvChannels);
this.DataRoot.AddChannelList(dtvChannels);
this.DataRoot.AddChannelList(radioChannels);
this.DataRoot.AddChannelList(satTvChannels);
this.DataRoot.AddChannelList(satRadioChannels);
}
#endregion
@@ -123,7 +122,7 @@ namespace ChanSort.Loader.TllFile
{
long fileSize = new FileInfo(this.FileName).Length;
if (fileSize > MaxFileSize)
throw new InvalidOperationException(string.Format(ERR_fileTooBig, fileSize, MaxFileSize));
throw new FileLoadException(string.Format(ERR_fileTooBig, fileSize, MaxFileSize));
this.fileContent = File.ReadAllBytes(this.FileName);
int off = 0;
@@ -146,7 +145,7 @@ namespace ChanSort.Loader.TllFile
private void ReadFileHeader(ref int off)
{
if (fileContent.Length < 4)
throw new InvalidOperationException(ERR_modelUnknown);
throw new FileLoadException(ERR_modelUnknown);
if (BitConverter.ToUInt32(fileContent, off) == 0x5A5A5A5A)
off += 4;
}
@@ -184,7 +183,7 @@ namespace ChanSort.Loader.TllFile
private void ReadDvbSBlock(ref int off)
{
int blockSize;
if (!IsDvbsBlock(off, out blockSize))
if (!IsDvbsBlock(ref off, out blockSize))
return;
this.dvbsBlockSize = blockSize;
@@ -259,7 +258,7 @@ namespace ChanSort.Loader.TllFile
{
long len = BitConverter.ToUInt32(fileContent, off);
if (len < minSize || off + 4 + len > fileContent.Length)
throw new InvalidOperationException(ERR_modelUnknown);
throw new FileLoadException(ERR_modelUnknown);
return (int)len;
}
#endregion
@@ -268,17 +267,17 @@ namespace ChanSort.Loader.TllFile
private int GetActChannelRecordSize(int off, int blockSize, int channelCount)
{
if ((blockSize - 4) % channelCount != 0)
throw new InvalidOperationException(ERR_modelUnknown);
throw new FileLoadException(ERR_modelUnknown);
int recordSize = (blockSize - 4) / channelCount;
if (off + channelCount * recordSize > fileContent.Length)
throw new InvalidOperationException(ERR_modelUnknown);
throw new FileLoadException(ERR_modelUnknown);
return recordSize;
}
#endregion
#region IsDvbsBlock()
private bool IsDvbsBlock(int off, out int blockSize)
private bool IsDvbsBlock(ref int off, out int blockSize)
{
blockSize = 0;
if (off >= fileContent.Length)
@@ -286,16 +285,30 @@ namespace ChanSort.Loader.TllFile
blockSize = this.GetBlockSize(off);
if (blockSize < 12)
return false;
ulong blockId = BitConverter.ToUInt64(fileContent, off + 8);
if (blockId != 0x0032532D53425644) // reverse "DVBS-S2\0"
return false;
return true;
long blockId = BitConverter.ToInt64(fileContent, off + 8);
if (blockId == DVBS_S2)
return true;
if (blockId == -1)
{
this.satConfig = satConfigs.TryGet(blockSize);
if (this.satConfig != null)
{
this.EraseDvbsBlock(off);
this.UpdateDvbsChecksums();
return true;
}
}
return false;
}
#endregion
#region ReadDvbsSubblocks()
private void ReadDvbsSubblocks(ref int off)
{
this.DataRoot.AddChannelList(satTvChannels);
this.DataRoot.AddChannelList(satRadioChannels);
this.ScanDvbSSubBlockChecksums(off);
// subblock 1 (DVBS header)
@@ -334,7 +347,7 @@ namespace ChanSort.Loader.TllFile
uint fileCrc = BitConverter.ToUInt32(fileContent, off);
uint calcCrc = Crc32.CalcCrc32(fileContent, off + 4, subblockLength);
if (fileCrc != calcCrc)
throw new IOException(string.Format(ERR_wrongChecksum, calcCrc, fileCrc));
throw new FileLoadException(string.Format(ERR_wrongChecksum, calcCrc, fileCrc));
off += 4 + subblockLength;
}
}
@@ -468,7 +481,84 @@ namespace ChanSort.Loader.TllFile
#endregion
#region EraseDvbsBlock()
/// <summary>
/// The model LM640T has the whole DVB-S2 block filled with 0xFF bytes, including the checksums.
/// When a file (even the originally saved one) is loaded back, the TV crashes and performs a factory reset.
/// </summary>
private void EraseDvbsBlock(int off)
{
this.dvbsBlockOffset = off;
this.dvbsBlockSize = satConfig.dvbsBlockTotalLength;
this.dvbsSubblockCrcOffset = new int[satConfig.dvbsSubblockLength.Length];
int p = this.dvbsBlockOffset + 4;
for (int i = 0; i < this.dvbsBlockSize; i++)
this.fileContent[p++] = 0;
using (MemoryStream stream = new MemoryStream(this.fileContent))
using (BinaryWriter wrt = new BinaryWriter(stream))
{
stream.Seek(this.dvbsBlockOffset+4, SeekOrigin.Begin); // skip length
// header
this.dvbsSubblockCrcOffset[0] = (int)stream.Position;
stream.Seek(4, SeekOrigin.Current); // skip CRC32
stream.Write(Encoding.ASCII.GetBytes("DVBS-S2\0"), 0, 8);
wrt.Write((ushort) 7);
wrt.Write((ushort) 4);
// satellite
this.dvbsSubblockCrcOffset[1] = (int)stream.Position;
stream.Seek(4, SeekOrigin.Current); // skip CRC32
stream.Seek(2 + satConfig.satCount/8 + 2 + 2 + satConfig.satCount + 2, SeekOrigin.Current);
for (int i = 0; i < satConfig.satCount; i++)
{
stream.Seek(36, SeekOrigin.Current);
wrt.Write((short) -1);
wrt.Write((short) -1);
stream.Seek(2 + 2, SeekOrigin.Current);
}
// transponders
this.dvbsSubblockCrcOffset[2] = (int)stream.Position;
stream.Seek(4, SeekOrigin.Current); // skip CRC32
stream.Seek(5*2 + satConfig.transponderCount/8, SeekOrigin.Current);
wrt.Write((short) -1);
wrt.Write((short) -1);
stream.Seek(2 + (satConfig.transponderCount - 1)*6 + 2, SeekOrigin.Current);
for (int i = 0; i < satConfig.transponderCount; i++)
{
wrt.Write(-1);
wrt.Write((ushort)0);
wrt.Write((short)-1);
wrt.Write((byte)0xfe);
for (int j = 9; j < satConfig.transponderLength; j++)
wrt.Write((byte)0xFF);
}
// channels
this.dvbsSubblockCrcOffset[3] = (int)stream.Position;
stream.Seek(4, SeekOrigin.Current); // skip CRC32
stream.Seek(12 + satConfig.dvbsMaxChannelCount/8, SeekOrigin.Current);
wrt.Write((short) -1);
wrt.Write((short) -1);
stream.Seek(4 + (satConfig.dvbsMaxChannelCount - 1)*8, SeekOrigin.Current);
for (int i = 0; i < satConfig.dvbsMaxChannelCount*satConfig.dvbsChannelLength; i++)
wrt.Write((byte) 0xFF);
// sat/LNB-config
this.dvbsSubblockCrcOffset[4] = (int)stream.Position;
stream.Seek(4, SeekOrigin.Current); // skip CRC32
stream.Seek(2, SeekOrigin.Current);
wrt.Write((byte) 1);
stream.Seek(satConfig.lnbCount/8 - 1, SeekOrigin.Current);
}
}
#endregion
#region Save()
public override void Save(string tvOutputFile, string csvOutputFile)
{

View File

@@ -1,27 +1,17 @@
using System.IO;
using ChanSort.Api;
using ChanSort.Api;
namespace ChanSort.Loader.TllFile
{
public class TllFileSerializerPlugin : ISerializerPlugin
{
private const int MAX_FILE_SIZE = 16*1000*1000;
private readonly string ERR_fileTooBig = Resource.TllFileSerializerPlugin_ERR_fileTooBig;
public string PluginName { get { return Resource.TllFileSerializerPlugin_PluginName; } }
public string PluginName { get { return "LG-Electronics *.tll"; } }
public string FileFilter { get { return "*.TLL"; } }
#region CreateSerializer()
public SerializerBase CreateSerializer(string inputFile)
{
long fileSize = new FileInfo(inputFile).Length;
if (fileSize > MAX_FILE_SIZE)
throw new IOException(string.Format(ERR_fileTooBig, fileSize, MAX_FILE_SIZE));
return new TllFileSerializer(inputFile);
}
#endregion
}
}

View File

@@ -30,34 +30,26 @@
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutForm));
this.labelControl1 = new DevExpress.XtraEditors.LabelControl();
this.hyperLinkEdit1 = new DevExpress.XtraEditors.HyperLinkEdit();
this.lnkDownload = new DevExpress.XtraEditors.HyperLinkEdit();
this.gcPlugins = new DevExpress.XtraGrid.GridControl();
this.gvPlugins = new DevExpress.XtraGrid.Views.Grid.GridView();
this.colPlugin = new DevExpress.XtraGrid.Columns.GridColumn();
this.colDisplayText = new DevExpress.XtraGrid.Columns.GridColumn();
this.colFileTypes = new DevExpress.XtraGrid.Columns.GridColumn();
this.hyperLinkEdit2 = new DevExpress.XtraEditors.HyperLinkEdit();
this.labelControl3 = new DevExpress.XtraEditors.LabelControl();
this.labelControl4 = new DevExpress.XtraEditors.LabelControl();
this.labelControl5 = new DevExpress.XtraEditors.LabelControl();
this.hyperLinkEdit3 = new DevExpress.XtraEditors.HyperLinkEdit();
this.txtCredits = new DevExpress.XtraEditors.MemoEdit();
this.xtraTabControl1 = new DevExpress.XtraTab.XtraTabControl();
this.xtraTabPage1 = new DevExpress.XtraTab.XtraTabPage();
this.xtraTabPage2 = new DevExpress.XtraTab.XtraTabPage();
this.picDonate = new DevExpress.XtraEditors.PictureEdit();
this.lnkEmail = new DevExpress.XtraEditors.HyperLinkEdit();
this.labelControl2 = new DevExpress.XtraEditors.LabelControl();
((System.ComponentModel.ISupportInitialize)(this.hyperLinkEdit1.Properties)).BeginInit();
this.labelControl4 = new DevExpress.XtraEditors.LabelControl();
this.lnkLicense = new DevExpress.XtraEditors.HyperLinkEdit();
this.labelControl5 = new DevExpress.XtraEditors.LabelControl();
this.txtCredits = new DevExpress.XtraEditors.MemoEdit();
this.simpleButton1 = new DevExpress.XtraEditors.SimpleButton();
this.labelControl3 = new DevExpress.XtraEditors.LabelControl();
((System.ComponentModel.ISupportInitialize)(this.lnkDownload.Properties)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.gcPlugins)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.gvPlugins)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.hyperLinkEdit2.Properties)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.hyperLinkEdit3.Properties)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.lnkEmail.Properties)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.lnkLicense.Properties)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.txtCredits.Properties)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xtraTabControl1)).BeginInit();
this.xtraTabControl1.SuspendLayout();
this.xtraTabPage1.SuspendLayout();
this.xtraTabPage2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.picDonate.Properties)).BeginInit();
this.SuspendLayout();
//
// labelControl1
@@ -65,13 +57,14 @@
resources.ApplyResources(this.labelControl1, "labelControl1");
this.labelControl1.Name = "labelControl1";
//
// hyperLinkEdit1
// lnkDownload
//
resources.ApplyResources(this.hyperLinkEdit1, "hyperLinkEdit1");
this.hyperLinkEdit1.Name = "hyperLinkEdit1";
this.hyperLinkEdit1.Properties.Appearance.BackColor = ((System.Drawing.Color)(resources.GetObject("hyperLinkEdit1.Properties.Appearance.BackColor")));
this.hyperLinkEdit1.Properties.Appearance.Options.UseBackColor = true;
this.hyperLinkEdit1.Properties.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
resources.ApplyResources(this.lnkDownload, "lnkDownload");
this.lnkDownload.Name = "lnkDownload";
this.lnkDownload.Properties.Appearance.BackColor = ((System.Drawing.Color)(resources.GetObject("lnkDownload.Properties.Appearance.BackColor")));
this.lnkDownload.Properties.Appearance.Options.UseBackColor = true;
this.lnkDownload.Properties.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
this.lnkDownload.OpenLink += new DevExpress.XtraEditors.Controls.OpenLinkEventHandler(this.lnkDownload_OpenLink);
//
// gcPlugins
//
@@ -92,7 +85,6 @@
this.gvPlugins.OptionsBehavior.ReadOnly = true;
this.gvPlugins.OptionsView.ShowGroupPanel = false;
this.gvPlugins.OptionsView.ShowIndicator = false;
this.gvPlugins.CustomUnboundColumnData += new DevExpress.XtraGrid.Views.Base.CustomColumnDataEventHandler(this.gvPlugins_CustomUnboundColumnData);
//
// colPlugin
//
@@ -113,105 +105,76 @@
this.colFileTypes.FieldName = "FileFilter";
this.colFileTypes.Name = "colFileTypes";
//
// hyperLinkEdit2
// lnkEmail
//
resources.ApplyResources(this.hyperLinkEdit2, "hyperLinkEdit2");
this.hyperLinkEdit2.Name = "hyperLinkEdit2";
this.hyperLinkEdit2.Properties.Appearance.BackColor = ((System.Drawing.Color)(resources.GetObject("hyperLinkEdit2.Properties.Appearance.BackColor")));
this.hyperLinkEdit2.Properties.Appearance.Options.UseBackColor = true;
this.hyperLinkEdit2.Properties.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
//
// labelControl3
//
resources.ApplyResources(this.labelControl3, "labelControl3");
this.labelControl3.Name = "labelControl3";
//
// labelControl4
//
resources.ApplyResources(this.labelControl4, "labelControl4");
this.labelControl4.Name = "labelControl4";
//
// labelControl5
//
resources.ApplyResources(this.labelControl5, "labelControl5");
this.labelControl5.Name = "labelControl5";
//
// hyperLinkEdit3
//
resources.ApplyResources(this.hyperLinkEdit3, "hyperLinkEdit3");
this.hyperLinkEdit3.Name = "hyperLinkEdit3";
this.hyperLinkEdit3.Properties.Appearance.BackColor = ((System.Drawing.Color)(resources.GetObject("hyperLinkEdit3.Properties.Appearance.BackColor")));
this.hyperLinkEdit3.Properties.Appearance.Options.UseBackColor = true;
this.hyperLinkEdit3.Properties.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
//
// txtCredits
//
resources.ApplyResources(this.txtCredits, "txtCredits");
this.txtCredits.Name = "txtCredits";
this.txtCredits.Properties.ReadOnly = true;
//
// xtraTabControl1
//
resources.ApplyResources(this.xtraTabControl1, "xtraTabControl1");
this.xtraTabControl1.Name = "xtraTabControl1";
this.xtraTabControl1.SelectedTabPage = this.xtraTabPage1;
this.xtraTabControl1.TabPages.AddRange(new DevExpress.XtraTab.XtraTabPage[] {
this.xtraTabPage1,
this.xtraTabPage2});
//
// xtraTabPage1
//
this.xtraTabPage1.Controls.Add(this.txtCredits);
this.xtraTabPage1.Name = "xtraTabPage1";
resources.ApplyResources(this.xtraTabPage1, "xtraTabPage1");
//
// xtraTabPage2
//
this.xtraTabPage2.Controls.Add(this.gcPlugins);
this.xtraTabPage2.Name = "xtraTabPage2";
resources.ApplyResources(this.xtraTabPage2, "xtraTabPage2");
//
// picDonate
//
this.picDonate.Cursor = System.Windows.Forms.Cursors.Hand;
resources.ApplyResources(this.picDonate, "picDonate");
this.picDonate.Name = "picDonate";
this.picDonate.Properties.Appearance.BackColor = ((System.Drawing.Color)(resources.GetObject("picDonate.Properties.Appearance.BackColor")));
this.picDonate.Properties.Appearance.Options.UseBackColor = true;
this.picDonate.Properties.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
this.picDonate.Click += new System.EventHandler(this.picDonate_Click);
resources.ApplyResources(this.lnkEmail, "lnkEmail");
this.lnkEmail.Name = "lnkEmail";
this.lnkEmail.Properties.Appearance.BackColor = ((System.Drawing.Color)(resources.GetObject("lnkEmail.Properties.Appearance.BackColor")));
this.lnkEmail.Properties.Appearance.Options.UseBackColor = true;
this.lnkEmail.Properties.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
this.lnkEmail.OpenLink += new DevExpress.XtraEditors.Controls.OpenLinkEventHandler(this.lnkEmail_OpenLink);
//
// labelControl2
//
resources.ApplyResources(this.labelControl2, "labelControl2");
this.labelControl2.Name = "labelControl2";
//
// labelControl4
//
resources.ApplyResources(this.labelControl4, "labelControl4");
this.labelControl4.Name = "labelControl4";
//
// lnkLicense
//
resources.ApplyResources(this.lnkLicense, "lnkLicense");
this.lnkLicense.Name = "lnkLicense";
this.lnkLicense.Properties.Appearance.BackColor = ((System.Drawing.Color)(resources.GetObject("lnkLicense.Properties.Appearance.BackColor")));
this.lnkLicense.Properties.Appearance.Options.UseBackColor = true;
this.lnkLicense.Properties.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
this.lnkLicense.OpenLink += new DevExpress.XtraEditors.Controls.OpenLinkEventHandler(this.lnkLicense_OpenLink);
//
// labelControl5
//
resources.ApplyResources(this.labelControl5, "labelControl5");
this.labelControl5.Name = "labelControl5";
//
// txtCredits
//
resources.ApplyResources(this.txtCredits, "txtCredits");
this.txtCredits.Name = "txtCredits";
//
// simpleButton1
//
resources.ApplyResources(this.simpleButton1, "simpleButton1");
this.simpleButton1.DialogResult = System.Windows.Forms.DialogResult.OK;
this.simpleButton1.Name = "simpleButton1";
//
// labelControl3
//
resources.ApplyResources(this.labelControl3, "labelControl3");
this.labelControl3.Name = "labelControl3";
//
// AboutForm
//
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.labelControl2);
this.Controls.Add(this.picDonate);
this.Controls.Add(this.xtraTabControl1);
this.Controls.Add(this.hyperLinkEdit3);
this.Controls.Add(this.labelControl5);
this.Controls.Add(this.labelControl4);
this.Controls.Add(this.hyperLinkEdit2);
this.Controls.Add(this.labelControl3);
this.Controls.Add(this.hyperLinkEdit1);
this.Controls.Add(this.simpleButton1);
this.Controls.Add(this.txtCredits);
this.Controls.Add(this.labelControl5);
this.Controls.Add(this.lnkLicense);
this.Controls.Add(this.labelControl4);
this.Controls.Add(this.labelControl2);
this.Controls.Add(this.lnkEmail);
this.Controls.Add(this.lnkDownload);
this.Controls.Add(this.labelControl1);
this.Name = "AboutForm";
((System.ComponentModel.ISupportInitialize)(this.hyperLinkEdit1.Properties)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.lnkDownload.Properties)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.gcPlugins)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.gvPlugins)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.hyperLinkEdit2.Properties)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.hyperLinkEdit3.Properties)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.lnkEmail.Properties)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.lnkLicense.Properties)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.txtCredits.Properties)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xtraTabControl1)).EndInit();
this.xtraTabControl1.ResumeLayout(false);
this.xtraTabPage1.ResumeLayout(false);
this.xtraTabPage2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.picDonate.Properties)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
@@ -220,22 +183,19 @@
#endregion
private DevExpress.XtraEditors.LabelControl labelControl1;
private DevExpress.XtraEditors.HyperLinkEdit hyperLinkEdit1;
private DevExpress.XtraEditors.HyperLinkEdit lnkDownload;
private DevExpress.XtraGrid.GridControl gcPlugins;
private DevExpress.XtraGrid.Views.Grid.GridView gvPlugins;
private DevExpress.XtraGrid.Columns.GridColumn colPlugin;
private DevExpress.XtraGrid.Columns.GridColumn colDisplayText;
private DevExpress.XtraGrid.Columns.GridColumn colFileTypes;
private DevExpress.XtraEditors.HyperLinkEdit hyperLinkEdit2;
private DevExpress.XtraEditors.LabelControl labelControl3;
private DevExpress.XtraEditors.LabelControl labelControl4;
private DevExpress.XtraEditors.LabelControl labelControl5;
private DevExpress.XtraEditors.HyperLinkEdit hyperLinkEdit3;
private DevExpress.XtraEditors.MemoEdit txtCredits;
private DevExpress.XtraTab.XtraTabControl xtraTabControl1;
private DevExpress.XtraTab.XtraTabPage xtraTabPage1;
private DevExpress.XtraTab.XtraTabPage xtraTabPage2;
private DevExpress.XtraEditors.PictureEdit picDonate;
private DevExpress.XtraEditors.HyperLinkEdit lnkEmail;
private DevExpress.XtraEditors.LabelControl labelControl2;
private DevExpress.XtraEditors.LabelControl labelControl4;
private DevExpress.XtraEditors.HyperLinkEdit lnkLicense;
private DevExpress.XtraEditors.LabelControl labelControl5;
private DevExpress.XtraEditors.MemoEdit txtCredits;
private DevExpress.XtraEditors.SimpleButton simpleButton1;
private DevExpress.XtraEditors.LabelControl labelControl3;
}
}

View File

@@ -1,5 +1,4 @@
using System.Collections.Generic;
using System.IO;
using ChanSort.Api;
using DevExpress.XtraEditors;
@@ -10,7 +9,6 @@ namespace ChanSort.Ui
public AboutForm(IList<ISerializerPlugin> plugins)
{
InitializeComponent();
this.picDonate.Image = Properties.Resources.Donate;
this.gcPlugins.DataSource = plugins;
this.txtCredits.Text = @"PDA-User:
@@ -26,23 +24,19 @@ Many more on lg-forum.com:
For providing example TLL files, error feedback and other helpful information";
}
private void gvPlugins_CustomUnboundColumnData(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDataEventArgs e)
private void lnkLicense_OpenLink(object sender, DevExpress.XtraEditors.Controls.OpenLinkEventArgs e)
{
if (e.Column == this.colPlugin)
e.Value = (Path.GetFileName(e.Row.GetType().Assembly.Location) ?? "").Replace("ChanSort.Loader.", "");
BrowserHelper.OpenUrl("http://www.gnu.org/licenses/gpl.html");
}
private void picDonate_Click(object sender, System.EventArgs e)
private void lnkEmail_OpenLink(object sender, DevExpress.XtraEditors.Controls.OpenLinkEventArgs e)
{
try
{
string fileName = Path.GetTempFileName() + ".html";
File.WriteAllText(fileName, Properties.Resources.paypal_button);
System.Diagnostics.Process.Start(fileName);
}
catch
{
}
BrowserHelper.OpenMail("mailto:horst@beham.biz&subject=ChanSort%20" + MainForm.AppVersion);
}
private void lnkDownload_OpenLink(object sender, DevExpress.XtraEditors.Controls.OpenLinkEventArgs e)
{
BrowserHelper.OpenUrl(this.lnkDownload.Text);
}
}
}

View File

@@ -119,10 +119,10 @@
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="labelControl1.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 13</value>
<value>81, 13</value>
</data>
<data name="labelControl1.Text" xml:space="preserve">
<value>Aktuelle Version:</value>
<value>Projektwebseite:</value>
</data>
<data name="colDisplayText.Caption" xml:space="preserve">
<value>Beschreibung</value>
@@ -130,33 +130,26 @@
<data name="colFileTypes.Caption" xml:space="preserve">
<value>Dateitypen</value>
</data>
<data name="labelControl3.Size" type="System.Drawing.Size, System.Drawing">
<value>86, 13</value>
</data>
<data name="labelControl3.Text" xml:space="preserve">
<value>Online Diskussion:</value>
</data>
<data name="labelControl4.Size" type="System.Drawing.Size, System.Drawing">
<value>41, 13</value>
</data>
<data name="labelControl4.Text" xml:space="preserve">
<value>Kontakt:</value>
</data>
<data name="xtraTabPage1.Text" xml:space="preserve">
<value>Gruß und Dank</value>
</data>
<data name="xtraTabPage2.Text" xml:space="preserve">
<value>Erweiterungen</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="picDonate.EditValue" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="labelControl2.Size" type="System.Drawing.Size, System.Drawing">
<value>151, 13</value>
<value>78, 13</value>
</data>
<data name="labelControl2.Text" xml:space="preserve">
<value>Wenn dir das Programm gefällt:</value>
<value>Programmautor:</value>
</data>
<data name="labelControl4.Size" type="System.Drawing.Size, System.Drawing">
<value>33, 13</value>
</data>
<data name="labelControl4.Text" xml:space="preserve">
<value>Lizenz:</value>
</data>
<data name="labelControl5.Size" type="System.Drawing.Size, System.Drawing">
<value>60, 13</value>
</data>
<data name="labelControl5.Text" xml:space="preserve">
<value>Referenzen:</value>
</data>
<data name="simpleButton1.Text" xml:space="preserve">
<value>Schließen</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Über ChanSort</value>

View File

@@ -119,17 +119,17 @@
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="labelControl1.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 15</value>
<value>12, 92</value>
</data>
<data name="labelControl1.Size" type="System.Drawing.Size, System.Drawing">
<value>72, 13</value>
<value>78, 13</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="labelControl1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="labelControl1.Text" xml:space="preserve">
<value>Latest version:</value>
<value>Project website:</value>
</data>
<data name="&gt;&gt;labelControl1.Name" xml:space="preserve">
<value>labelControl1</value>
@@ -144,34 +144,34 @@
<value>9</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="hyperLinkEdit1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<data name="lnkDownload.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
</data>
<data name="hyperLinkEdit1.EditValue" xml:space="preserve">
<value>http://beham.biz/ChanSort/</value>
<data name="lnkDownload.EditValue" xml:space="preserve">
<value>http://sourceforge.net/p/chansort/</value>
</data>
<data name="hyperLinkEdit1.Location" type="System.Drawing.Point, System.Drawing">
<value>144, 13</value>
<data name="lnkDownload.Location" type="System.Drawing.Point, System.Drawing">
<value>108, 90</value>
</data>
<data name="hyperLinkEdit1.Properties.Appearance.BackColor" type="System.Drawing.Color, System.Drawing">
<data name="lnkDownload.Properties.Appearance.BackColor" type="System.Drawing.Color, System.Drawing">
<value>Transparent</value>
</data>
<data name="hyperLinkEdit1.Size" type="System.Drawing.Size, System.Drawing">
<value>436, 18</value>
<data name="lnkDownload.Size" type="System.Drawing.Size, System.Drawing">
<value>338, 18</value>
</data>
<data name="hyperLinkEdit1.TabIndex" type="System.Int32, mscorlib">
<data name="lnkDownload.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="&gt;&gt;hyperLinkEdit1.Name" xml:space="preserve">
<value>hyperLinkEdit1</value>
<data name="&gt;&gt;lnkDownload.Name" xml:space="preserve">
<value>lnkDownload</value>
</data>
<data name="&gt;&gt;hyperLinkEdit1.Type" xml:space="preserve">
<data name="&gt;&gt;lnkDownload.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.HyperLinkEdit, DevExpress.XtraEditors.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;hyperLinkEdit1.Parent" xml:space="preserve">
<data name="&gt;&gt;lnkDownload.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;hyperLinkEdit1.ZOrder" xml:space="preserve">
<data name="&gt;&gt;lnkDownload.ZOrder" xml:space="preserve">
<value>8</value>
</data>
<data name="gcPlugins.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
@@ -228,77 +228,68 @@
<data name="&gt;&gt;gcPlugins.Type" xml:space="preserve">
<value>DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;gcPlugins.Parent" xml:space="preserve">
<value>xtraTabPage2</value>
<data name="lnkEmail.EditValue" xml:space="preserve">
<value>horst@beham.biz</value>
</data>
<data name="&gt;&gt;gcPlugins.ZOrder" xml:space="preserve">
<value>0</value>
<data name="lnkEmail.Location" type="System.Drawing.Point, System.Drawing">
<value>108, 31</value>
</data>
<data name="hyperLinkEdit2.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
</data>
<data name="hyperLinkEdit2.EditValue" xml:space="preserve">
<value>http://www.lg-forum.com/lg-led-plasma-lcd-fernseher/5098-channeleditor-45.html</value>
</data>
<data name="hyperLinkEdit2.Location" type="System.Drawing.Point, System.Drawing">
<value>144, 32</value>
</data>
<data name="hyperLinkEdit2.Properties.Appearance.BackColor" type="System.Drawing.Color, System.Drawing">
<data name="lnkEmail.Properties.Appearance.BackColor" type="System.Drawing.Color, System.Drawing">
<value>Transparent</value>
</data>
<data name="hyperLinkEdit2.Size" type="System.Drawing.Size, System.Drawing">
<value>436, 18</value>
<data name="lnkEmail.Size" type="System.Drawing.Size, System.Drawing">
<value>97, 18</value>
</data>
<data name="hyperLinkEdit2.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
<data name="lnkEmail.TabIndex" type="System.Int32, mscorlib">
<value>8</value>
</data>
<data name="&gt;&gt;hyperLinkEdit2.Name" xml:space="preserve">
<value>hyperLinkEdit2</value>
<data name="&gt;&gt;lnkEmail.Name" xml:space="preserve">
<value>lnkEmail</value>
</data>
<data name="&gt;&gt;hyperLinkEdit2.Type" xml:space="preserve">
<data name="&gt;&gt;lnkEmail.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.HyperLinkEdit, DevExpress.XtraEditors.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;hyperLinkEdit2.Parent" xml:space="preserve">
<data name="&gt;&gt;lnkEmail.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;hyperLinkEdit2.ZOrder" xml:space="preserve">
<value>6</value>
</data>
<data name="labelControl3.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 34</value>
</data>
<data name="labelControl3.Size" type="System.Drawing.Size, System.Drawing">
<value>85, 13</value>
</data>
<data name="labelControl3.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="labelControl3.Text" xml:space="preserve">
<value>Online discussion:</value>
</data>
<data name="&gt;&gt;labelControl3.Name" xml:space="preserve">
<value>labelControl3</value>
</data>
<data name="&gt;&gt;labelControl3.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;labelControl3.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;labelControl3.ZOrder" xml:space="preserve">
<data name="&gt;&gt;lnkEmail.ZOrder" xml:space="preserve">
<value>7</value>
</data>
<data name="labelControl4.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 56</value>
<data name="labelControl2.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 12</value>
</data>
<data name="labelControl4.Size" type="System.Drawing.Size, System.Drawing">
<value>42, 13</value>
<data name="labelControl2.Size" type="System.Drawing.Size, System.Drawing">
<value>79, 13</value>
</data>
<data name="labelControl4.TabIndex" type="System.Int32, mscorlib">
<data name="labelControl2.TabIndex" type="System.Int32, mscorlib">
<value>9</value>
</data>
<data name="labelControl2.Text" xml:space="preserve">
<value>Program author:</value>
</data>
<data name="&gt;&gt;labelControl2.Name" xml:space="preserve">
<value>labelControl2</value>
</data>
<data name="&gt;&gt;labelControl2.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;labelControl2.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;labelControl2.ZOrder" xml:space="preserve">
<value>6</value>
</data>
<data name="labelControl4.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 68</value>
</data>
<data name="labelControl4.Size" type="System.Drawing.Size, System.Drawing">
<value>39, 13</value>
</data>
<data name="labelControl4.TabIndex" type="System.Int32, mscorlib">
<value>10</value>
</data>
<data name="labelControl4.Text" xml:space="preserve">
<value>Contact:</value>
<value>License:</value>
</data>
<data name="&gt;&gt;labelControl4.Name" xml:space="preserve">
<value>labelControl4</value>
@@ -312,17 +303,47 @@
<data name="&gt;&gt;labelControl4.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="lnkLicense.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
</data>
<data name="lnkLicense.EditValue" xml:space="preserve">
<value>GNU GPLv3</value>
</data>
<data name="lnkLicense.Location" type="System.Drawing.Point, System.Drawing">
<value>108, 66</value>
</data>
<data name="lnkLicense.Properties.Appearance.BackColor" type="System.Drawing.Color, System.Drawing">
<value>Transparent</value>
</data>
<data name="lnkLicense.Size" type="System.Drawing.Size, System.Drawing">
<value>338, 18</value>
</data>
<data name="lnkLicense.TabIndex" type="System.Int32, mscorlib">
<value>11</value>
</data>
<data name="&gt;&gt;lnkLicense.Name" xml:space="preserve">
<value>lnkLicense</value>
</data>
<data name="&gt;&gt;lnkLicense.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.HyperLinkEdit, DevExpress.XtraEditors.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;lnkLicense.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;lnkLicense.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="labelControl5.Location" type="System.Drawing.Point, System.Drawing">
<value>147, 56</value>
<value>12, 116</value>
</data>
<data name="labelControl5.Size" type="System.Drawing.Size, System.Drawing">
<value>175, 13</value>
<value>38, 13</value>
</data>
<data name="labelControl5.TabIndex" type="System.Int32, mscorlib">
<value>7</value>
<value>12</value>
</data>
<data name="labelControl5.Text" xml:space="preserve">
<value>User "Pred" @ www.lg-forum.com |</value>
<value>Credits:</value>
</data>
<data name="&gt;&gt;labelControl5.Name" xml:space="preserve">
<value>labelControl5</value>
@@ -334,49 +355,19 @@
<value>$this</value>
</data>
<data name="&gt;&gt;labelControl5.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="hyperLinkEdit3.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
</data>
<data name="hyperLinkEdit3.EditValue" xml:space="preserve">
<value>mailto:horst@beham.biz</value>
</data>
<data name="hyperLinkEdit3.Location" type="System.Drawing.Point, System.Drawing">
<value>328, 54</value>
</data>
<data name="hyperLinkEdit3.Properties.Appearance.BackColor" type="System.Drawing.Color, System.Drawing">
<value>Transparent</value>
</data>
<data name="hyperLinkEdit3.Size" type="System.Drawing.Size, System.Drawing">
<value>252, 18</value>
</data>
<data name="hyperLinkEdit3.TabIndex" type="System.Int32, mscorlib">
<value>8</value>
</data>
<data name="&gt;&gt;hyperLinkEdit3.Name" xml:space="preserve">
<value>hyperLinkEdit3</value>
</data>
<data name="&gt;&gt;hyperLinkEdit3.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.HyperLinkEdit, DevExpress.XtraEditors.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;hyperLinkEdit3.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;hyperLinkEdit3.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="txtCredits.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
<data name="txtCredits.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Bottom, Left, Right</value>
</data>
<data name="txtCredits.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
<value>108, 113</value>
</data>
<data name="txtCredits.Size" type="System.Drawing.Size, System.Drawing">
<value>562, 272</value>
<value>374, 120</value>
</data>
<data name="txtCredits.TabIndex" type="System.Int32, mscorlib">
<value>10</value>
<value>13</value>
</data>
<data name="&gt;&gt;txtCredits.Name" xml:space="preserve">
<value>txtCredits</value>
@@ -385,117 +376,60 @@
<value>DevExpress.XtraEditors.MemoEdit, DevExpress.XtraEditors.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;txtCredits.Parent" xml:space="preserve">
<value>xtraTabPage1</value>
<value>$this</value>
</data>
<data name="&gt;&gt;txtCredits.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="xtraTabControl1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Bottom, Left, Right</value>
</data>
<data name="xtraTabControl1.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 134</value>
</data>
<data name="xtraTabPage1.Size" type="System.Drawing.Size, System.Drawing">
<value>562, 272</value>
</data>
<data name="xtraTabPage1.Text" xml:space="preserve">
<value>Credits</value>
</data>
<data name="&gt;&gt;xtraTabPage1.Name" xml:space="preserve">
<value>xtraTabPage1</value>
</data>
<data name="&gt;&gt;xtraTabPage1.Type" xml:space="preserve">
<value>DevExpress.XtraTab.XtraTabPage, DevExpress.XtraEditors.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;xtraTabPage1.Parent" xml:space="preserve">
<value>xtraTabControl1</value>
</data>
<data name="&gt;&gt;xtraTabPage1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="xtraTabControl1.Size" type="System.Drawing.Size, System.Drawing">
<value>568, 300</value>
</data>
<data name="xtraTabControl1.TabIndex" type="System.Int32, mscorlib">
<value>11</value>
</data>
<data name="xtraTabPage2.Size" type="System.Drawing.Size, System.Drawing">
<value>562, 272</value>
</data>
<data name="xtraTabPage2.Text" xml:space="preserve">
<value>Plugins</value>
</data>
<data name="&gt;&gt;xtraTabPage2.Name" xml:space="preserve">
<value>xtraTabPage2</value>
</data>
<data name="&gt;&gt;xtraTabPage2.Type" xml:space="preserve">
<value>DevExpress.XtraTab.XtraTabPage, DevExpress.XtraEditors.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;xtraTabPage2.Parent" xml:space="preserve">
<value>xtraTabControl1</value>
</data>
<data name="&gt;&gt;xtraTabPage2.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="&gt;&gt;xtraTabControl1.Name" xml:space="preserve">
<value>xtraTabControl1</value>
</data>
<data name="&gt;&gt;xtraTabControl1.Type" xml:space="preserve">
<value>DevExpress.XtraTab.XtraTabControl, DevExpress.XtraEditors.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;xtraTabControl1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;xtraTabControl1.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="picDonate.Location" type="System.Drawing.Point, System.Drawing">
<value>214, 78</value>
<data name="simpleButton1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Left</value>
</data>
<data name="picDonate.Properties.Appearance.BackColor" type="System.Drawing.Color, System.Drawing">
<value>Transparent</value>
<data name="simpleButton1.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 210</value>
</data>
<data name="picDonate.Size" type="System.Drawing.Size, System.Drawing">
<value>177, 58</value>
<data name="simpleButton1.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 23</value>
</data>
<data name="picDonate.TabIndex" type="System.Int32, mscorlib">
<value>12</value>
<data name="simpleButton1.TabIndex" type="System.Int32, mscorlib">
<value>14</value>
</data>
<data name="&gt;&gt;picDonate.Name" xml:space="preserve">
<value>picDonate</value>
<data name="simpleButton1.Text" xml:space="preserve">
<value>Close</value>
</data>
<data name="&gt;&gt;picDonate.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.PictureEdit, DevExpress.XtraEditors.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<data name="&gt;&gt;simpleButton1.Name" xml:space="preserve">
<value>simpleButton1</value>
</data>
<data name="&gt;&gt;picDonate.Parent" xml:space="preserve">
<data name="&gt;&gt;simpleButton1.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;simpleButton1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;picDonate.ZOrder" xml:space="preserve">
<data name="&gt;&gt;simpleButton1.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="labelControl2.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 88</value>
<data name="labelControl3.Location" type="System.Drawing.Point, System.Drawing">
<value>110, 12</value>
</data>
<data name="labelControl2.Size" type="System.Drawing.Size, System.Drawing">
<value>114, 13</value>
<data name="labelControl3.Size" type="System.Drawing.Size, System.Drawing">
<value>61, 13</value>
</data>
<data name="labelControl2.TabIndex" type="System.Int32, mscorlib">
<value>13</value>
<data name="labelControl3.TabIndex" type="System.Int32, mscorlib">
<value>15</value>
</data>
<data name="labelControl2.Text" xml:space="preserve">
<value>If you like this program:</value>
<data name="labelControl3.Text" xml:space="preserve">
<value>Horst Beham</value>
</data>
<data name="&gt;&gt;labelControl2.Name" xml:space="preserve">
<value>labelControl2</value>
<data name="&gt;&gt;labelControl3.Name" xml:space="preserve">
<value>labelControl3</value>
</data>
<data name="&gt;&gt;labelControl2.Type" xml:space="preserve">
<data name="&gt;&gt;labelControl3.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;labelControl2.Parent" xml:space="preserve">
<data name="&gt;&gt;labelControl3.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;labelControl2.ZOrder" xml:space="preserve">
<data name="&gt;&gt;labelControl3.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
@@ -505,7 +439,7 @@
<value>6, 13</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>592, 446</value>
<value>494, 245</value>
</data>
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
<value>CenterParent</value>

43
ChanSort/BrowserHelper.cs Normal file
View File

@@ -0,0 +1,43 @@
using System.IO;
namespace ChanSort.Ui
{
static class BrowserHelper
{
public static void OpenUrl(string url)
{
OpenHtml(@"
<html>
<head>
<meta http-equiv='Refresh' content='0;" + url + @"'/>
</head>
</html>");
}
public static void OpenMail(string url)
{
OpenHtml(@"
<html>
<head>
<script language=""javascript"">
window.open(""" + url + @""");
window.close();
</script>
</head>
</html>");
}
public static void OpenHtml(string html)
{
try
{
string fileName = Path.GetTempFileName() + ".html";
File.WriteAllText(fileName, html);
System.Diagnostics.Process.Start(fileName);
}
catch
{
}
}
}
}

View File

@@ -83,6 +83,7 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="BrowserHelper.cs" />
<Compile Include="InfoBox.cs">
<SubType>Form</SubType>
</Compile>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -118,48 +118,48 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="gridOutput.EmbeddedNavigator.AccessibleDescription" type="System.Resources.ResXNullRef, System.Windows.Forms">
<data name="gridLeft.EmbeddedNavigator.AccessibleDescription" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="gridOutput.EmbeddedNavigator.AccessibleName" type="System.Resources.ResXNullRef, System.Windows.Forms">
<data name="gridLeft.EmbeddedNavigator.AccessibleName" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<assembly alias="DevExpress.Data.v12.2" name="DevExpress.Data.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="gridOutput.EmbeddedNavigator.AllowHtmlTextInToolTip" type="DevExpress.Utils.DefaultBoolean, DevExpress.Data.v12.2">
<data name="gridLeft.EmbeddedNavigator.AllowHtmlTextInToolTip" type="DevExpress.Utils.DefaultBoolean, DevExpress.Data.v12.2">
<value>Default</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="gridOutput.EmbeddedNavigator.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<data name="gridLeft.EmbeddedNavigator.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left</value>
</data>
<data name="gridOutput.EmbeddedNavigator.BackgroundImage" type="System.Resources.ResXNullRef, System.Windows.Forms">
<data name="gridLeft.EmbeddedNavigator.BackgroundImage" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="gridOutput.EmbeddedNavigator.BackgroundImageLayout" type="System.Windows.Forms.ImageLayout, System.Windows.Forms">
<data name="gridLeft.EmbeddedNavigator.BackgroundImageLayout" type="System.Windows.Forms.ImageLayout, System.Windows.Forms">
<value>Tile</value>
</data>
<data name="gridOutput.EmbeddedNavigator.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<data name="gridLeft.EmbeddedNavigator.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>Inherit</value>
</data>
<assembly alias="DevExpress.XtraEditors.v12.2" name="DevExpress.XtraEditors.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="gridOutput.EmbeddedNavigator.TextLocation" type="DevExpress.XtraEditors.NavigatorButtonsTextLocation, DevExpress.XtraEditors.v12.2">
<data name="gridLeft.EmbeddedNavigator.TextLocation" type="DevExpress.XtraEditors.NavigatorButtonsTextLocation, DevExpress.XtraEditors.v12.2">
<value>Center</value>
</data>
<data name="gridOutput.EmbeddedNavigator.ToolTip" xml:space="preserve">
<data name="gridLeft.EmbeddedNavigator.ToolTip" xml:space="preserve">
<value />
</data>
<assembly alias="DevExpress.Utils.v12.2" name="DevExpress.Utils.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="gridOutput.EmbeddedNavigator.ToolTipIconType" type="DevExpress.Utils.ToolTipIconType, DevExpress.Utils.v12.2">
<data name="gridLeft.EmbeddedNavigator.ToolTipIconType" type="DevExpress.Utils.ToolTipIconType, DevExpress.Utils.v12.2">
<value>None</value>
</data>
<data name="gridOutput.EmbeddedNavigator.ToolTipTitle" xml:space="preserve">
<data name="gridLeft.EmbeddedNavigator.ToolTipTitle" xml:space="preserve">
<value />
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="gviewOutput.Appearance.HeaderPanel.GradientMode" type="System.Drawing.Drawing2D.LinearGradientMode, System.Drawing">
<data name="gviewLeft.Appearance.HeaderPanel.GradientMode" type="System.Drawing.Drawing2D.LinearGradientMode, System.Drawing">
<value>Horizontal</value>
</data>
<data name="gviewOutput.Appearance.HeaderPanel.Image" type="System.Resources.ResXNullRef, System.Windows.Forms">
<data name="gviewLeft.Appearance.HeaderPanel.Image" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="colOutSlot.Caption" xml:space="preserve">
@@ -196,14 +196,342 @@
<data name="repositoryItemCheckedComboBoxEdit1.Mask.UseMaskAsDisplayFormat" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="colOutLock.Caption" xml:space="preserve">
<value>Ge- sperrt</value>
</data>
<data name="colOutLock.ToolTip" xml:space="preserve">
<value>Kindersicherung</value>
</data>
<data name="lblHotkeyLeft.Size" type="System.Drawing.Size, System.Drawing">
<value>333, 17</value>
</data>
<data name="lblHotkeyLeft.Text" xml:space="preserve">
<value>F3: Filter | F4: Liste | -: nach oben | +: nach unten | Entf: entfernen</value>
</data>
<data name="comboEditMode.EditValue" xml:space="preserve">
<value>Dahinter einfügen</value>
<data name="sharedImageCollection1.ImageSource.ImageStream" type="DevExpress.Utils.ImageCollectionStreamer, DevExpress.Utils.v12.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLlV0aWxzLnYxMi4yLCBWZXJzaW9uPTEyLjIu
Ni4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEMAwAAAFFT
eXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRv
a2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAAChEZXZFeHByZXNzLlV0aWxzLkltYWdlQ29sbGVjdGlvblN0
cmVhbWVyAgAAAAlJbWFnZVNpemUERGF0YQQHE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAAgIAAAAF/P//
/xNTeXN0ZW0uRHJhd2luZy5TaXplAgAAAAV3aWR0aAZoZWlnaHQAAAgIAwAAABAAAAAQAAAACQUAAAAP
BQAAAMBJAAACDgMAAIlQTkcNChoKAAAADUlIRFIAAAAQAAAAEAgGAAAAH/P/YQAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAACukAAArpAf11ztMAAAAqdEVYdENyZWF0aW9uIFRpbWUATWkgMSBNcnogMjAwNiAx
NToxMDo1MSArMDEwMP/NqUUAAAAHdElNRQfWAwEODCaDia/cAAACZ0lEQVQ4T82S7UsTUBSH75eCCAx6
oTAqg7BMRKjoQ6S9Oa1I10gzU8PUZmYpKEamy8gCX8iS2YxqiRmREMrUltEoLdSMps458wXUEiW0UToN
bdTTpaLtP6gDlwuXe57zO79zxP8RC1M7CCzqRSR0IZI7EepOvLO7CI4qRRGpxTejGRHTioiVd+RrAmMq
8FA+4k+6EGHJlfA4H+MoiMJviKtO7nbPQcJqOLaSNtsHxKUpxMUpzmobQX+aYI2E/Y3kftJ1LVClwfxF
Qgp+cL3DKQG+ErAek2UUoZmloMwEFeco75hEhJrcAElWRD6ElA3CzVR6ZkDXA5zwgzgfntrsFGnroVLD
leYZRKoEKp+5AP457TR0j/PA4uB9v4QMmGHWAepNcNyPuSEbziYDw2MT3GkcpuZVHz6JT1wA5dESiF0p
q22ERH+ZuPn3ObVNqtgK0RsgfA0cWA57PWC3QLkz0wVQHSmGqCXy41qI8ZZ9S1CclK/eAvFSRYR8D10B
+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
ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tl
dCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1s
bnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0
MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiBy
ZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4
bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9u
cy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRv
YmUgUGhvdG9zaG9wIENTNS4xIFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NjQ1QTVE
QzE1NTY1MTFFMTlEMzlGQkM3NTZEQTg5QjAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NjQ1QTVE
QzI1NTY1MTFFMTlEMzlGQkM3NTZEQTg5QjAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFu
Y2VJRD0ieG1wLmlpZDo2NDVBNURCRjU1NjUxMUUxOUQzOUZCQzc1NkRBODlCMCIgc3RSZWY6ZG9jdW1l
bnRJRD0ieG1wLmRpZDo2NDVBNURDMDU1NjUxMUUxOUQzOUZCQzc1NkRBODlCMCIvPiA8L3JkZjpEZXNj
cmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqSWWTYAAAJY
SURBVDhPbVJLaxNhFP2gexdCacxrEpIWUbJI2qSPpKn4iNZYGsGkWqFPRaGFaA1qYjOmaqFkEVQIFXWn
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
</value>
</data>
<data name="miFile.Caption" xml:space="preserve">
<value>&amp;Datei</value>
@@ -277,8 +605,8 @@
<data name="barSubItem2.Caption" xml:space="preserve">
<value>TV-Gerät</value>
</data>
<data name="miTvCountrySetup.Caption" xml:space="preserve">
<value>Geräteeinstellungen...</value>
<data name="miEraseChannelData.Caption" xml:space="preserve">
<value>Alle Senderdaten löschen</value>
</data>
<data name="mnuOptions.Caption" xml:space="preserve">
<value>&amp;Einstellungen</value>
@@ -292,6 +620,9 @@
<data name="mnuHelp.Caption" xml:space="preserve">
<value>&amp;Hilfe</value>
</data>
<data name="miOpenWebsite.Caption" xml:space="preserve">
<value>ChanSort Webseite...</value>
</data>
<data name="miAbout.Caption" xml:space="preserve">
<value>&amp;Über ChanSort...</value>
</data>
@@ -360,143 +691,152 @@
<data name="barDockControlRight.Appearance.Image" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="comboUnsortedAction.EditValue" xml:space="preserve">
<value>In bestehender Reihenfolge am Ende anhängen</value>
</data>
<data name="comboUnsortedAction.Properties.AccessibleDescription" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="comboUnsortedAction.Properties.AccessibleName" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="comboUnsortedAction.Properties.AutoHeight" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="comboUnsortedAction.Properties.Items" xml:space="preserve">
<value>In bestehender Reihenfolge am Ende anhängen</value>
</data>
<data name="comboUnsortedAction.Properties.Items1" xml:space="preserve">
<value>In alphabetischer Reihenfolge am Ende anhängen</value>
</data>
<data name="comboUnsortedAction.Properties.Items2" xml:space="preserve">
<value>Löschen</value>
</data>
<data name="comboUnsortedAction.Properties.NullValuePrompt" xml:space="preserve">
<value />
</data>
<data name="comboUnsortedAction.Properties.NullValuePromptShowForEmptyValue" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="comboUnsortedAction.Size" type="System.Drawing.Size, System.Drawing">
<value>262, 20</value>
</data>
<data name="labelControl3.Appearance.DisabledImage" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="labelControl3.Appearance.GradientMode" type="System.Drawing.Drawing2D.LinearGradientMode, System.Drawing">
<value>Horizontal</value>
</data>
<data name="labelControl3.Appearance.HoverImage" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="labelControl3.Appearance.Image" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="labelControl3.Appearance.PressedImage" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="labelControl3.Text" xml:space="preserve">
<value>Nicht explizit sortierte Sender:</value>
</data>
<data name="btnResetChannelData.Text" xml:space="preserve">
<value>Senderlisten vollständig löschen</value>
</data>
<data name="comboChannelList.Properties.AccessibleDescription" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="comboChannelList.Properties.AccessibleName" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="comboChannelList.Properties.AutoHeight" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="comboChannelList.Properties.NullValuePrompt" xml:space="preserve">
<value />
</data>
<data name="comboChannelList.Properties.NullValuePromptShowForEmptyValue" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="labelControl1.Size" type="System.Drawing.Size, System.Drawing">
<value>57, 13</value>
</data>
<data name="labelControl1.Text" xml:space="preserve">
<value>Senderliste:</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>ChanSort {0} - Senderlisten Editor für LG und Samsung TV</value>
</data>
<data name="miMoveUp.Caption" xml:space="preserve">
<value>Nach oben</value>
</data>
<data name="miMoveDown.Caption" xml:space="preserve">
<value>Nach unten</value>
</data>
<data name="comboEditMode.Properties.AccessibleDescription" type="System.Resources.ResXNullRef, System.Windows.Forms">
<data name="rbInsertSwap.Properties.AccessibleDescription" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="comboEditMode.Properties.AccessibleName" type="System.Resources.ResXNullRef, System.Windows.Forms">
<data name="rbInsertSwap.Properties.AccessibleName" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="comboEditMode.Properties.AutoHeight" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="comboEditMode.Properties.Items" xml:space="preserve">
<value>Davor einfügen</value>
</data>
<data name="comboEditMode.Properties.Items1" xml:space="preserve">
<value>Dahinter einfügen</value>
</data>
<data name="comboEditMode.Properties.Items2" xml:space="preserve">
<value>Austauschen</value>
</data>
<data name="comboEditMode.Properties.NullValuePrompt" xml:space="preserve">
<value />
</data>
<data name="comboEditMode.Properties.NullValuePromptShowForEmptyValue" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="btnSyncFromLeft.ToolTip" xml:space="preserve">
<value>Nach aktuellem Sender in rechtem Fenster filtern</value>
</data>
<data name="labelControl2.Size" type="System.Drawing.Size, System.Drawing">
<value>35, 13</value>
</data>
<data name="labelControl2.Text" xml:space="preserve">
<value>Modus:</value>
</data>
<data name="btnClearLeftFilter.Appearance.GradientMode" type="System.Drawing.Drawing2D.LinearGradientMode, System.Drawing">
<data name="rbInsertSwap.Properties.Appearance.GradientMode" type="System.Drawing.Drawing2D.LinearGradientMode, System.Drawing">
<value>Horizontal</value>
</data>
<data name="btnClearLeftFilter.Appearance.Image" type="System.Resources.ResXNullRef, System.Windows.Forms">
<data name="rbInsertSwap.Properties.Appearance.Image" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="btnClearLeftFilter.ToolTip" xml:space="preserve">
<value>Filter zurücksetzen</value>
<data name="rbInsertSwap.Properties.AutoHeight" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="btnRenum.ToolTip" xml:space="preserve">
<value>Markierte Sender neu nummerieren</value>
<data name="rbInsertSwap.Properties.Caption" xml:space="preserve">
<value>tauschen</value>
</data>
<data name="btnSort.ToolTip" xml:space="preserve">
<value>Markierte Sender alphabetisch sortieren</value>
<data name="rbInsertSwap.Properties.DisplayValueChecked" xml:space="preserve">
<value />
</data>
<data name="btnDown.ToolTip" xml:space="preserve">
<value>Markierte Sender nach unten verschieben</value>
<data name="rbInsertSwap.Properties.DisplayValueGrayed" xml:space="preserve">
<value />
</data>
<data name="btnUp.ToolTip" xml:space="preserve">
<value>Markierte Sender nach oben verschieben</value>
<data name="rbInsertSwap.Properties.DisplayValueUnchecked" xml:space="preserve">
<value />
</data>
<data name="btnRemove.ToolTip" xml:space="preserve">
<value>Markierte Sender entfernen</value>
<data name="rbInsertAfter.Properties.AccessibleDescription" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="rbInsertAfter.Properties.AccessibleName" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="rbInsertAfter.Properties.AutoHeight" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="rbInsertAfter.Properties.Caption" xml:space="preserve">
<value>dahinter</value>
</data>
<data name="rbInsertAfter.Properties.DisplayValueChecked" xml:space="preserve">
<value />
</data>
<data name="rbInsertAfter.Properties.DisplayValueGrayed" xml:space="preserve">
<value />
</data>
<data name="rbInsertAfter.Properties.DisplayValueUnchecked" xml:space="preserve">
<value />
</data>
<data name="rbInsertBefore.Properties.AccessibleDescription" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="rbInsertBefore.Properties.AccessibleName" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="rbInsertBefore.Properties.AutoHeight" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="rbInsertBefore.Properties.Caption" xml:space="preserve">
<value>davor</value>
</data>
<data name="rbInsertBefore.Properties.DisplayValueChecked" xml:space="preserve">
<value />
</data>
<data name="rbInsertBefore.Properties.DisplayValueGrayed" xml:space="preserve">
<value />
</data>
<data name="rbInsertBefore.Properties.DisplayValueUnchecked" xml:space="preserve">
<value />
</data>
<data name="cbCloseGap.Properties.AccessibleDescription" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="cbCloseGap.Properties.AccessibleName" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="cbCloseGap.Properties.AutoHeight" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="cbCloseGap.Properties.Caption" xml:space="preserve">
<value>Lücken beim Verschieben/Entfernen von Sendern schließen</value>
</data>
<data name="cbCloseGap.Properties.DisplayValueChecked" xml:space="preserve">
<value />
</data>
<data name="cbCloseGap.Properties.DisplayValueGrayed" xml:space="preserve">
<value />
</data>
<data name="cbCloseGap.Properties.DisplayValueUnchecked" xml:space="preserve">
<value />
</data>
<data name="cbCloseGap.ToolTip" xml:space="preserve">
<value>Wenn aktiv, werden folgende Programmnummer automatisch vorgerückt</value>
</data>
<data name="cbAppendUnsortedChannels.Properties.AccessibleDescription" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="cbAppendUnsortedChannels.Properties.AccessibleName" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="cbAppendUnsortedChannels.Properties.AutoHeight" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="cbAppendUnsortedChannels.Properties.Caption" xml:space="preserve">
<value>Unsortierte Sender beim Speichern automatisch anhängen</value>
</data>
<data name="cbAppendUnsortedChannels.Properties.DisplayValueChecked" xml:space="preserve">
<value />
</data>
<data name="cbAppendUnsortedChannels.Properties.DisplayValueGrayed" xml:space="preserve">
<value />
</data>
<data name="cbAppendUnsortedChannels.Properties.DisplayValueUnchecked" xml:space="preserve">
<value />
</data>
<data name="labelControl2.Size" type="System.Drawing.Size, System.Drawing">
<value>71, 13</value>
</data>
<data name="labelControl2.Text" xml:space="preserve">
<value>Einfügemodus:</value>
</data>
<data name="picDonate.Properties.AccessibleDescription" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="picDonate.Properties.AccessibleName" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="picDonate.Properties.Appearance.GradientMode" type="System.Drawing.Drawing2D.LinearGradientMode, System.Drawing">
<value>Horizontal</value>
</data>
<data name="picDonate.Properties.Appearance.Image" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="pageEmpty.Text" xml:space="preserve">
<value>Keine Datei geladen</value>
</data>
<data name="labelControl11.Text" xml:space="preserve">
<value>Setze Pr#:</value>
</data>
<data name="labelControl11.ToolTip" xml:space="preserve">
<value>Programplatz für Einfügen und Festlegen</value>
</data>
<data name="txtSetSlot.Properties.AccessibleDescription" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
@@ -534,52 +874,73 @@
<data name="txtSetSlot.Properties.NullValuePromptShowForEmptyValue" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="labelControl11.Text" xml:space="preserve">
<value>Setze Pr#:</value>
<data name="$this.Text" xml:space="preserve">
<value>ChanSort {0} - Senderlisten Editor für LG und Samsung TV</value>
</data>
<data name="labelControl11.ToolTip" xml:space="preserve">
<value>Programplatz für Einfügen und Festlegen</value>
<data name="btnToggleLock.Text" xml:space="preserve">
<value>Kindersicherung</value>
</data>
<data name="btnClearLeftFilter.Appearance.GradientMode" type="System.Drawing.Drawing2D.LinearGradientMode, System.Drawing">
<value>Horizontal</value>
</data>
<data name="btnClearLeftFilter.Appearance.Image" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="btnClearLeftFilter.ToolTip" xml:space="preserve">
<value>Filter entfernen</value>
</data>
<data name="btnRenum.ToolTip" xml:space="preserve">
<value>Markierte Sender neu nummerieren</value>
</data>
<data name="btnDown.ToolTip" xml:space="preserve">
<value>Markierte Sender nach unten verschieben</value>
</data>
<data name="btnUp.ToolTip" xml:space="preserve">
<value>Markierte Sender nach oben verschieben</value>
</data>
<data name="btnRemove.ToolTip" xml:space="preserve">
<value>Markierte Sender entfernen</value>
</data>
<data name="grpOutputList.Text" xml:space="preserve">
<value>Sortierte Sender (.csv)</value>
</data>
<data name="gridInput.EmbeddedNavigator.AccessibleDescription" type="System.Resources.ResXNullRef, System.Windows.Forms">
<data name="gridRight.EmbeddedNavigator.AccessibleDescription" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="gridInput.EmbeddedNavigator.AccessibleName" type="System.Resources.ResXNullRef, System.Windows.Forms">
<data name="gridRight.EmbeddedNavigator.AccessibleName" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="gridInput.EmbeddedNavigator.AllowHtmlTextInToolTip" type="DevExpress.Utils.DefaultBoolean, DevExpress.Data.v12.2">
<data name="gridRight.EmbeddedNavigator.AllowHtmlTextInToolTip" type="DevExpress.Utils.DefaultBoolean, DevExpress.Data.v12.2">
<value>Default</value>
</data>
<data name="gridInput.EmbeddedNavigator.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<data name="gridRight.EmbeddedNavigator.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left</value>
</data>
<data name="gridInput.EmbeddedNavigator.BackgroundImage" type="System.Resources.ResXNullRef, System.Windows.Forms">
<data name="gridRight.EmbeddedNavigator.BackgroundImage" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="gridInput.EmbeddedNavigator.BackgroundImageLayout" type="System.Windows.Forms.ImageLayout, System.Windows.Forms">
<data name="gridRight.EmbeddedNavigator.BackgroundImageLayout" type="System.Windows.Forms.ImageLayout, System.Windows.Forms">
<value>Tile</value>
</data>
<data name="gridInput.EmbeddedNavigator.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<data name="gridRight.EmbeddedNavigator.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>Inherit</value>
</data>
<data name="gridInput.EmbeddedNavigator.TextLocation" type="DevExpress.XtraEditors.NavigatorButtonsTextLocation, DevExpress.XtraEditors.v12.2">
<data name="gridRight.EmbeddedNavigator.TextLocation" type="DevExpress.XtraEditors.NavigatorButtonsTextLocation, DevExpress.XtraEditors.v12.2">
<value>Center</value>
</data>
<data name="gridInput.EmbeddedNavigator.ToolTip" xml:space="preserve">
<data name="gridRight.EmbeddedNavigator.ToolTip" xml:space="preserve">
<value />
</data>
<data name="gridInput.EmbeddedNavigator.ToolTipIconType" type="DevExpress.Utils.ToolTipIconType, DevExpress.Utils.v12.2">
<data name="gridRight.EmbeddedNavigator.ToolTipIconType" type="DevExpress.Utils.ToolTipIconType, DevExpress.Utils.v12.2">
<value>None</value>
</data>
<data name="gridInput.EmbeddedNavigator.ToolTipTitle" xml:space="preserve">
<data name="gridRight.EmbeddedNavigator.ToolTipTitle" xml:space="preserve">
<value />
</data>
<data name="gviewInput.Appearance.HeaderPanel.GradientMode" type="System.Drawing.Drawing2D.LinearGradientMode, System.Drawing">
<data name="gviewRight.Appearance.HeaderPanel.GradientMode" type="System.Drawing.Drawing2D.LinearGradientMode, System.Drawing">
<value>Horizontal</value>
</data>
<data name="gviewInput.Appearance.HeaderPanel.Image" type="System.Resources.ResXNullRef, System.Windows.Forms">
<data name="gviewRight.Appearance.HeaderPanel.Image" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="colSlotOld.Caption" xml:space="preserve">
@@ -669,9 +1030,6 @@
<data name="lblHotkeyRight.Text" xml:space="preserve">
<value>F5: Filter | F6: Liste | Eingabe: übernehmen</value>
</data>
<data name="btnCloneChannelList.Text" xml:space="preserve">
<value>&lt;&lt; Alle hinzufügen (aktuelle Senderliste kopieren)</value>
</data>
<data name="btnClearRightFilter.Appearance.GradientMode" type="System.Drawing.Drawing2D.LinearGradientMode, System.Drawing">
<value>Horizontal</value>
</data>
@@ -679,10 +1037,7 @@
<value />
</data>
<data name="btnClearRightFilter.ToolTip" xml:space="preserve">
<value>Filter zurücksetzen</value>
</data>
<data name="btnSyncFromRight.ToolTip" xml:space="preserve">
<value>Nach aktuellem Sender in linkem Fenster filtern</value>
<value>Filter entfernen</value>
</data>
<data name="btnAdd.ToolTip" xml:space="preserve">
<value>Markierte Sender übernehmen</value>

File diff suppressed because it is too large Load Diff

View File

@@ -6,8 +6,8 @@ using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("ChanSortUI")]
[assembly: AssemblyDescription("TV Channel Sort Utility")]
[assembly: AssemblyTitle("ChanSort")]
[assembly: AssemblyDescription("ChanSort TV Channel Sort Utility")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ChanSort")]

View File

@@ -68,7 +68,7 @@ namespace ChanSort.Ui.Properties {
}
/// <summary>
/// Looks up a localized string similar to Delete all channel data.
/// Looks up a localized string similar to Erase all channel data.
/// </summary>
internal static string MainForm_btnResetChannelData_Click_Caption {
get {

View File

@@ -189,7 +189,7 @@ You will have to run a full channel scan after loading this file into your TV.
Proceed?</value>
</data>
<data name="MainForm_btnResetChannelData_Click_Caption" xml:space="preserve">
<value>Delete all channel data</value>
<value>Erase all channel data</value>
</data>
<data name="MainForm_miRestoreOriginal_Message" xml:space="preserve">
<value>Unable to copy .bak file to {0}</value>
@@ -207,7 +207,7 @@ Do you want to continue?</value>
<data name="MainForm_ShowOpenReferenceFileDialog_Filter" xml:space="preserve">
<value>ChanSort Reference List|*.csv|SamToolBox Reference List|*.chl|All Reference Lists|*.csv;*.chl</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="Donate" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\btn_donateCC_LG.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>

View File

@@ -1,7 +1,8 @@
DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraSplashScreen.SplashScreenManager, DevExpress.XtraEditors.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraTab.XtraTabControl, DevExpress.XtraEditors.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.BarManager, DevExpress.XtraBars.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraSplashScreen.SplashScreenManager, DevExpress.XtraEditors.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a

View File

@@ -11,12 +11,6 @@
<setting name="InputTLL" serializeAs="String">
<value />
</setting>
<setting name="InputListRowHandle" serializeAs="String">
<value>0</value>
</setting>
<setting name="OutputListRowHandle" serializeAs="String">
<value>0</value>
</setting>
<setting name="OutputListLayout" serializeAs="String">
<value />
</setting>

View File

@@ -1,10 +1,16 @@
Version v2013-04-04 ========================================================
Version v2013-04-05 ========================================================
This is a bugfix release for major version v2013-04-03
New:
- Redesigned user interface
- Editing option to close or keep gaps when moving/deleting channels
- Support for LG LMxxxT models, which export an invalid DVB-S data block
- Opening a file automatically shows the first non-empty channel list
- Reloading a TV-file will show the last opened list
Bug fixes:
- Deleting channels for Samsung TVs now stores the files correctly (no longer
showing them all on Pr #0 on your TV)
Fixed:
- Deleting rows caused incorrect selections in the left list. Successive
deletes resulted in the loss of the first channel.
- Duplicate Pr# was assigned to channels when they were added out of order
The complete change log can be found at the end of this document
@@ -88,11 +94,20 @@ OTHER DEALINGS IN THE SOFTWARE.
Change log ====================================================================
2013-04-05
- Redesigned user interface
- Editing option to close or keep gaps when moving/deleting channels
- Support for LG LMxxxT models, which export an invalid DVB-S data block
- Opening a file automatically shows the first non-empty channel list
- Reloading a TV-file will show the last opened list
- FIX: Deleting rows caused incorrect selections in the left list. Successive
deletes resulted in the loss of the first channel.
- FIX: Duplicate Pr# was assigned to channels when they were added out of order
2013-04-04
- Deleting channels for Samsung TVs now stores the files correctly (no longer
showing them all on Pr #0 on your TV)
2013-04-03 (major release)
- complete re-write of the code for loading/saving TV-data files (SCM, TLL)
and reference lists (CSV).