From a439026931a2f4abe9d31d4df3811e4366023e0e Mon Sep 17 00:00:00 2001 From: hbeham Date: Wed, 20 Apr 2016 00:33:47 +0200 Subject: [PATCH] adding a new Form for advanced reference list application --- .../ChanSort.Api/Controller/SerializerBase.cs | 1 + .../HisDbSerializer.cs | 211 +++- source/ChanSort/ChanSort.csproj | 9 + source/ChanSort/MainForm.cs | 21 +- source/ChanSort/MainForm.de.resx | 668 +++++----- source/ChanSort/MainForm.pt.resx | 384 +++--- source/ChanSort/MainForm.resx | 1118 ++++++++--------- source/ChanSort/MainForm.ru.resx | 588 ++++----- source/ChanSort/Properties/licenses.licx | 8 +- source/ChanSort/ReferenceListForm.Designer.cs | 463 +++++++ source/ChanSort/ReferenceListForm.cs | 233 ++++ source/ChanSort/ReferenceListForm.resx | 120 ++ source/changelog.md | 3 + 13 files changed, 2388 insertions(+), 1439 deletions(-) create mode 100644 source/ChanSort/ReferenceListForm.Designer.cs create mode 100644 source/ChanSort/ReferenceListForm.cs create mode 100644 source/ChanSort/ReferenceListForm.resx diff --git a/source/ChanSort.Api/Controller/SerializerBase.cs b/source/ChanSort.Api/Controller/SerializerBase.cs index 253122d..5b9f0dc 100644 --- a/source/ChanSort.Api/Controller/SerializerBase.cs +++ b/source/ChanSort.Api/Controller/SerializerBase.cs @@ -10,6 +10,7 @@ namespace ChanSort.Api public bool CleanUpChannelData { get; set; } public bool DeviceSettings { get; set; } public bool CanDeleteChannels { get; set; } + public bool CanSkipChannels { get; set; } = true; public bool CanHaveGaps { get; set; } public bool EncryptedFlagEdit { get; set; } diff --git a/source/ChanSort.Loader.Hisense/HisDbSerializer.cs b/source/ChanSort.Loader.Hisense/HisDbSerializer.cs index 5f69d1c..874902a 100644 --- a/source/ChanSort.Loader.Hisense/HisDbSerializer.cs +++ b/source/ChanSort.Loader.Hisense/HisDbSerializer.cs @@ -1,10 +1,10 @@ -using System; +//#define LOCK_LCN_LISTS + +using System; using System.Collections.Generic; using System.Data; using ChanSort.Api; using System.Data.SQLite; -using System.Runtime.CompilerServices; -using System.Text; using System.Text.RegularExpressions; using System.Windows.Forms; @@ -16,34 +16,88 @@ namespace ChanSort.Loader.Hisense #region enums and bitmasks - internal enum BroadcastType { Analog = 1, Dvb = 2 } - internal enum BroadcastMedium { DigTer = 1, DigCab = 2, DigSat = 3, AnaTer = 4, AnaCab = 5, AnaSat = 6 } - internal enum ServiceType { Tv = 1, Radio = 2, App = 3} + internal enum BroadcastType + { + Analog = 1, + Dvb = 2 + } + + internal enum BroadcastMedium + { + DigTer = 1, + DigCab = 2, + DigSat = 3, + AnaTer = 4, + AnaCab = 5, + AnaSat = 6 + } + + internal enum ServiceType + { + Tv = 1, + Radio = 2, + App = 3 + } + [Flags] - internal enum NwMask { Active = 1<<1, Visible = 1<<3, Fav1 = 1<<4, Fav2 = 1<<5, Fav3 = 1<<6, Fav4 = 1<<7, Lock = 1<<8 } + internal enum NwMask + { + Active = 1 << 1, + Visible = 1 << 3, + Fav1 = 1 << 4, + Fav2 = 1 << 5, + Fav3 = 1 << 6, + Fav4 = 1 << 7, + Lock = 1 << 8 + } + [Flags] - internal enum OptionMask { NameEdited = 1<<3, ChNumEdited = 1<<10, DeletedByUser = 1<<13 } + internal enum OptionMask + { + NameEdited = 1 << 3, + ChNumEdited = 1 << 10, + DeletedByUser = 1 << 13 + } + [Flags] - internal enum HashCode { Name = 1<<0, ChannelId = 1<<1, BroadcastType = 1<<2, TsRecId = 1<<3, ProgNum = 1<<4, DvbShortName = 1<<5, Radio = 1<<10, Encrypted = 1<<11, Tv = 1<<13 } + internal enum HashCode + { + Name = 1 << 0, + ChannelId = 1 << 1, + BroadcastType = 1 << 2, + TsRecId = 1 << 3, + ProgNum = 1 << 4, + DvbShortName = 1 << 5, + Radio = 1 << 10, + Encrypted = 1 << 11, + Tv = 1 << 13 + } + [Flags] - internal enum DvbLinkageMask { Ts = 1<<2 } + internal enum DvbLinkageMask + { + Ts = 1 << 2 + } #endregion private readonly List channelLists = new List(); - private readonly Dictionary channelsById = new Dictionary(); + private readonly Dictionary channelsById = new Dictionary(); private List tableNames; #region ctor() + public HisDbSerializer(string inputFile) : base(inputFile) { DepencencyChecker.AssertVc2010RedistPackageX86Installed(); this.Features.ChannelNameEdit = ChannelNameEditMode.All; this.Features.CanDeleteChannels = false; + this.Features.CanSkipChannels = false; + this.Features.CanHaveGaps = true; this.DataRoot.SortedFavorites = true; - + channelLists.Add(new ChannelList(SignalSource.Antenna | SignalSource.Analog | SignalSource.Digital | SignalSource.Radio | SignalSource.Tv, "Antenna")); channelLists.Add(new ChannelList(SignalSource.Cable | SignalSource.Analog | SignalSource.Digital | SignalSource.Radio | SignalSource.Tv, "Cable")); channelLists.Add(new ChannelList(SignalSource.Sat | SignalSource.Analog | SignalSource.Digital | SignalSource.Radio | SignalSource.Tv, "Sat")); @@ -57,10 +111,29 @@ namespace ChanSort.Loader.Hisense foreach (var list in this.channelLists) { this.DataRoot.AddChannelList(list); - list.VisibleColumnFieldNames = new List {"Position", "OldProgramNr", "Name", "ShortName", "Favorites", "Lock", "Hidden", "Encrypted", - "FreqInMhz", "OriginalNetworkId", "TransportStreamId", "ServiceId", "ServiceTypeName", "NetworkName", "SymbolRate" }; + list.VisibleColumnFieldNames = new List + { + "Position", + "OldProgramNr", + "Name", + "ShortName", + "Favorites", + "Lock", + "Hidden", + "Encrypted", + "FreqInMhz", + "OriginalNetworkId", + "TransportStreamId", + "ServiceId", + "ServiceType", + "ServiceTypeName", + "NetworkName", + "Satellite", + "SymbolRate" + }; } } + #endregion @@ -88,17 +161,21 @@ namespace ChanSort.Loader.Hisense if (totalCount == 0) MessageBox.Show(Resources.Load_NoChannelsMsg, Resources.Load_NoChannelsCaption, MessageBoxButtons.OK); } + #endregion #region RepairCorruptedDatabaseImage() + private void RepairCorruptedDatabaseImage(SQLiteCommand cmd) { cmd.CommandText = "REINDEX"; cmd.ExecuteNonQuery(); } + #endregion #region LoadTableNames() + private void LoadTableNames(SQLiteCommand cmd) { this.tableNames = new List(); @@ -113,6 +190,7 @@ namespace ChanSort.Loader.Hisense #endregion #region LoadSatelliteData() + private void LoadSatelliteData(SQLiteCommand cmd) { var regex = new Regex(@"^satl_\d$"); @@ -134,6 +212,7 @@ namespace ChanSort.Loader.Hisense } } } + #endregion #region LoadTslData() @@ -150,17 +229,17 @@ namespace ChanSort.Loader.Hisense this.LoadTslData(cmd, x, "tsl_#_data_ter_dig", ", freq", (t, r, i0) => { - t.FrequencyInMhz = (decimal)r.GetInt32(i0 + 0) / 1000000; + t.FrequencyInMhz = (decimal) r.GetInt32(i0 + 0)/1000000; }); this.LoadTslData(cmd, x, "tsl_#_data_ter_ana", ", freq", (t, r, i0) => { - t.FrequencyInMhz = (decimal)r.GetInt32(i0 + 0) / 1000000; + t.FrequencyInMhz = (decimal) r.GetInt32(i0 + 0)/1000000; }); this.LoadTslData(cmd, x, "tsl_#_data_cab_dig", ", freq, sym_rate", (t, r, i0) => { - t.FrequencyInMhz = (decimal)r.GetInt32(i0 + 0) / 1000000; + t.FrequencyInMhz = (decimal) r.GetInt32(i0 + 0)/1000000; t.SymbolRate = r.GetInt32(i0 + 1); }); @@ -169,10 +248,24 @@ namespace ChanSort.Loader.Hisense t.FrequencyInMhz = (decimal) r.GetInt32(i0 + 0)/1000000; }); - this.LoadTslData(cmd, x, "tsl_#_data_sat_dig", ", freq, sym_rate", (t, r, i0) => + this.LoadTslData(cmd, x, "tsl_#_data_sat_dig", ", freq, sym_rate, orb_pos", (t, r, i0) => { t.FrequencyInMhz = r.GetInt32(i0 + 0); t.SymbolRate = r.GetInt32(i0 + 1); + + // satellite information may or may not be available in the database. if there is none, create a proxy sat records from the orbital position in the TSL data + if (t.Satellite == null) + { + var opos = r.GetInt32(i0 + 2); + var sat = this.DataRoot.Satellites.TryGet(opos); + if (sat == null) + { + sat = new Satellite(opos); + var pos = (decimal) opos/10; + sat.Name = pos < 0 ? (-pos).ToString("n1") + "W" : pos.ToString("n1") + "E"; + } + t.Satellite = sat; + } }); } } @@ -183,13 +276,14 @@ namespace ChanSort.Loader.Hisense return; cmd.CommandText = $"select tsl_#.tsl_rec_id, `t_desc.on_id`, `t_desc.ts_id`, `t_ref.satl_rec_id`, `t_desc.e_bcst_medium` {joinFields} " - + $" from tsl_# inner join {joinTable} on {joinTable}.tsl_rec_id=tsl_#.tsl_rec_id"; + + $" from tsl_# inner join {joinTable} on {joinTable}.tsl_rec_id=tsl_#.tsl_rec_id"; cmd.CommandText = cmd.CommandText.Replace("#", tableNr.ToString()); using (var r = cmd.ExecuteReader()) { while (r.Read()) { - var trans = new Transponder(r.GetInt32(0)); + int id = (tableNr << 16) | r.GetInt32(0); + var trans = new Transponder(id); trans.OriginalNetworkId = r.GetInt32(1); trans.TransportStreamId = r.GetInt32(2); trans.Satellite = this.DataRoot.Satellites.TryGet(r.GetInt32(3)); @@ -200,6 +294,7 @@ namespace ChanSort.Loader.Hisense } } } + #endregion #region LoadSvlData() @@ -231,9 +326,11 @@ namespace ChanSort.Loader.Hisense if ((ci.SignalSource & SignalSource.DvbT) == SignalSource.DvbT) ci.ChannelOrTransponder = LookupData.Instance.GetDvbtTransponder(ci.FreqInMhz).ToString(); - // make the current list read-only if LCN is used +#if LOCK_LCN_LISTS + // make the current list read-only if LCN is used if (r.GetInt32(i0 + 3) != 0) this.channelLists[x - 1].ReadOnly = true; +#endif }); } } @@ -243,21 +340,21 @@ namespace ChanSort.Loader.Hisense if (!this.tableNames.Contains(joinTable.Replace("#", tableNr.ToString()))) return; - cmd.CommandText = $"select svl_#.svl_rec_id, channel_id, svl_#.tsl_rec_id, e_serv_type, ac_name, nw_mask, prog_id, `t_desc.e_bcst_medium` {joinFields}" - + $" from svl_# inner join {joinTable} on {joinTable}.svl_rec_id=svl_#.svl_rec_id inner join tsl_# on tsl_#.tsl_rec_id=svl_#.tsl_rec_id"; + cmd.CommandText = $"select svl_#.svl_rec_id, channel_id, svl_#.tsl_id, svl_#.tsl_rec_id, e_serv_type, ac_name, nw_mask, prog_id, `t_desc.e_bcst_medium` {joinFields}" + + $" from svl_# inner join {joinTable} on {joinTable}.svl_rec_id=svl_#.svl_rec_id inner join tsl_# on tsl_#.tsl_rec_id=svl_#.tsl_rec_id"; cmd.CommandText = cmd.CommandText.Replace("#", tableNr.ToString()); using (var r = cmd.ExecuteReader()) { while (r.Read()) { - var id = ((long)tableNr << 32) | (uint)r.GetInt32(0); - var prNr = (int)((uint)r.GetInt32(1)) >> 18; - var trans = this.DataRoot.Transponder.TryGet(r.GetInt32(2)); - var stype = (ServiceType) r.GetInt32(3); - var name = r.GetString(4); - var nwMask = (NwMask)r.GetInt32(5); - var sid = r.GetInt32(6); - var bmedium = (BroadcastMedium)r.GetInt32(7); + var id = ((long) tableNr << 32) | (uint) r.GetInt32(0); + var prNr = (int) ((uint) r.GetInt32(1)) >> 18; + var trans = this.DataRoot.Transponder.TryGet((r.GetInt32(2) << 16) | r.GetInt32(3)); + var stype = (ServiceType) r.GetInt32(4); + var name = r.GetString(5); + var nwMask = (NwMask) r.GetInt32(6); + var sid = r.GetInt32(7); + var bmedium = (BroadcastMedium) r.GetInt32(8); var ssource = DetermineSignalSource(bmedium, stype); var ci = new ChannelInfo(ssource, id, prNr, name); @@ -276,7 +373,7 @@ namespace ChanSort.Loader.Hisense //ci.Skip = (nwMask & NwMask.Active) == 0; ci.Lock = (nwMask & NwMask.Lock) != 0; ci.Hidden = (nwMask & NwMask.Visible) == 0; - ci.Favorites |= (Favorites) ((int)(nwMask & (NwMask.Fav1 | NwMask.Fav2 | NwMask.Fav3 | NwMask.Fav4)) >> 4); + ci.Favorites |= (Favorites) ((int) (nwMask & (NwMask.Fav1 | NwMask.Fav2 | NwMask.Fav3 | NwMask.Fav4)) >> 4); if (stype == ServiceType.Radio) ci.ServiceTypeName = "Radio"; @@ -285,7 +382,7 @@ namespace ChanSort.Loader.Hisense else if (stype == ServiceType.App) ci.ServiceTypeName = "Data"; - enhanceChannelInfo(ci, r, 8); + enhanceChannelInfo(ci, r, 9); var list = this.channelLists[tableNr - 1]; this.DataRoot.AddChannel(list, ci); @@ -296,9 +393,11 @@ namespace ChanSort.Loader.Hisense } } } + #endregion #region LoadFavorites() + private void LoadFavorites(SQLiteCommand cmd) { for (int i = 1; i <= 4; i++) @@ -310,7 +409,7 @@ namespace ChanSort.Loader.Hisense { while (r.Read()) { - var id = ((long)r.GetInt32(0) << 32) | (uint)r.GetInt32(1); + var id = ((long) r.GetInt32(0) << 32) | (uint) r.GetInt32(1); var ci = this.channelsById.TryGet(id); if (ci != null) ci.FavIndex[i - 1] = int.Parse(r.GetString(2)); @@ -318,9 +417,11 @@ namespace ChanSort.Loader.Hisense } } } + #endregion #region DetermineSignalSource() + private static SignalSource DetermineSignalSource(BroadcastMedium bmedium, ServiceType stype) { SignalSource ssource = 0; @@ -360,9 +461,13 @@ namespace ChanSort.Loader.Hisense try { this.CreateFavTables(cmd); - +#if !LOCK_LCN_LISTS + this.ResetLcn(cmd); +#endif foreach (var list in this.DataRoot.ChannelLists) { + if (list.ReadOnly) + continue; foreach (var ci in list.Channels) this.UpdateChannel(cmd, ci); } @@ -376,11 +481,13 @@ namespace ChanSort.Loader.Hisense } } } + #endregion #region CreateFavTables() + private void CreateFavTables(SQLiteCommand cmd) - { + { for (int i = 1; i <= 4; i++) { if (!this.tableNames.Contains("fav_" + i)) @@ -391,21 +498,39 @@ namespace ChanSort.Loader.Hisense } } } + + #endregion + + #region ResetLcn() + + private void ResetLcn(SQLiteCommand cmd) + { + var regex = new Regex(@"^svl_\d_data_dvb$"); + foreach (var table in this.tableNames) + { + if (!regex.IsMatch(table)) + continue; + cmd.CommandText = "update " + table + " set cur_lcn=0, original_lcn=0, lcn_idx=0"; + cmd.ExecuteNonQuery(); + } + } + #endregion #region UpdateChannel() + private void UpdateChannel(SQLiteCommand cmd, ChannelInfo ci) { - int x = (int)((ulong)ci.RecordIndex >> 32); // the table number is kept in the higher 32 bits - int id = (int)(ci.RecordIndex & 0xFFFFFFFF); // the record id is kept in the lower 32 bits + int x = (int) ((ulong) ci.RecordIndex >> 32); // the table number is kept in the higher 32 bits + int id = (int) (ci.RecordIndex & 0xFFFFFFFF); // the record id is kept in the lower 32 bits var resetFlags = NwMask.Fav1 | NwMask.Fav2 | NwMask.Fav3 | NwMask.Fav4 | NwMask.Lock | NwMask.Visible; - var setFlags = (NwMask)(((int)ci.Favorites & 0x0F) << 4); + var setFlags = (NwMask) (((int) ci.Favorites & 0x0F) << 4); if (ci.Lock) setFlags |= NwMask.Lock; if (!ci.Hidden && ci.NewProgramNr >= 0) setFlags |= NwMask.Visible; - cmd.CommandText = $"update svl_{x} set channel_id=(channel_id&{0xFFFC})|@chnr, ac_name=@name, " + - $"option_mask=option_mask|{(int)(OptionMask.ChNumEdited|OptionMask.NameEdited)}, nw_mask=(nw_mask&@resetFlags)|@setFlags where svl_rec_id=@id"; + cmd.CommandText = $"update svl_{x} set channel_id=(channel_id&{0xFFFC})|@chnr, ac_name=@name, " + + $"option_mask=option_mask|{(int) (OptionMask.ChNumEdited | OptionMask.NameEdited)}, nw_mask=(nw_mask&@resetFlags)|@setFlags where svl_rec_id=@id"; cmd.Parameters.Clear(); cmd.Parameters.Add("@id", DbType.Int32); cmd.Parameters.Add("@chnr", DbType.Int32); @@ -415,8 +540,8 @@ namespace ChanSort.Loader.Hisense cmd.Parameters["@id"].Value = id; cmd.Parameters["@chnr"].Value = ci.NewProgramNr << 18; cmd.Parameters["@name"].Value = ci.Name; - cmd.Parameters["@resetFlags"].Value = ~(int)resetFlags; - cmd.Parameters["@setFlags"].Value = (int)setFlags; + cmd.Parameters["@resetFlags"].Value = ~(int) resetFlags; + cmd.Parameters["@setFlags"].Value = (int) setFlags; cmd.ExecuteNonQuery(); for (int i = 0; i < 4; i++) diff --git a/source/ChanSort/ChanSort.csproj b/source/ChanSort/ChanSort.csproj index d90bf4c..ea7b2ee 100644 --- a/source/ChanSort/ChanSort.csproj +++ b/source/ChanSort/ChanSort.csproj @@ -146,6 +146,12 @@ True True + + Form + + + ReferenceListForm.cs + @@ -265,6 +271,9 @@ True + + ReferenceListForm.cs + WaitForm1.cs diff --git a/source/ChanSort/MainForm.cs b/source/ChanSort/MainForm.cs index 254f39e..da0040e 100644 --- a/source/ChanSort/MainForm.cs +++ b/source/ChanSort/MainForm.cs @@ -25,7 +25,7 @@ namespace ChanSort.Ui { public partial class MainForm : XtraForm { - public const string AppVersion = "v2015-11-29"; + public const string AppVersion = "v2016-04-19"; private const int MaxMruEntries = 10; @@ -73,6 +73,9 @@ namespace ChanSort.Ui private readonly List mruFiles = new List(); private DevExpress.XtraGrid.Views.Grid.ViewInfo.GridHitInfo downHit; private DragDropInfo dragDropInfo; + internal IList Plugins => plugins; + internal DataRoot DataRoot => dataRoot; + internal Editor Editor => editor; #region ctor() public MainForm() @@ -163,7 +166,7 @@ namespace ChanSort.Ui #endregion #region GetTvDataFileFilter() - private string GetTvDataFileFilter(out string supportedExtensions, out int numberOfFilters) + internal string GetTvDataFileFilter(out string supportedExtensions, out int numberOfFilters) { numberOfFilters = 0; StringBuilder filter = new StringBuilder(); @@ -265,7 +268,7 @@ namespace ChanSort.Ui #endregion #region DetectCommonFileCorruptions() - private bool DetectCommonFileCorruptions(string tvDataFile) + internal bool DetectCommonFileCorruptions(string tvDataFile) { var content = File.ReadAllBytes(tvDataFile); bool isAllZero = true; @@ -383,7 +386,7 @@ namespace ChanSort.Ui #endregion #region GetTvFileSerializer() - private ISerializerPlugin GetPluginForFile(string inputFileName) + internal ISerializerPlugin GetPluginForFile(string inputFileName) { if (!File.Exists(inputFileName)) { @@ -1282,6 +1285,8 @@ namespace ChanSort.Ui foreach (GridColumn col in this.gviewRight.Columns) col.Visible = GetGridColumnVisibility(col, list); + foreach (GridColumn col in this.gviewLeft.Columns) + col.Visible = GetGridColumnVisibility(col, list); this.ClearRightFilter(); } @@ -1446,6 +1451,7 @@ namespace ChanSort.Ui this.miMoveUp.Visibility = visLeft; this.miMoveDown.Visibility = visLeft; this.miAddChannel.Visibility = visRight; + this.miSkipOn.Enabled = this.miSkipOff.Enabled = this.currentTvSerializer?.Features.CanSkipChannels ?? false; bool isLeftGridSortedByNewProgNr = this.IsLeftGridSortedByNewProgNr; var sel = this.gviewLeft.GetSelectedRows(); @@ -1737,7 +1743,12 @@ namespace ChanSort.Ui private void miOpenReferenceFile_ItemClick(object sender, ItemClickEventArgs e) { - this.TryExecute(() => this.ShowOpenReferenceFileDialog(false)); + //this.TryExecute(() => this.ShowOpenReferenceFileDialog(false)); + this.TryExecute(() => + { + using (var form = new ReferenceListForm(this)) + form.ShowDialog(this); + }); } private void miAddFromRefList_ItemClick(object sender, ItemClickEventArgs e) diff --git a/source/ChanSort/MainForm.de.resx b/source/ChanSort/MainForm.de.resx index c6e02b5..0702baa 100644 --- a/source/ChanSort/MainForm.de.resx +++ b/source/ChanSort/MainForm.de.resx @@ -117,313 +117,33 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Pr. Index + + + Service Typ + Neue Pr# - - Neuer Programmplatz - - - Sendername - - - Favoriten - - - Ge- sperrt - - - Kindersicherung - - - Über- springen - - - Ver- steckt - - - - 333, 17 - - - F3: Filter | F4: Liste | -: nach oben | +: nach unten | Entf: entfernen - - - &Datei - TV Senderliste &öffnen... - - &Erneut laden - - - Sicherheitskopie wiederherstellen - - - Datei&information... - - - &Speichern - - - Speichern &unter... - - - Referenzliste öffnen... - - - Referenzliste speichern... - - - Excel liste exportieren... - &Drucken... - - &Beenden - - - &Bearbeiten - - - Sender &übernehmen - - - Sender &entfernen - - - Sender umbenennen - - - Sender alphabetisch sortieren - - - Sender neu &nummerieren - - - Favoriten nach Pr# nummerieren - - - Verwendet einheitlich die Pr# auch in allen Favoritenlisten - &Favoriten hinzufügen - - Favoriten entfernen - - - Sender s&perren: ein - - - Sender sperren: aus - - - Sender ü&berspringen: ein - - - Sender überspringen: aus - - - Sender &verstecken: ein - - - Sender verstecken: aus - - - TV-Gerät - - - Geräte&einstellungen... - - - Senderliste bereinigen - - - Senderdatensätze neu organisieren und Duplikate entfernen - - - &Einstellungen - - - &Sprache - - - &Zeichensatz - - - Warnungen beim Laden anzeigen - - - Eventuelle Warnungen nach dem Laden einer TV-Datei automatisch anzeigen - - - Einga&behilfe - - - Öffnet ein Menü zur Auswahl der Eingangsquelle. Dieses kann auch direkt mit der F1-Taste aufgerufen werden. - - - &Eingangsquelle auswählen - - - Öffnet ein Menü zur Auswahl der Programm- oder Favoritenliste. Dieses Menü kann auch direkt über die Umschalt+F1 Tastenkombination geöffnet werden. - Program-/&Favoritenliste auswählen - - Programmliste - - - Favoriten A - - - Favoriten B - - - Favoriten C - - - Favoriten D - - - Favoriten E - - - Filterzeile in der &linken Liste - - - Linke Liste - - - Filterzeile in der &rechten Liste - - - Rechte Liste - - - &Hilfe - - - ChanSort Webseite... - - - &Über ChanSort... - - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMy4yLCBWZXJzaW9uPTEz - LjIuOS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA - ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li - bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEZpbGUE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC - X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICKaPJ5gsBeU2NTSFe - Xxl+0wEL - - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMy4yLCBWZXJzaW9uPTEz - LjIuOS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA - ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li - bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEhlbHAE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC - X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICdEVVDegwMU2acNpw - KphCYAEL - - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMy4yLCBWZXJzaW9uPTEz - LjIuOS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA - ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li - bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEVkaXQE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC - X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICZMTu18lZRU+IqmAu - ZMgcwAEL - - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMy4yLCBWZXJzaW9uPTEz - LjIuOS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA - ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li - bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAAB09wdGlvbnME/P///wtTeXN0ZW0uR3VpZAsAAAACX2EC - X2ICX2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICXJMOh9nzAkKc - WIeWYGkVXQEL - - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMy4yLCBWZXJzaW9uPTEz - LjIuOS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA - ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li - bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAADUFjY2Vzc2liaWxpdHkE/P///wtTeXN0ZW0uR3VpZAsA - AAACX2ECX2ICX2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICeIvz - nH8WlU24SIo8kTIJxAEL - - - - Nach oben - - - Nach unten + + Alle Sender tauschen - - 66, 19 - - - dahinter - - - 62, 19 - - - davor - - - 50, 19 - - - Lücken beim Verschieben/Entfernen von Sendern schließen - - - Wenn aktiv, werden folgende Programmnummer automatisch vorgerückt - - - 71, 13 - - - Einfügemodus: - - - Keine Senderlisten vorhanden - - - Setze Pr#: - - - Programplatz für Einfügen und Festlegen - - - ChanSort {0} - Senderlisten-Editor für Samsung, LG, Panasonic und Toshiba TVs - - - Kindersicherung bei markierten Sendern ein/ausschalten - - - Kindersicherung - - - Favorit E umschalten - - - Favorit D umschalten - Favorit C umschalten @@ -466,6 +186,9 @@ Sortierte Sender + + Pr. Index + Alte Pr# @@ -511,9 +234,18 @@ Frequenz (MHz) + + Service Typ ID + + + Service Typ + Satellit + + Netzwerk (ONID) + Symbol- rate @@ -526,12 +258,27 @@ Netzwerk Betreiber - - 213, 17 + + Anbieter + + + Reihenfolge + + + Signal- quelle F5: Filter | F6: Liste | Eingabe: übernehmen + + Diese vorprogrammierte Liste kann nicht bearbeitet werden. + + + Bei der Einrichtung ihres TVs wurde eine vordefinierte Senderliste gewählt. +Das Ändern dieser Liste würde zu Fehlfunktionen des Geräts führen. +Führen Sie bitte einen Sender-Vollsuchlauf aus und wählen Sie dabei keine +speziellen Anbieter, Satelliten oder Länderlisten aus. + Sender aus sortierter Liste entfernen @@ -550,6 +297,9 @@ Entfernt den Suchfilter von der vollständigen Senderliste + + FIlter + Filter entfernen @@ -559,83 +309,122 @@ Markierte Sender in die sortierte liste übernehmen - - Alle Sender + + Programmliste - - Filter + + Favoriten A - - FIlter + + Favoriten B + + + Favoriten C + + + Favoriten D + + + Favoriten E + + + Filterzeile in der &linken Liste + + + Linke Liste + + + Filterzeile in der &rechten Liste + + + Rechte Liste + + + &Hilfe + + + ChanSort Webseite... + + + &Über ChanSort... Werkzeuge - - Audio PID + + Nach oben - - Pr. Index + + dahinter - - Pr. Index + + ChanSort {0} - Editor für TV-Senderlisten - - Reihenfolge + + Kindersicherung bei markierten Sendern ein/ausschalten - - Netzwerk (ONID) + + Kindersicherung - - Service Typ + + Favorit E umschalten - - Anbieter + + Favorit D umschalten - - Service ID + + Favoriten entfernen - - Service Typ ID + + Sender s&perren: ein - - Signal- quelle + + Sender sperren: aus - - Video PID + + Sender ü&berspringen: ein + + + Sender überspringen: aus + + + Sender &verstecken: ein + + + Sender verstecken: aus + + + TV-Gerät + + + Geräte&einstellungen... + + + Senderliste bereinigen + + + Senderdatensätze neu organisieren und Duplikate entfernen + + + &Einstellungen + + + &Sprache + + + &Zeichensatz Alle Zeichensätze... - - Sender aus Referenzliste hinzufügen... - ISO Zeichensätze - - Zuletzt verwendet + + Warnungen beim Laden anzeigen - - Wiki - - - Pr# - - - Transport Stream ID - - - Service Typ - - - Diese vorprogrammierte Liste kann nicht bearbeitet werden. - - - Bei der Einrichtung ihres TVs wurde eine vordefinierte Senderliste gewählt. -Das Ändern dieser Liste würde zu Fehlfunktionen des Geräts führen. -Führen Sie bitte einen Sender-Vollsuchlauf aus und wählen Sie dabei keine -speziellen Anbieter, Satelliten oder Länderlisten aus. + + Eventuelle Warnungen nach dem Laden einer TV-Datei automatisch anzeigen Bearbeiten vordefinierter Listen erlauben (GEFÄHRLICH) @@ -643,4 +432,197 @@ speziellen Anbieter, Satelliten oder Länderlisten aus. Der Fernseher funktioniert dabei unter Umständen nicht mehr korrekt. + + Einga&behilfe + + + Öffnet ein Menü zur Auswahl der Eingangsquelle. Dieses kann auch direkt mit der F1-Taste aufgerufen werden. + + + &Eingangsquelle auswählen + + + Öffnet ein Menü zur Auswahl der Programm- oder Favoritenliste. Dieses Menü kann auch direkt über die Umschalt+F1 Tastenkombination geöffnet werden. + + + &Beenden + + + Zuletzt verwendet + + + &Bearbeiten + + + Sender &übernehmen + + + Sender &entfernen + + + Sender alphabetisch sortieren + + + Sender neu &nummerieren + + + Favoriten nach Pr# nummerieren + + + Verwendet einheitlich die Pr# auch in allen Favoritenlisten + + + &Erneut laden + + + Sicherheitskopie wiederherstellen + + + Datei&information... + + + &Speichern + + + Speichern &unter... + + + Referenzliste öffnen... + + + Sender aus Referenzliste hinzufügen... + + + Referenzliste speichern... + + + Excel liste exportieren... + + + Neuer Programmplatz + + + Sendername + + + Favoriten + + + Ge- sperrt + + + Kindersicherung + + + Ver- steckt + + + F3: Filter | F4: Liste | -: nach oben | +: nach unten | Entf: entfernen + + + &Datei + + + Über- springen + + + Sender umbenennen + + + Nach unten + + + davor + + + Lücken beim Verschieben/Entfernen von Sendern schließen + + + Wenn aktiv, werden folgende Programmnummer automatisch vorgerückt + + + Einfügemodus: + + + Keine Senderlisten vorhanden + + + Setze Pr#: + + + Programplatz für Einfügen und Festlegen + + + + 333, 17 + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxNS4yLCBWZXJzaW9uPTE1 + LjIuNS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA + ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li + bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEZpbGUE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC + X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICKaPJ5gsBeU2NTSFe + Xxl+0wEL + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxNS4yLCBWZXJzaW9uPTE1 + LjIuNS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA + ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li + bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEhlbHAE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC + X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICdEVVDegwMU2acNpw + KphCYAEL + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxNS4yLCBWZXJzaW9uPTE1 + LjIuNS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA + ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li + bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEVkaXQE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC + X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICZMTu18lZRU+IqmAu + ZMgcwAEL + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxNS4yLCBWZXJzaW9uPTE1 + LjIuNS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA + ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li + bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAAB09wdGlvbnME/P///wtTeXN0ZW0uR3VpZAsAAAACX2EC + X2ICX2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICXJMOh9nzAkKc + WIeWYGkVXQEL + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxNS4yLCBWZXJzaW9uPTE1 + LjIuNS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA + ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li + bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAADUFjY2Vzc2liaWxpdHkE/P///wtTeXN0ZW0uR3VpZAsA + AAACX2ECX2ICX2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICeIvz + nH8WlU24SIo8kTIJxAEL + + + + 66, 19 + + + 62, 19 + + + 50, 19 + + + 71, 13 + + + 213, 17 + + + 495, 19 + \ No newline at end of file diff --git a/source/ChanSort/MainForm.pt.resx b/source/ChanSort/MainForm.pt.resx index 237c0b1..16af7da 100644 --- a/source/ChanSort/MainForm.pt.resx +++ b/source/ChanSort/MainForm.pt.resx @@ -65,184 +65,20 @@ - - Tipo serviço - Novo Pr# - - Posição de canal novo - - - Nome do canal - - - Favoritos - - - Blo- queado - - - F3: Filtro | F4: Lista | -: para cima | +: para baixo | DEL: remover - - - Modo acrescentar: - - - Antes - - - Depois - - - Comutar - - - &Ficheiro - Abrir &lista de canais... - - &Recarregar - - - Repor cópia de segurança - - - Informações& do ficheiro... - - - &Gravar - - - Gravar &como... - - - Abrir lista de referência... - - - Gravar lista de referência... - - - Exportar lista de Excel... - - - &Terminar - - - &Editar - - - Aceitar &canal - - - Remover &canal - - - Rebatizar canal - - - Ordenar canais alfabeticamente - - - Renumerar &canais de novo - &Acrescentar favoritos - - Remover favoritos + + Todos os canais - - Bloquear &canais: SIM - - - Bloquear canais: NÃO - - - Saltar &canais: SIM - - - Saltar canais: NÃO - - - Esconder &canais: SIM - - - Esconder canais: NÃO - - - Televisor - - - Configurações TV... - - - &Configurações - - - &Idioma - - - &Tabela de caracteres - - - &Ajuda - - - &Sobre ChanSort... - - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy - LjIuNi4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA - ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li - bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEZpbGUE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC - X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICKaPJ5gsBeU2NTSFe - Xxl+0wEL - - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy - LjIuNi4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA - ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li - bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEhlbHAE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC - X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICdEVVDegwMU2acNpw - KphCYAEL - - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy - LjIuNi4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA - ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li - bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEVkaXQE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC - X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICZMTu18lZRU+IqmAu - ZMgcwAEL - - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy - LjIuNi4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA - ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li - bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAAB09wdGlvbnME/P///wtTeXN0ZW0uR3VpZAsAAAACX2EC - X2ICX2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICXJMOh9nzAkKc - WIeWYGkVXQEL - - - - ChanSort {0} - Editor de listas de canais para televisores Samsung, LG, Panasonic e Toshiba - - - Para cima - - - Para baixo + + Comutar Repor filtro @@ -259,15 +95,6 @@ Remover canais seleccionados - - Remover canais seleccionados - - - Aplicar Pr#: - - - Acrescentar e definar posição de canal - Canais ordenados @@ -316,6 +143,15 @@ Frequência (MHz) + + Sserviço ID + + + Tipo serviço ID + + + Tipo serviço + Sátelite @@ -328,18 +164,15 @@ Nome da rede - - Tipo serviço ID - - - Sserviço ID - Operador F5: Filtro | F6: Lista | Entrada: aceitar + + Remover canais seleccionados + << Acrescentar todos @@ -349,25 +182,192 @@ Aceitar canais assinalados - - Todos os canais + + &Ajuda - - No lista de canais + + &Sobre ChanSort... - - Parental lock + + Para cima + + + Depois + + + ChanSort {0} - Editor de listas de canais para televisores Samsung, LG, Panasonic e Toshiba Parental lock - - Sal- tar + + Remover favoritos + + + Bloquear &canais: SIM + + + Bloquear canais: NÃO + + + Saltar &canais: SIM + + + Saltar canais: NÃO + + + Esconder &canais: SIM + + + Esconder canais: NÃO + + + Televisor + + + Configurações TV... + + + &Configurações + + + &Idioma + + + &Tabela de caracteres + + + &Terminar + + + &Editar + + + Aceitar &canal + + + Remover &canal + + + Ordenar canais alfabeticamente + + + Renumerar &canais de novo + + + &Recarregar + + + Repor cópia de segurança + + + Informações& do ficheiro... + + + &Gravar + + + Gravar &como... + + + Abrir lista de referência... + + + Gravar lista de referência... + + + Exportar lista de Excel... + + + Posição de canal novo + + + Nome do canal + + + Favoritos + + + Blo- queado + + + Parental lock Esc- onder - + + F3: Filtro | F4: Lista | -: para cima | +: para baixo | DEL: remover + + + &Ficheiro + + + Sal- tar + + + Rebatizar canal + + + Para baixo + + + Antes + + + Modo acrescentar: + + + No lista de canais + + + Aplicar Pr#: + + + Acrescentar e definar posição de canal + + Tipo serviço + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy + LjIuNi4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA + ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li + bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEZpbGUE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC + X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICKaPJ5gsBeU2NTSFe + Xxl+0wEL + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy + LjIuNi4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA + ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li + bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEhlbHAE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC + X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICdEVVDegwMU2acNpw + KphCYAEL + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy + LjIuNi4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA + ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li + bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEVkaXQE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC + X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICZMTu18lZRU+IqmAu + ZMgcwAEL + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy + LjIuNi4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA + ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li + bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAAB09wdGlvbnME/P///wtTeXN0ZW0uR3VpZAsAAAACX2EC + X2ICX2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICXJMOh9nzAkKc + WIeWYGkVXQEL + + \ No newline at end of file diff --git a/source/ChanSort/MainForm.resx b/source/ChanSort/MainForm.resx index 386ef03..8aeec23 100644 --- a/source/ChanSort/MainForm.resx +++ b/source/ChanSort/MainForm.resx @@ -143,9 +143,6 @@ Pr. index - - Service Type - True @@ -156,12 +153,6 @@ 45 - - New Pr# - - - New program number - True @@ -171,9 +162,6 @@ 50 - - Channel name - True @@ -183,9 +171,6 @@ 158 - - Favorites - False @@ -209,15 +194,6 @@ 55 - - UID - - - Lock - - - Parental lock - True @@ -227,9 +203,6 @@ 35 - - Skip - True @@ -239,9 +212,6 @@ 35 - - Hide - True @@ -258,7 +228,7 @@ Numeric - 449, 404 + 449, 398 1 @@ -279,7 +249,7 @@ Bottom - 2, 458 + 2, 452 2, 2, 2, 2 @@ -290,9 +260,6 @@ 2 - - F3: Filter | F4: List | -: move up | +: move down | Del: remove - lblHotkeyLeft @@ -315,7 +282,7 @@ 6, 13 - 1462, 587 + 1456, 581 Bottom, Left, Right @@ -324,10 +291,7 @@ 0, 5 - 1451, 0 - - - Pr# + 1445, 0 pageProgNr @@ -342,7 +306,7 @@ 0 - 1457, 22 + 1451, 22 6 @@ -366,14 +330,11 @@ 0, 83 - 1462, 27 + 1456, 27 10 - - Sub List - False @@ -395,242 +356,8 @@ 475, 17 - - &File - - - &Open TV data file... - - - &Reload - - - Restore backup - - - File &information... - - - &Save - - - Save &as... - - - Load reference list... - - - Add channels from reference list... - - - Save reference list... - - - Export Excel list... - - - &Print... - - - &Quit - - - Recent files - - - &Edit - - - &Add channels - - - &Remove channels - - - Rename channel - - - Sor&t channels alphabetically - - - Re&number channels - - - Renumber favorites by Pr# - - - Uses the same Pr# in all channel and favorites lists - - - Add to &Favorites - - - &A - - - &B - - - &C - - - &D - - - &E - - - Remove from Favorites - - - &A - - - &B - - - &C - - - &D - - - &E - - - &Lock channel: on - - - Lock channel: off - - - &Skip channel: on - - - Skip channel: off - - - &Hide channel: on - - - Hide channel: off - - - TV-Set - - - Device setting... - - - Cleanup channel data - - - Reorganize channel records and remove duplicates - - - &Settings - - - &Language - - - &English - - - &Deutsch - - - Português - - - ру́сский - - - &Character set - - - All &character sets... - - - ISO character sets - - - Show warnings after loading file - - - Automatically show any warnings after opening a file - - - Allow editing predefined lists (DANGEROUS) - - - Your TV may malfunction when you edit a list with predefined channel numbers - - - &Accessibility - - - Opens a submenu for the input source selection. This menu can be directly activated with the F1 key - - - Select &input source - - - mnuInputSource - - - Opens a submenu for the program of favorite list selection. This menu can be directly activated with the Shift+F1 key - - - Select program/&favorite list - - - mnuFavList - - - Program list - - - Favorites A - - - Favorites B - - - Favorites C - - - Favorites D - - - Favorites E - - - &Left list filter - - - Left list - - - &Right list filter - - - Right list - - - &Help - - - Wiki - - - ChanSort website... - - - &About ChanSort... - - - Tools + + Service Type @@ -690,7 +417,7 @@ 0, 0 - 1462, 26 + 1456, 26 barDockControlTop @@ -708,10 +435,10 @@ Bottom - 0, 587 + 0, 581 - 1462, 0 + 1456, 0 barDockControlBottom @@ -732,7 +459,7 @@ 0, 26 - 0, 561 + 0, 555 barDockControlLeft @@ -750,10 +477,10 @@ Right - 1462, 26 + 1456, 26 - 0, 561 + 0, 555 barDockControlRight @@ -767,15 +494,6 @@ 4 - - Move up - - - Move down - - - swap - Default @@ -804,9 +522,6 @@ 185, 6 - - after - 46, 19 @@ -828,9 +543,6 @@ 107, 6 - - before - 54, 19 @@ -855,18 +567,12 @@ 543, 6 - - Close gap when moving/deleting a channel - 322, 19 7 - - When active, all channels after the current one will be automatically renumbered - cbCloseGap @@ -888,9 +594,6 @@ 2 - - Insert mode: - lblInsertMode @@ -907,7 +610,7 @@ Top, Right - 1284, 4 + 1278, 4 Transparent @@ -937,10 +640,7 @@ 0, 33 - 1272, 0 - - - No channel lists + 1266, 0 pageEmpty @@ -955,7 +655,7 @@ 0 - 1278, 22 + 1272, 22 5 @@ -984,12 +684,6 @@ 0 - - Set Pr#: - - - Program number for insert and set operations - lblSetProgramNr @@ -1008,9 +702,6 @@ OK - - \d{1,4} - RegEx @@ -1039,7 +730,7 @@ 0, 26 - 1462, 57 + 1456, 57 0 @@ -1059,9 +750,6 @@ CenterScreen - - ChanSort {0} - Channel List Editor for Samsung, LG, Pansonic and Toshiba TVs - dsChannels @@ -1831,7 +1519,7 @@ DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v15.2, Version=15.2.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - 03/01/2016 12:33:44 + 04/19/2016 13:27:29 16, 16 @@ -1845,12 +1533,6 @@ 15 - - Toggle parental lock - - - Parental lock - btnToggleLock @@ -1863,9 +1545,6 @@ 0 - - Toggle Favorite E - 232, 5 @@ -1875,9 +1554,6 @@ 14 - - ±E - btnToggleFavE @@ -1890,9 +1566,6 @@ 1 - - Toggle Favorite D - 207, 5 @@ -1902,9 +1575,6 @@ 13 - - ±D - btnToggleFavD @@ -1917,9 +1587,6 @@ 2 - - Toggle Favorite C - 182, 5 @@ -1929,9 +1596,6 @@ 12 - - ±C - btnToggleFavC @@ -1944,9 +1608,543 @@ 3 + + New Pr# + + + &Open TV data file... + + + &Print... + + + Add to &Favorites + + + Select program/&favorite list + + + ±D + + + Original channels + + + Panel2 + + + splitContainerControl1 + + + swap + + + Toggle Favorite C + + + ±C + Toggle Favorite B + + ±B + + + Toggle Favorite A + + + ±A + + + Remove channel filter criteria from sorted channel list + + + Filter + + + Reset filter + + + Renumber selected channels sequentially + + + Renumber selected channels + + + Move selected channel down + + + Move selected channels down + + + Move selected channel up + + + Move selected channels up + + + Remove selected channels from sorted list + + + Remove selected channels + + + Sorted channels + + + Panel1 + + + Pr. index + + + Old Pr# + + + Old program number + + + New Pr# + + + New program number + + + Channel name + + + Short name + + + Favorites + + + Locked + + + Skip + + + Hide + + + Crypt + + + Encrypted + + + Chan/ Transp + + + Channel or transponder number + + + Freqency (MHz) + + + Service ID + + + Video PID + + + Audio PID + + + Service Type ID + + + Service Type + + + Satellite + + + Network (ONID) + + + TS ID + + + Transport Stream ID + + + Symbol rate + + + Polarity + + + Uid + + + Network Name + + + Network Operator + + + Provider + + + Order + + + Signal source + + + F5: Filter | F6: List | Enter: add + + + This is a predefined list and cannot be edited. + + + During the setup of your TV you selected a predefined channel list. +Modifying such a list would cause your TV to malfunction. +Please run a full channel scan on your TV and do not select any +specific provider, satellite or country lists. + + + Remove selected channels from sorted list + + + Remove selected channels from sorted list + + + Append all currently unsorted channels at the end of the list + + + << Add all + + + Append all currently unsorted channels at the end of the list + + + Remove channel filter criteria from complete channel list + + + Filter + + + Reset filter + + + Add selected channels to sorted list + + + Add selected channels to sorted list + + + mnuFavList + + + Program list + + + Favorites A + + + Favorites B + + + Favorites C + + + Favorites D + + + Favorites E + + + &Left list filter + + + Left list + + + &Right list filter + + + Right list + + + &Help + + + Wiki + + + ChanSort website... + + + &About ChanSort... + + + Tools + + + Move up + + + after + + + ChanSort {0} - TV Channel List Editor + + + Toggle parental lock + + + Parental lock + + + Toggle Favorite E + + + ±E + + + Toggle Favorite D + + + &A + + + &B + + + &C + + + &D + + + &E + + + Remove from Favorites + + + &A + + + &B + + + &C + + + &D + + + &E + + + &Lock channel: on + + + Lock channel: off + + + &Skip channel: on + + + Skip channel: off + + + &Hide channel: on + + + Hide channel: off + + + TV-Set + + + Device setting... + + + Cleanup channel data + + + Reorganize channel records and remove duplicates + + + &Settings + + + &Language + + + &English + + + &Deutsch + + + Português + + + ру́сский + + + &Character set + + + All &character sets... + + + ISO character sets + + + Show warnings after loading file + + + Automatically show any warnings after opening a file + + + Allow editing predefined lists (DANGEROUS) + + + Your TV may malfunction when you edit a list with predefined channel numbers + + + &Accessibility + + + Opens a submenu for the input source selection. This menu can be directly activated with the F1 key + + + Select &input source + + + mnuInputSource + + + Opens a submenu for the program of favorite list selection. This menu can be directly activated with the Shift+F1 key + + + &Quit + + + Recent files + + + &Edit + + + &Add channels + + + &Remove channels + + + Sor&t channels alphabetically + + + Re&number channels + + + Renumber favorites by Pr# + + + Uses the same Pr# in all channel and favorites lists + + + &Reload + + + Restore backup + + + File &information... + + + &Save + + + Save &as... + + + Load reference list... + + + Add channels from reference list... + + + Save reference list... + + + Export Excel list... + + + New program number + + + Channel name + + + Favorites + + + UID + + + Lock + + + Parental lock + + + Hide + + + F3: Filter | F4: List | -: move up | +: move down | Del: remove + + + Pr# + + + Sub List + + + &File + + + Skip + + + Rename channel + + + Move down + + + before + + + Close gap when moving/deleting a channel + + + When active, all channels after the current one will be automatically renumbered + + + Insert mode: + + + No channel lists + + + Set Pr#: + + + Program number for insert and set operations + + + \d{1,4} + 157, 5 @@ -1956,9 +2154,6 @@ 11 - - ±B - btnToggleFavB @@ -1971,9 +2166,6 @@ 4 - - Toggle Favorite A - 132, 5 @@ -1983,9 +2175,6 @@ 10 - - ±A - btnToggleFavA @@ -1998,9 +2187,6 @@ 5 - - Remove channel filter criteria from sorted channel list - Tahoma, 8.25pt, style=Strikeout @@ -2013,12 +2199,6 @@ 9 - - Filter - - - Reset filter - btnClearLeftFilter @@ -2040,12 +2220,6 @@ 8 - - Renumber selected channels sequentially - - - Renumber selected channels - btnRenum @@ -2067,12 +2241,6 @@ 6 - - Move selected channel down - - - Move selected channels down - btnDown @@ -2094,12 +2262,6 @@ 5 - - Move selected channel up - - - Move selected channels up - btnUp @@ -2121,12 +2283,6 @@ 2 - - Remove selected channels from sorted list - - - Remove selected channels - btnRemoveLeft @@ -2170,14 +2326,11 @@ 0, 0 - 453, 477 + 453, 471 0 - - Sorted channels - grpOutputList @@ -2190,9 +2343,6 @@ 0 - - Panel1 - Fill @@ -2205,15 +2355,6 @@ Tahoma, 8.25pt, style=Bold - - Pr. index - - - Old Pr# - - - Old program number - True @@ -2223,12 +2364,6 @@ 50 - - New Pr# - - - New program number - True @@ -2238,9 +2373,6 @@ 45 - - Channel name - True @@ -2250,18 +2382,12 @@ 180 - - Short name - True 3 - - Favorites - False @@ -2283,9 +2409,6 @@ 55 - - Locked - True @@ -2295,9 +2418,6 @@ 40 - - Skip - True @@ -2307,9 +2427,6 @@ 40 - - Hide - True @@ -2319,12 +2436,6 @@ 40 - - Crypt - - - Encrypted - True @@ -2334,12 +2445,6 @@ 40 - - Chan/ Transp - - - Channel or transponder number - True @@ -2349,9 +2454,6 @@ 45 - - Freqency (MHz) - True @@ -2361,9 +2463,6 @@ 57 - - Service ID - True @@ -2373,9 +2472,6 @@ 45 - - Video PID - True @@ -2385,9 +2481,6 @@ 40 - - Audio PID - True @@ -2397,9 +2490,6 @@ 40 - - Service Type ID - True @@ -2409,9 +2499,6 @@ 45 - - Service Type - True @@ -2421,9 +2508,6 @@ 45 - - Satellite - True @@ -2433,9 +2517,6 @@ 100 - - Network (ONID) - True @@ -2445,12 +2526,6 @@ 45 - - TS ID - - - Transport Stream ID - True @@ -2460,9 +2535,6 @@ 40 - - Symbol rate - True @@ -2472,53 +2544,32 @@ 40 - - Polarity - 40 - - Uid - 120 - - Network Name - True 20 - - Network Operator - True 21 - - Provider - True 22 - - Order - - - Signal source - - 999, 404 + 993, 398 1 @@ -2539,7 +2590,7 @@ Bottom - 2, 458 + 2, 452 2, 2, 2, 2 @@ -2550,9 +2601,6 @@ 2 - - F5: Filter | F6: List | Enter: add - lblHotkeyRight @@ -2580,15 +2628,6 @@ 8 - - This is a predefined list and cannot be edited. - - - During the setup of your TV you selected a predefined channel list. -Modifying such a list would cause your TV to malfunction. -Please run a full channel scan on your TV and do not select any -specific provider, satellite or country lists. - False @@ -2613,12 +2652,6 @@ specific provider, satellite or country lists. 6 - - Remove selected channels from sorted list - - - Remove selected channels from sorted list - btnRemoveRight @@ -2631,9 +2664,6 @@ specific provider, satellite or country lists. 1 - - Append all currently unsorted channels at the end of the list - 71, 5 @@ -2643,12 +2673,6 @@ specific provider, satellite or country lists. 5 - - << Add all - - - Append all currently unsorted channels at the end of the list - btnAddAll @@ -2661,9 +2685,6 @@ specific provider, satellite or country lists. 2 - - Remove channel filter criteria from complete channel list - Tahoma, 8.25pt, style=Strikeout @@ -2676,12 +2697,6 @@ specific provider, satellite or country lists. 2 - - Filter - - - Reset filter - btnClearRightFilter @@ -2703,12 +2718,6 @@ specific provider, satellite or country lists. 4 - - Add selected channels to sorted list - - - Add selected channels to sorted list - btnAdd @@ -2728,7 +2737,7 @@ specific provider, satellite or country lists. 2, 21 - 999, 33 + 993, 33 0 @@ -2752,14 +2761,11 @@ specific provider, satellite or country lists. 0, 0 - 1003, 477 + 997, 471 0 - - Original channels - grpInputList @@ -2772,18 +2778,12 @@ specific provider, satellite or country lists. 0 - - Panel2 - - 1462, 477 + 1456, 471 5 - - splitContainerControl1 - splitContainerControl1 diff --git a/source/ChanSort/MainForm.ru.resx b/source/ChanSort/MainForm.ru.resx index bd7b796..3a34c63 100644 --- a/source/ChanSort/MainForm.ru.resx +++ b/source/ChanSort/MainForm.ru.resx @@ -117,355 +117,355 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Краткое имя - - - 1-999 - - - Удалить из Избранного - - - Добавить выбранные каналы в отсортированный список - - - Сбросить фильтр - - - Заблокировать - - - Изменить нумерацию каналов - - - Установить: - - - Закрыть соединение при перемещении / удалении канала - - - << - - - ChanSort {0} - редактор списка каналов для телевизоров Samsung, LG, Pansonic и Toshiba - - + Новый - - Источник сигнала - - - Настройка устройства... - - - Оператор сети - - - Новый номер программы - - - В активном состоянии все каналы после текущего будут автоматически перенумерованы - - - Заблокировать канал - - - Сетевое имя - - - Переименовать канал - - - << Добавить все - - - Инструменты - - - Добавить каналы - - - Телевизор - - - Добавить все текущие несортированные каналы в конец списка - - - Название канала - - - Последние файлы - - - Название канала - - - Канал/Транспондер - - - Сохранить как... - - - заменить - - - Сохранить список... - - - Скрыть - - - Аудио PID - - - Файл и информация... + + Открыть файл данных TV... Добавить в Избранное - - Не пропускать канал + + Все каналы - - Заблокированный + + заменить + + + Фильтр + + + Сбросить фильтр + + + 1-999 + + + Изменить нумерацию выбранных каналов + + + v + + + Переместить выбранные каналы вниз + + + ^ + + + Переместить выбранные каналы вверх X - - Пропускать + + Удалить выбранные каналы - - Язык + + Отсортированные каналы - - Настройки - - - ID транспортного потока - - - Order - - - Режим вставки: - - - Спутник + + Индекс пр. Старый + + Старый номер программы + + + Новый + + + Новый номер программы + + + Название канала + + + Краткое имя + + + Избранное + + + Заблокированный + + + Пропускать + + + Скрыть + + + Зашифрованный + + + Зашифрованный + + + Канал/Транспондер + + + Номер канала или транспондер + + + Частота (MHz) + + + ID сервиса + Видео PID + + Аудио PID + + + ID Тип сервиса + + + Тип сервиса + + + Спутник + + + Сеть (ONID) + + + ID транспортного потока + + + Скорость передачи + + + Полярность + + + Сетевое имя + + + Оператор сети + + + Order + + + Источник сигнала + F5: Фильтр | F6: Список | Enter: Добавить X - - Тип сервиса + + Удалить выбранные каналы из отсортированного списка - - Сортировать каналы по алфавиту + + << Добавить все - - Добавить каналы из списка... - - - Вики ChanSort - - - Переместить вниз - - - Файл - - - Родительский контроль - - - после - - - Удалить выбранные каналы - - - Фильтр - - - Полярность - - - ID сервиса - - - Переместить выбранные каналы вверх - - - Отсортированные каналы - - - Помощь + + Добавить все текущие несортированные каналы в конец списка Фильтр - - Переместить выбранные каналы вниз - - - Зашифрованный - - - Нет списков каналов - - - О ChanSort ... - - - Пропустить канал - - - Все каналы - - - Сохранить - - - Избранное - - - Открыть файл данных TV... - - - Скрыть - - - ID Тип сервиса - - - Перенастроить канал и удалить дубликаты - - - Изменить нумерацию выбранных каналов - - - Восстановить из резервной копии - - - Родительский контроль - - - Переместить вверх - - - Выход - - - Скрыть канал - - - Зашифрованный - - - до - - - Сеть (ONID) - - + Сбросить фильтр - - Индекс пр. + + << - - Номер канала или транспондер + + Добавить выбранные каналы в отсортированный список - - F3: Фильтр | F4: Список | -: Вверх | +: Вниз | Del: Удалить + + Помощь - - Скорость передачи - - - Новый - - - Показывать предупреждения после загрузки файла - - - Перезагрузить - - - Разблокировать канал - - - Правка - - - Pr# - - - Удалить каналы - - - Номер программы для добавления и настройки операций - - - Пропускать - - - Избранное + + Вики ChanSort Сайт ChanSort... - - Экспорт в Excel... + + О ChanSort ... - - Старый номер программы + + Инструменты + + + Переместить вверх + + + после + + + ChanSort {0} - редактор списка каналов для телевизоров Samsung, LG, Pansonic и Toshiba + + + Родительский контроль + + + Удалить из Избранного + + + Заблокировать канал + + + Разблокировать канал + + + Пропустить канал + + + Не пропускать канал + + + Скрыть канал Показать канал + + Телевизор + + + Настройка устройства... + Очистка данных канала - - ^ + + Перенастроить канал и удалить дубликаты - - v + + Настройки - - Все наборы символов... - - - Загрузить список... - - - Частота (MHz) - - - Новый номер программы - - - Индекс пр. - - - Удалить выбранные каналы из отсортированного списка + + Язык Набор символов - + + Все наборы символов... + + + Показывать предупреждения после загрузки файла + + + Выход + + + Последние файлы + + + Правка + + + Добавить каналы + + + Удалить каналы + + + Сортировать каналы по алфавиту + + + Изменить нумерацию каналов + + + Перезагрузить + + + Восстановить из резервной копии + + + Файл и информация... + + + Сохранить + + + Сохранить как... + + + Загрузить список... + + + Добавить каналы из списка... + + + Сохранить список... + + + Экспорт в Excel... + + + Новый номер программы + + + Название канала + + + Избранное + + + Заблокировать + + + Родительский контроль + + + Скрыть + + + F3: Фильтр | F4: Список | -: Вверх | +: Вниз | Del: Удалить + + + Pr# + + + Файл + + + Пропускать + + + Переименовать канал + + + Переместить вниз + + + до + + + Закрыть соединение при перемещении / удалении канала + + + В активном состоянии все каналы после текущего будут автоматически перенумерованы + + + Режим вставки: + + + Нет списков каналов + + + Установить: + + + Номер программы для добавления и настройки операций + + Тип сервиса + + Индекс пр. + \ No newline at end of file diff --git a/source/ChanSort/Properties/licenses.licx b/source/ChanSort/Properties/licenses.licx index 594ed97..ae0c9d8 100644 --- a/source/ChanSort/Properties/licenses.licx +++ b/source/ChanSort/Properties/licenses.licx @@ -1,6 +1,8 @@ -DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v15.2, Version=15.2.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v15.2, Version=15.2.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraBars.BarManager, DevExpress.XtraBars.v15.2, Version=15.2.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v15.2, Version=15.2.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraEditors.PictureEdit, DevExpress.XtraEditors.v15.2, Version=15.2.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraEditors.Repository.RepositoryItemTextEdit, DevExpress.XtraEditors.v15.2, Version=15.2.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v15.2, Version=15.2.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v15.2, Version=15.2.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v15.2, Version=15.2.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraBars.BarManager, DevExpress.XtraBars.v15.2, Version=15.2.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v15.2, Version=15.2.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/source/ChanSort/ReferenceListForm.Designer.cs b/source/ChanSort/ReferenceListForm.Designer.cs new file mode 100644 index 0000000..7db36e2 --- /dev/null +++ b/source/ChanSort/ReferenceListForm.Designer.cs @@ -0,0 +1,463 @@ +namespace ChanSort.Ui +{ + partial class ReferenceListForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject1 = new DevExpress.Utils.SerializableAppearanceObject(); + this.labelControl1 = new DevExpress.XtraEditors.LabelControl(); + this.edFile = new DevExpress.XtraEditors.ButtonEdit(); + this.labelControl2 = new DevExpress.XtraEditors.LabelControl(); + this.rbAuto = new DevExpress.XtraEditors.CheckEdit(); + this.rbManual = new DevExpress.XtraEditors.CheckEdit(); + this.labelControl3 = new DevExpress.XtraEditors.LabelControl(); + this.comboSource = new DevExpress.XtraEditors.ComboBoxEdit(); + this.comboTarget = new DevExpress.XtraEditors.ComboBoxEdit(); + this.labelControl4 = new DevExpress.XtraEditors.LabelControl(); + this.cbTv = new DevExpress.XtraEditors.CheckEdit(); + this.cbRadio = new DevExpress.XtraEditors.CheckEdit(); + this.labelControl5 = new DevExpress.XtraEditors.LabelControl(); + this.labelControl6 = new DevExpress.XtraEditors.LabelControl(); + this.comboPrNr = new DevExpress.XtraEditors.ComboBoxEdit(); + this.grpManual = new DevExpress.XtraEditors.GroupControl(); + this.cbIP = new DevExpress.XtraEditors.CheckEdit(); + this.labelControl9 = new DevExpress.XtraEditors.LabelControl(); + this.cbAnalog = new DevExpress.XtraEditors.CheckEdit(); + this.cbDigital = new DevExpress.XtraEditors.CheckEdit(); + this.labelControl8 = new DevExpress.XtraEditors.LabelControl(); + this.cbSatellite = new DevExpress.XtraEditors.CheckEdit(); + this.cbAntenna = new DevExpress.XtraEditors.CheckEdit(); + this.cbCable = new DevExpress.XtraEditors.CheckEdit(); + this.lblTargetInfo = new DevExpress.XtraEditors.LabelControl(); + this.lblSourceInfo = new DevExpress.XtraEditors.LabelControl(); + this.labelControl7 = new DevExpress.XtraEditors.LabelControl(); + this.btnApply = new DevExpress.XtraEditors.SimpleButton(); + this.btnOk = new DevExpress.XtraEditors.SimpleButton(); + this.btnClose = new DevExpress.XtraEditors.SimpleButton(); + ((System.ComponentModel.ISupportInitialize)(this.edFile.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbAuto.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbManual.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.comboSource.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.comboTarget.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.cbTv.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.cbRadio.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.comboPrNr.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.grpManual)).BeginInit(); + this.grpManual.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.cbIP.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.cbAnalog.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.cbDigital.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.cbSatellite.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.cbAntenna.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.cbCable.Properties)).BeginInit(); + this.SuspendLayout(); + // + // labelControl1 + // + this.labelControl1.Location = new System.Drawing.Point(12, 16); + this.labelControl1.Name = "labelControl1"; + this.labelControl1.Size = new System.Drawing.Size(92, 13); + this.labelControl1.TabIndex = 0; + this.labelControl1.Text = "Reference List File:"; + // + // edFile + // + this.edFile.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.edFile.EditValue = "← press button to select a file"; + this.edFile.Location = new System.Drawing.Point(133, 13); + this.edFile.Name = "edFile"; + this.edFile.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { + new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Ellipsis, "", -1, true, true, true, DevExpress.XtraEditors.ImageLocation.MiddleCenter, null, new DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), serializableAppearanceObject1, "", null, null, true)}); + this.edFile.Properties.ReadOnly = true; + this.edFile.Size = new System.Drawing.Size(547, 20); + this.edFile.TabIndex = 1; + this.edFile.ButtonClick += new DevExpress.XtraEditors.Controls.ButtonPressedEventHandler(this.edFile_ButtonClick); + // + // labelControl2 + // + this.labelControl2.Location = new System.Drawing.Point(133, 39); + this.labelControl2.Name = "labelControl2"; + this.labelControl2.Size = new System.Drawing.Size(318, 13); + this.labelControl2.TabIndex = 2; + this.labelControl2.Text = "(You can choose any supported channel list file as a reference list)"; + // + // rbAuto + // + this.rbAuto.Enabled = false; + this.rbAuto.Location = new System.Drawing.Point(13, 79); + this.rbAuto.Name = "rbAuto"; + this.rbAuto.Properties.AutoWidth = true; + this.rbAuto.Properties.Caption = "Automatically reorder all lists in the current file to match the reference file"; + this.rbAuto.Properties.CheckStyle = DevExpress.XtraEditors.Controls.CheckStyles.Radio; + this.rbAuto.Properties.RadioGroupIndex = 1; + this.rbAuto.Size = new System.Drawing.Size(375, 19); + this.rbAuto.TabIndex = 3; + this.rbAuto.TabStop = false; + this.rbAuto.CheckedChanged += new System.EventHandler(this.rbAuto_CheckedChanged); + // + // rbManual + // + this.rbManual.Enabled = false; + this.rbManual.Location = new System.Drawing.Point(13, 104); + this.rbManual.Name = "rbManual"; + this.rbManual.Properties.AutoWidth = true; + this.rbManual.Properties.Caption = "Reorder only a particular list to match a selected reference list"; + this.rbManual.Properties.CheckStyle = DevExpress.XtraEditors.Controls.CheckStyles.Radio; + this.rbManual.Properties.RadioGroupIndex = 1; + this.rbManual.Size = new System.Drawing.Size(320, 19); + this.rbManual.TabIndex = 4; + this.rbManual.TabStop = false; + this.rbManual.CheckedChanged += new System.EventHandler(this.rbAuto_CheckedChanged); + // + // labelControl3 + // + this.labelControl3.Location = new System.Drawing.Point(5, 10); + this.labelControl3.Name = "labelControl3"; + this.labelControl3.Size = new System.Drawing.Size(73, 13); + this.labelControl3.TabIndex = 0; + this.labelControl3.Text = "Reference List:"; + // + // comboSource + // + this.comboSource.Location = new System.Drawing.Point(123, 7); + this.comboSource.Name = "comboSource"; + this.comboSource.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { + new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}); + this.comboSource.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor; + this.comboSource.Size = new System.Drawing.Size(178, 20); + this.comboSource.TabIndex = 1; + this.comboSource.EditValueChanged += new System.EventHandler(this.comboSource_EditValueChanged); + // + // comboTarget + // + this.comboTarget.Location = new System.Drawing.Point(123, 33); + this.comboTarget.Name = "comboTarget"; + this.comboTarget.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { + new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}); + this.comboTarget.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor; + this.comboTarget.Size = new System.Drawing.Size(178, 20); + this.comboTarget.TabIndex = 4; + this.comboTarget.EditValueChanged += new System.EventHandler(this.comboTarget_EditValueChanged); + // + // labelControl4 + // + this.labelControl4.Location = new System.Drawing.Point(5, 36); + this.labelControl4.Name = "labelControl4"; + this.labelControl4.Size = new System.Drawing.Size(55, 13); + this.labelControl4.TabIndex = 3; + this.labelControl4.Text = "Target List:"; + // + // cbTv + // + this.cbTv.Location = new System.Drawing.Point(123, 109); + this.cbTv.Name = "cbTv"; + this.cbTv.Properties.AutoWidth = true; + this.cbTv.Properties.Caption = "TV"; + this.cbTv.Size = new System.Drawing.Size(34, 19); + this.cbTv.TabIndex = 15; + this.cbTv.TabStop = false; + // + // cbRadio + // + this.cbRadio.Location = new System.Drawing.Point(204, 109); + this.cbRadio.Name = "cbRadio"; + this.cbRadio.Properties.AutoWidth = true; + this.cbRadio.Properties.Caption = "Radio"; + this.cbRadio.Size = new System.Drawing.Size(49, 19); + this.cbRadio.TabIndex = 16; + this.cbRadio.TabStop = false; + // + // labelControl5 + // + this.labelControl5.Location = new System.Drawing.Point(5, 137); + this.labelControl5.Name = "labelControl5"; + this.labelControl5.Size = new System.Drawing.Size(62, 13); + this.labelControl5.TabIndex = 17; + this.labelControl5.Text = "Start at Pr#:"; + // + // labelControl6 + // + this.labelControl6.Location = new System.Drawing.Point(204, 137); + this.labelControl6.Name = "labelControl6"; + this.labelControl6.Size = new System.Drawing.Size(177, 13); + this.labelControl6.TabIndex = 19; + this.labelControl6.Text = "(i.e. let radio channels start at 5000)"; + // + // comboPrNr + // + this.comboPrNr.EditValue = "1"; + this.comboPrNr.Location = new System.Drawing.Point(123, 134); + this.comboPrNr.Name = "comboPrNr"; + this.comboPrNr.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { + new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}); + this.comboPrNr.Properties.EditFormat.FormatString = "d"; + this.comboPrNr.Properties.EditFormat.FormatType = DevExpress.Utils.FormatType.Numeric; + this.comboPrNr.Properties.Items.AddRange(new object[] { + "1", + "100", + "500", + "1000", + "5000", + "9000"}); + this.comboPrNr.Size = new System.Drawing.Size(75, 20); + this.comboPrNr.TabIndex = 18; + // + // grpManual + // + this.grpManual.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.grpManual.Controls.Add(this.cbIP); + this.grpManual.Controls.Add(this.labelControl9); + this.grpManual.Controls.Add(this.cbAnalog); + this.grpManual.Controls.Add(this.cbDigital); + this.grpManual.Controls.Add(this.labelControl8); + this.grpManual.Controls.Add(this.cbSatellite); + this.grpManual.Controls.Add(this.cbAntenna); + this.grpManual.Controls.Add(this.cbCable); + this.grpManual.Controls.Add(this.lblTargetInfo); + this.grpManual.Controls.Add(this.lblSourceInfo); + this.grpManual.Controls.Add(this.labelControl7); + this.grpManual.Controls.Add(this.btnApply); + this.grpManual.Controls.Add(this.comboSource); + this.grpManual.Controls.Add(this.comboPrNr); + this.grpManual.Controls.Add(this.labelControl3); + this.grpManual.Controls.Add(this.labelControl6); + this.grpManual.Controls.Add(this.labelControl4); + this.grpManual.Controls.Add(this.labelControl5); + this.grpManual.Controls.Add(this.comboTarget); + this.grpManual.Controls.Add(this.cbTv); + this.grpManual.Controls.Add(this.cbRadio); + this.grpManual.Enabled = false; + this.grpManual.Location = new System.Drawing.Point(71, 129); + this.grpManual.Name = "grpManual"; + this.grpManual.ShowCaption = false; + this.grpManual.Size = new System.Drawing.Size(609, 201); + this.grpManual.TabIndex = 5; + this.grpManual.Text = "grpManual"; + // + // cbIP + // + this.cbIP.Location = new System.Drawing.Point(369, 59); + this.cbIP.Name = "cbIP"; + this.cbIP.Properties.AutoWidth = true; + this.cbIP.Properties.Caption = "IP"; + this.cbIP.Size = new System.Drawing.Size(32, 19); + this.cbIP.TabIndex = 10; + this.cbIP.TabStop = false; + // + // labelControl9 + // + this.labelControl9.Location = new System.Drawing.Point(5, 87); + this.labelControl9.Name = "labelControl9"; + this.labelControl9.Size = new System.Drawing.Size(59, 13); + this.labelControl9.TabIndex = 11; + this.labelControl9.Text = "Signal Type:"; + // + // cbAnalog + // + this.cbAnalog.Location = new System.Drawing.Point(123, 84); + this.cbAnalog.Name = "cbAnalog"; + this.cbAnalog.Properties.AutoWidth = true; + this.cbAnalog.Properties.Caption = "Analog"; + this.cbAnalog.Size = new System.Drawing.Size(55, 19); + this.cbAnalog.TabIndex = 12; + this.cbAnalog.TabStop = false; + // + // cbDigital + // + this.cbDigital.Location = new System.Drawing.Point(204, 84); + this.cbDigital.Name = "cbDigital"; + this.cbDigital.Properties.AutoWidth = true; + this.cbDigital.Properties.Caption = "Digital"; + this.cbDigital.Size = new System.Drawing.Size(51, 19); + this.cbDigital.TabIndex = 13; + this.cbDigital.TabStop = false; + // + // labelControl8 + // + this.labelControl8.Location = new System.Drawing.Point(5, 62); + this.labelControl8.Name = "labelControl8"; + this.labelControl8.Size = new System.Drawing.Size(68, 13); + this.labelControl8.TabIndex = 6; + this.labelControl8.Text = "Signal Source:"; + // + // cbSatellite + // + this.cbSatellite.Location = new System.Drawing.Point(283, 59); + this.cbSatellite.Name = "cbSatellite"; + this.cbSatellite.Properties.AutoWidth = true; + this.cbSatellite.Properties.Caption = "Satellite"; + this.cbSatellite.Size = new System.Drawing.Size(60, 19); + this.cbSatellite.TabIndex = 9; + this.cbSatellite.TabStop = false; + // + // cbAntenna + // + this.cbAntenna.Location = new System.Drawing.Point(123, 59); + this.cbAntenna.Name = "cbAntenna"; + this.cbAntenna.Properties.AutoWidth = true; + this.cbAntenna.Properties.Caption = "Antenna"; + this.cbAntenna.Size = new System.Drawing.Size(63, 19); + this.cbAntenna.TabIndex = 7; + this.cbAntenna.TabStop = false; + // + // cbCable + // + this.cbCable.Location = new System.Drawing.Point(204, 59); + this.cbCable.Name = "cbCable"; + this.cbCable.Properties.AutoWidth = true; + this.cbCable.Properties.Caption = "Cable"; + this.cbCable.Size = new System.Drawing.Size(49, 19); + this.cbCable.TabIndex = 8; + this.cbCable.TabStop = false; + // + // lblTargetInfo + // + this.lblTargetInfo.Location = new System.Drawing.Point(308, 36); + this.lblTargetInfo.Name = "lblTargetInfo"; + this.lblTargetInfo.Size = new System.Drawing.Size(3, 13); + this.lblTargetInfo.TabIndex = 5; + this.lblTargetInfo.Text = " "; + // + // lblSourceInfo + // + this.lblSourceInfo.Location = new System.Drawing.Point(308, 10); + this.lblSourceInfo.Name = "lblSourceInfo"; + this.lblSourceInfo.Size = new System.Drawing.Size(3, 13); + this.lblSourceInfo.TabIndex = 2; + this.lblSourceInfo.Text = " "; + // + // labelControl7 + // + this.labelControl7.Location = new System.Drawing.Point(5, 112); + this.labelControl7.Name = "labelControl7"; + this.labelControl7.Size = new System.Drawing.Size(70, 13); + this.labelControl7.TabIndex = 14; + this.labelControl7.Text = "Channel Type:"; + // + // btnApply + // + this.btnApply.Enabled = false; + this.btnApply.Location = new System.Drawing.Point(123, 169); + this.btnApply.Name = "btnApply"; + this.btnApply.Size = new System.Drawing.Size(103, 23); + this.btnApply.TabIndex = 20; + this.btnApply.Text = "Apply"; + this.btnApply.Click += new System.EventHandler(this.btnApply_Click); + // + // btnOk + // + this.btnOk.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnOk.Location = new System.Drawing.Point(497, 346); + this.btnOk.Name = "btnOk"; + this.btnOk.Size = new System.Drawing.Size(88, 23); + this.btnOk.TabIndex = 6; + this.btnOk.Text = "Ok"; + this.btnOk.Click += new System.EventHandler(this.btnOk_Click); + // + // btnClose + // + this.btnClose.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.btnClose.Location = new System.Drawing.Point(592, 346); + this.btnClose.Name = "btnClose"; + this.btnClose.Size = new System.Drawing.Size(88, 23); + this.btnClose.TabIndex = 7; + this.btnClose.Text = "Close/Cancel"; + // + // ReferenceListForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(692, 381); + this.Controls.Add(this.btnClose); + this.Controls.Add(this.btnOk); + this.Controls.Add(this.grpManual); + this.Controls.Add(this.rbManual); + this.Controls.Add(this.rbAuto); + this.Controls.Add(this.labelControl2); + this.Controls.Add(this.edFile); + this.Controls.Add(this.labelControl1); + this.Name = "ReferenceListForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Apply Reference List"; + ((System.ComponentModel.ISupportInitialize)(this.edFile.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbAuto.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbManual.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.comboSource.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.comboTarget.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.cbTv.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.cbRadio.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.comboPrNr.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.grpManual)).EndInit(); + this.grpManual.ResumeLayout(false); + this.grpManual.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.cbIP.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.cbAnalog.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.cbDigital.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.cbSatellite.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.cbAntenna.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.cbCable.Properties)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private DevExpress.XtraEditors.LabelControl labelControl1; + private DevExpress.XtraEditors.ButtonEdit edFile; + private DevExpress.XtraEditors.LabelControl labelControl2; + private DevExpress.XtraEditors.CheckEdit rbAuto; + private DevExpress.XtraEditors.CheckEdit rbManual; + private DevExpress.XtraEditors.LabelControl labelControl3; + private DevExpress.XtraEditors.ComboBoxEdit comboSource; + private DevExpress.XtraEditors.ComboBoxEdit comboTarget; + private DevExpress.XtraEditors.LabelControl labelControl4; + private DevExpress.XtraEditors.CheckEdit cbTv; + private DevExpress.XtraEditors.CheckEdit cbRadio; + private DevExpress.XtraEditors.LabelControl labelControl5; + private DevExpress.XtraEditors.LabelControl labelControl6; + private DevExpress.XtraEditors.ComboBoxEdit comboPrNr; + private DevExpress.XtraEditors.GroupControl grpManual; + private DevExpress.XtraEditors.SimpleButton btnApply; + private DevExpress.XtraEditors.SimpleButton btnOk; + private DevExpress.XtraEditors.SimpleButton btnClose; + private DevExpress.XtraEditors.LabelControl labelControl7; + private DevExpress.XtraEditors.LabelControl lblTargetInfo; + private DevExpress.XtraEditors.LabelControl lblSourceInfo; + private DevExpress.XtraEditors.LabelControl labelControl8; + private DevExpress.XtraEditors.CheckEdit cbSatellite; + private DevExpress.XtraEditors.CheckEdit cbAntenna; + private DevExpress.XtraEditors.CheckEdit cbCable; + private DevExpress.XtraEditors.LabelControl labelControl9; + private DevExpress.XtraEditors.CheckEdit cbAnalog; + private DevExpress.XtraEditors.CheckEdit cbDigital; + private DevExpress.XtraEditors.CheckEdit cbIP; + } +} \ No newline at end of file diff --git a/source/ChanSort/ReferenceListForm.cs b/source/ChanSort/ReferenceListForm.cs new file mode 100644 index 0000000..3b4ee9e --- /dev/null +++ b/source/ChanSort/ReferenceListForm.cs @@ -0,0 +1,233 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Linq; +using System.Windows.Forms; +using ChanSort.Api; +using ChanSort.Ui.Properties; +using DevExpress.XtraEditors; + +namespace ChanSort.Ui +{ + public partial class ReferenceListForm : DevExpress.XtraEditors.XtraForm + { + private readonly MainForm main; + private SerializerBase ser; + + public ReferenceListForm(MainForm main) + { + this.main = main; + InitializeComponent(); + this.UpdateButtons(); + } + + private void UpdateButtons() + { + this.btnOk.Visible = this.rbAuto.Checked; + this.btnClose.Text = this.rbAuto.Checked ? "Cancel" : "Close"; + } + + #region ShowOpenFileDialog() + private SerializerBase ShowOpenFileDialog() + { + try + { + string supportedExtensions; + int numberOfFilters; + var filter = main.GetTvDataFileFilter(out supportedExtensions, out numberOfFilters); + + using (OpenFileDialog dlg = new OpenFileDialog()) + { + dlg.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer); + dlg.AddExtension = true; + dlg.Filter = filter + string.Format(Resources.MainForm_FileDialog_OpenFileFilter, supportedExtensions); + dlg.FilterIndex = numberOfFilters + 1; + dlg.CheckFileExists = true; + dlg.RestoreDirectory = true; + if (dlg.ShowDialog() != DialogResult.OK) + return null; + + if (main.DetectCommonFileCorruptions(dlg.FileName)) + return null; + + var plugin = dlg.FilterIndex <= main.Plugins.Count ? main.Plugins[dlg.FilterIndex - 1] : main.GetPluginForFile(dlg.FileName); + var ser = plugin.CreateSerializer(dlg.FileName); + ser.Load(); + return ser; + } + } + catch + { + return null; + } + } + #endregion + + #region UpdateInfoTextAndOptions() + private void UpdateInfoTextAndOptions() + { + foreach (var ctl in this.grpManual.Controls) + { + var checkEdit = ctl as CheckEdit; + if (checkEdit != null) + checkEdit.Checked = checkEdit.Enabled = true; + } + + var list = (ChannelList)this.comboSource.EditValue; + this.lblSourceInfo.Text = GetInfoText(list); + list = (ChannelList)this.comboTarget.EditValue; + this.lblTargetInfo.Text = GetInfoText(list); + + bool canApply = + (cbAntenna.Checked || cbCable.Checked || cbSatellite.Checked) + && (cbAnalog.Checked || cbDigital.Checked) + && (cbTv.Checked || cbRadio.Checked); + this.btnApply.Enabled = canApply; + } + #endregion + + #region GetInfoText() + private string GetInfoText(ChannelList list) + { + var src = list?.SignalSource ?? 0; + var sb = new StringBuilder(); + + if ((src & SignalSource.Antenna) != 0) + sb.Append(", Antenna"); + else + this.cbAntenna.Enabled = this.cbAntenna.Checked = false; + + if ((src & SignalSource.Cable) != 0) + sb.Append(", Cable"); + else + this.cbCable.Enabled = this.cbCable.Checked = false; + + if ((src & SignalSource.Sat) != 0) + sb.Append(", Satellite"); + else + this.cbSatellite.Enabled = this.cbSatellite.Checked = false; + + if ((src & SignalSource.IP) != 0) + sb.Append(", IP"); + else + this.cbIP.Enabled = this.cbIP.Checked = false; + + if ((src & SignalSource.Analog) != 0) + sb.Append(", Analog"); + else + this.cbAnalog.Enabled = this.cbAnalog.Checked = false; + + if ((src & SignalSource.Digital) != 0) + sb.Append(", Digital"); + else + this.cbDigital.Enabled = this.cbDigital.Checked = false; + + if ((src & SignalSource.Tv) != 0) + sb.Append(", TV"); + else + this.cbTv.Enabled = this.cbTv.Checked = false; + + if ((src & SignalSource.Radio) != 0) + sb.Append(", Radio"); + else + this.cbRadio.Enabled = this.cbRadio.Checked = false; + + if (sb.Length >= 2) + sb.Remove(0, 2); + return sb.ToString(); + } + #endregion + + #region edFile_ButtonClick + private void edFile_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e) + { + ser = ShowOpenFileDialog(); + if (ser == null) + return; + + this.edFile.Text = ser.FileName; + this.rbAuto.Enabled = this.rbManual.Enabled = true; + + this.comboSource.Properties.Items.Clear(); + foreach (var list in ser.DataRoot.ChannelLists) + { + if (!list.IsMixedSouceFavoritesList && list.Channels.Count > 0) + this.comboSource.Properties.Items.Add(list); + } + + this.comboTarget.Properties.Items.Clear(); + foreach (var list in main.DataRoot.ChannelLists) + { + if (!list.IsMixedSouceFavoritesList && list.Channels.Count > 0) + this.comboTarget.Properties.Items.Add(list); + } + + if (this.comboSource.Properties.Items.Count > 0) + this.comboSource.SelectedIndex = 0; + + this.rbAuto.Enabled = + ser.DataRoot.MixedSourceFavorites == main.DataRoot.MixedSourceFavorites && + ser.DataRoot.SortedFavorites == main.DataRoot.SortedFavorites; + if (!this.rbAuto.Enabled) + this.rbManual.Checked = true; + } + #endregion + + #region rbAuto_CheckedChanged + private void rbAuto_CheckedChanged(object sender, EventArgs e) + { + var ed = (CheckEdit) sender; + if (!ed.Checked) return; + UpdateButtons(); + this.grpManual.Enabled = this.rbManual.Checked && this.rbManual.Enabled; + } + #endregion + + #region comboSource_EditValueChanged + private void comboSource_EditValueChanged(object sender, EventArgs e) + { + UpdateInfoTextAndOptions(); + var list = (ChannelList) this.comboSource.EditValue; + this.comboPrNr.Text = list == null || list.Count == 0 ? "1" : list.Channels.Min(ch => Math.Max(ch.OldProgramNr, 1)).ToString(); + + // auto-select a compatible target list + if (list != null) + { + this.comboTarget.SelectedIndex = -1; + var src = list.SignalSource; + foreach (ChannelList targetList in this.comboTarget.Properties.Items) + { + if ((targetList.SignalSource & src) == src) + { + this.comboTarget.SelectedItem = targetList; + break; + } + } + } + } + + private void comboTarget_EditValueChanged(object sender, EventArgs e) + { + UpdateInfoTextAndOptions(); + } + #endregion + + #region btnApply_Click + private void btnApply_Click(object sender, EventArgs e) + { + + } + #endregion + + #region btnOk_Click + private void btnOk_Click(object sender, EventArgs e) + { + main.Editor.ApplyReferenceList(ser.DataRoot); + } + #endregion + + } +} \ No newline at end of file diff --git a/source/ChanSort/ReferenceListForm.resx b/source/ChanSort/ReferenceListForm.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/source/ChanSort/ReferenceListForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/source/changelog.md b/source/changelog.md index d96ce05..e3069b9 100644 --- a/source/changelog.md +++ b/source/changelog.md @@ -1,6 +1,9 @@ ChanSort Change Log =================== +2016-04-18 +- added support for Hisense channel.db channel lists + 2015-11-29 - Samsung E,F,H,J .scm file format: allow independant reordering of each favorites list