mirror of
https://github.com/PredatH0r/ChanSort.git
synced 2026-05-24 19:50:38 +02:00
- added experimental support for Loewe / Hisense 2017 servicelist.db
file format - show error message when trying to open a .zip file that doen't contain the expected files of a Samsung J series or Toshiba .zip channel list - show error message when trying to open a broken .zip file, which is most likely caused by exporting to a USB stick formatted with NTFS - allow changing the "crypt" flag for Samsung .scm lists - iterating through loaders supporting a file extension till one can read the file
This commit is contained in:
@@ -332,6 +332,42 @@
|
||||
<Project>{DCCFFA08-472B-4D17-BB90-8F513FC01392}</Project>
|
||||
<Name>ChanSort.Api</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\ChanSort.Loader.GlobalClone\ChanSort.Loader.GlobalClone.csproj">
|
||||
<Project>{5361c8cb-f737-4709-af8c-e1f0456f3c5b}</Project>
|
||||
<Name>ChanSort.Loader.GlobalClone</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\ChanSort.Loader.Hisense2017\ChanSort.Loader.Hisense2017.csproj">
|
||||
<Project>{9282e1db-cd1f-400a-aca1-17e0c4562acf}</Project>
|
||||
<Name>ChanSort.Loader.Hisense2017</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\ChanSort.Loader.Hisense\ChanSort.Loader.Hisense.csproj">
|
||||
<Project>{d093e7ee-d3ad-4e7b-af82-c6918ca017fb}</Project>
|
||||
<Name>ChanSort.Loader.Hisense</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\ChanSort.Loader.LG\ChanSort.Loader.LG.csproj">
|
||||
<Project>{e972d8a1-2f5f-421c-ac91-cff45e5191be}</Project>
|
||||
<Name>ChanSort.Loader.LG</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\ChanSort.Loader.Panasonic\ChanSort.Loader.Panasonic.csproj">
|
||||
<Project>{68da8072-3a29-4076-9f64-d66f38349585}</Project>
|
||||
<Name>ChanSort.Loader.Panasonic</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\ChanSort.Loader.SamsungJ\ChanSort.Loader.SamsungJ.csproj">
|
||||
<Project>{33897002-0537-49a4-b963-a18d17311b3d}</Project>
|
||||
<Name>ChanSort.Loader.SamsungJ</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\ChanSort.Loader.Samsung\ChanSort.Loader.Samsung.csproj">
|
||||
<Project>{a1c9a98d-368a-44e8-9b7f-7eaca46c9ec5}</Project>
|
||||
<Name>ChanSort.Loader.Samsung</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\ChanSort.Loader.Toshiba\ChanSort.Loader.Toshiba.csproj">
|
||||
<Project>{f6f02792-07f1-48d5-9af3-f945ca5e3931}</Project>
|
||||
<Name>ChanSort.Loader.Toshiba</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\ChanSort.Loader.VDR\ChanSort.Loader.VDR.csproj">
|
||||
<Project>{74a18c6f-09ff-413e-90d9-827066fa5b36}</Project>
|
||||
<Name>ChanSort.Loader.VDR</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="app.ico" />
|
||||
|
||||
2
source/ChanSort/MainForm.Designer.cs
generated
2
source/ChanSort/MainForm.Designer.cs
generated
@@ -614,6 +614,7 @@
|
||||
this.gviewRight.ShownEditor += new System.EventHandler(this.gview_ShownEditor);
|
||||
this.gviewRight.FocusedRowChanged += new DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventHandler(this.gviewRight_FocusedRowChanged);
|
||||
this.gviewRight.CellValueChanged += new DevExpress.XtraGrid.Views.Base.CellValueChangedEventHandler(this.gviewRight_CellValueChanged);
|
||||
this.gviewRight.CustomColumnSort += new DevExpress.XtraGrid.Views.Base.CustomColumnSortEventHandler(this.gviewRight_CustomColumnSort);
|
||||
this.gviewRight.CustomUnboundColumnData += new DevExpress.XtraGrid.Views.Base.CustomColumnDataEventHandler(this.gview_CustomUnboundColumnData);
|
||||
this.gviewRight.CustomColumnDisplayText += new DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventHandler(this.gviewRight_CustomColumnDisplayText);
|
||||
this.gviewRight.LayoutUpgrade += new DevExpress.Utils.LayoutUpgradeEventHandler(this.gviewRight_LayoutUpgrade);
|
||||
@@ -639,6 +640,7 @@
|
||||
this.colSlotOld.Name = "colSlotOld";
|
||||
this.colSlotOld.OptionsColumn.AllowEdit = false;
|
||||
this.colSlotOld.OptionsFilter.AllowAutoFilter = false;
|
||||
this.colSlotOld.SortMode = DevExpress.XtraGrid.ColumnSortMode.Custom;
|
||||
this.colSlotOld.UnboundType = DevExpress.Data.UnboundColumnType.Integer;
|
||||
//
|
||||
// colSlotNew
|
||||
|
||||
@@ -31,7 +31,7 @@ namespace ChanSort.Ui
|
||||
{
|
||||
public partial class MainForm : XtraForm
|
||||
{
|
||||
public const string AppVersion = "v2017-03-29";
|
||||
public const string AppVersion = "v2017-06-08";
|
||||
|
||||
private const int MaxMruEntries = 10;
|
||||
private readonly List<string> isoEncodings = new List<string>();
|
||||
@@ -186,12 +186,17 @@ namespace ChanSort.Ui
|
||||
numberOfFilters = 0;
|
||||
var filter = new StringBuilder();
|
||||
var extension = new StringBuilder();
|
||||
foreach (var plugin in this.Plugins)
|
||||
var sortedPlugins = this.Plugins.ToList();
|
||||
sortedPlugins.Sort((a, b) => a.PluginName.CompareTo(b.PluginName));
|
||||
foreach (var plugin in sortedPlugins)
|
||||
{
|
||||
filter.Append(plugin.PluginName).Append("|").Append(plugin.FileFilter);
|
||||
extension.Append(plugin.FileFilter);
|
||||
filter.Append("|");
|
||||
extension.Append(";");
|
||||
if (!(";" + extension + ";").Contains(plugin.FileFilter))
|
||||
{
|
||||
extension.Append(plugin.FileFilter);
|
||||
extension.Append(";");
|
||||
}
|
||||
++numberOfFilters;
|
||||
}
|
||||
if (extension.Length > 0)
|
||||
@@ -252,7 +257,7 @@ namespace ChanSort.Ui
|
||||
this.Editor.ChannelList = null;
|
||||
this.gridRight.DataSource = null;
|
||||
this.gridLeft.DataSource = null;
|
||||
this.FillChannelListCombo();
|
||||
this.FillChannelListTabs();
|
||||
|
||||
//this.SetControlsEnabled(!this.dataRoot.IsEmpty);
|
||||
this.UpdateFavoritesEditor(this.DataRoot.SupportedFavorites);
|
||||
@@ -314,9 +319,9 @@ namespace ChanSort.Ui
|
||||
|
||||
#endregion
|
||||
|
||||
#region FillChannelListCombo()
|
||||
#region FillChannelListTabs()
|
||||
|
||||
private void FillChannelListCombo()
|
||||
private void FillChannelListTabs()
|
||||
{
|
||||
this.tabChannelList.TabPages.Clear();
|
||||
|
||||
@@ -408,23 +413,60 @@ namespace ChanSort.Ui
|
||||
|
||||
#endregion
|
||||
|
||||
#region GetTvFileSerializer()
|
||||
#region GetSerializerForFile()
|
||||
|
||||
internal ISerializerPlugin GetPluginForFile(string inputFileName)
|
||||
internal SerializerBase GetSerializerForFile(string inputFileName, ref ISerializerPlugin hint)
|
||||
{
|
||||
if (!File.Exists(inputFileName))
|
||||
{
|
||||
XtraMessageBox.Show(this, string.Format(Resources.MainForm_LoadTll_SourceTllNotFound, inputFileName));
|
||||
return null;
|
||||
}
|
||||
var upperFileName = (Path.GetFileName(inputFileName) ?? "").ToUpper();
|
||||
foreach (var plugin in this.Plugins)
|
||||
|
||||
List<ISerializerPlugin> candidates = new List<ISerializerPlugin>();
|
||||
if (hint != null)
|
||||
candidates.Add(hint);
|
||||
else
|
||||
{
|
||||
foreach (var filter in plugin.FileFilter.ToUpper().Split(';'))
|
||||
var upperFileName = (Path.GetFileName(inputFileName) ?? "").ToUpper();
|
||||
foreach (var plugin in this.Plugins)
|
||||
{
|
||||
var regex = filter.Replace(".", "\\.").Replace("*", ".*").Replace("?", ".");
|
||||
if (Regex.IsMatch(upperFileName, regex))
|
||||
return plugin;
|
||||
foreach (var filter in plugin.FileFilter.ToUpper().Split(';'))
|
||||
{
|
||||
var regex = filter.Replace(".", "\\.").Replace("*", ".*").Replace("?", ".");
|
||||
if (Regex.IsMatch(upperFileName, regex))
|
||||
{
|
||||
candidates.Add(plugin);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var plugin in candidates)
|
||||
{
|
||||
try
|
||||
{
|
||||
var serializer = plugin.CreateSerializer(inputFileName);
|
||||
if (serializer != null)
|
||||
{
|
||||
serializer.DefaultEncoding = this.defaultEncoding;
|
||||
serializer.Load();
|
||||
hint = plugin;
|
||||
return serializer;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
if (ex is ArgumentException)
|
||||
{
|
||||
var msg = ex.ToString();
|
||||
if (msg.Contains("ZipFile..ctor()"))
|
||||
{
|
||||
XtraMessageBox.Show(this, string.Format(Resources.MainForm_LoadTll_InvalidZip, inputFileName));
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -446,18 +488,14 @@ namespace ChanSort.Ui
|
||||
return false;
|
||||
}
|
||||
|
||||
if (plugin == null)
|
||||
plugin = this.GetPluginForFile(tvDataFile);
|
||||
// abort action if there is no currentTvSerializer for the input file
|
||||
var serializer = plugin == null ? null : plugin.CreateSerializer(tvDataFile);
|
||||
SerializerBase serializer = this.GetSerializerForFile(tvDataFile, ref plugin);
|
||||
if (serializer == null)
|
||||
return false;
|
||||
|
||||
if (!this.PromptSaveAndContinue())
|
||||
return false;
|
||||
|
||||
serializer.DefaultEncoding = this.defaultEncoding;
|
||||
serializer.Load();
|
||||
this.SetFileName(tvDataFile);
|
||||
this.currentPlugin = plugin;
|
||||
this.currentTvSerializer = serializer;
|
||||
@@ -530,6 +568,7 @@ namespace ChanSort.Ui
|
||||
this.BeginInvoke((Action) (() => this.ShowOpenReferenceFileDialog(false)));
|
||||
else if (res == DialogResult.No)
|
||||
{
|
||||
//this.currentTvSerializer.ApplyCurrentProgramNumbers();
|
||||
this.DataRoot.ApplyCurrentProgramNumbers();
|
||||
this.RefreshGrid(this.gviewLeft, this.gviewRight);
|
||||
this.rbInsertSwap.Checked = true;
|
||||
@@ -590,9 +629,6 @@ namespace ChanSort.Ui
|
||||
this.pageProgNr.PageVisible = true;
|
||||
this.grpSubList.Visible = DataRoot.SortedFavorites;
|
||||
}
|
||||
|
||||
//this.tabSubList.TabPages[0].PageVisible = !channelList.IsMixedSourceFavoritesList;
|
||||
//this.pageProgNr.Enabled = this.pageProgNr.Visible;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -610,7 +646,7 @@ namespace ChanSort.Ui
|
||||
UpdateGridReadOnly();
|
||||
|
||||
|
||||
this.UpdateInsertSlotTextBox();
|
||||
this.UpdateInsertSlotNumber();
|
||||
this.UpdateMenu();
|
||||
|
||||
this.mnuFavList.Enabled = this.grpSubList.Visible;
|
||||
@@ -703,7 +739,7 @@ namespace ChanSort.Ui
|
||||
{
|
||||
foreach (var channel in list.Channels)
|
||||
{
|
||||
if (channel.NewProgramNr < 0)
|
||||
if (channel.NewProgramNr < 0 && channel.OldProgramNr >= 0)
|
||||
{
|
||||
hasUnsorted = true;
|
||||
break;
|
||||
@@ -871,6 +907,8 @@ namespace ChanSort.Ui
|
||||
// remove all the selected channels which are about to be added.
|
||||
// This may require an adjustment of the insert position when channels are removed in front of it and gaps are closed.
|
||||
var insertSlot = this.CurrentChannelList.InsertProgramNumber;
|
||||
if (insertSlot == 1 && this.rbInsertAfter.Checked && this.gviewLeft.RowCount == 0)
|
||||
insertSlot = 0;
|
||||
var contextRow = (ChannelInfo)this.gviewLeft.GetFocusedRow();
|
||||
if (contextRow != null)
|
||||
{
|
||||
@@ -1684,7 +1722,7 @@ namespace ChanSort.Ui
|
||||
if (this.currentTvSerializer != null && this.currentTvSerializer.Features.CleanUpChannelData)
|
||||
{
|
||||
var msg = this.currentTvSerializer.CleanUpChannelData();
|
||||
this.FillChannelListCombo();
|
||||
this.FillChannelListTabs();
|
||||
InfoBox.Show(this, msg, this.miCleanupChannels.Caption);
|
||||
this.RefreshGrid(gviewLeft, gviewRight);
|
||||
}
|
||||
@@ -1837,11 +1875,13 @@ namespace ChanSort.Ui
|
||||
this.gviewLeft.BeginSort();
|
||||
this.gviewLeft.EndSort();
|
||||
this.gviewRight.BeginSort();
|
||||
if (this.subListIndex > 0)
|
||||
if (this.subListIndex > 0 && !this.CurrentChannelList.IsMixedSourceFavoritesList)
|
||||
this.colPrNr.FilterInfo = new ColumnFilterInfo("[NewProgramNr]<>-1");
|
||||
else
|
||||
this.colPrNr.ClearFilter();
|
||||
this.gviewRight.EndSort();
|
||||
|
||||
this.UpdateInsertSlotNumber();
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -2050,7 +2090,7 @@ namespace ChanSort.Ui
|
||||
{
|
||||
var channel = (ChannelInfo) this.gviewLeft.GetRow(e.RowHandle);
|
||||
if (channel == null) return;
|
||||
if (channel.OldProgramNr == -1)
|
||||
if (channel.IsProxy)
|
||||
{
|
||||
e.Appearance.ForeColor = Color.Red;
|
||||
e.Appearance.Options.UseForeColor = true;
|
||||
@@ -2190,7 +2230,7 @@ namespace ChanSort.Ui
|
||||
{
|
||||
var channel = (ChannelInfo) this.gviewRight.GetRow(e.RowHandle);
|
||||
if (channel == null) return;
|
||||
if (channel.OldProgramNr == -1)
|
||||
if (channel.IsProxy)
|
||||
{
|
||||
e.Appearance.ForeColor = Color.Red;
|
||||
e.Appearance.Options.UseForeColor = true;
|
||||
@@ -2261,6 +2301,22 @@ namespace ChanSort.Ui
|
||||
|
||||
#endregion
|
||||
|
||||
#region gviewRight_CustomColumnSort
|
||||
private void gviewRight_CustomColumnSort(object sender, CustomColumnSortEventArgs e)
|
||||
{
|
||||
if (e.Column == this.colSlotOld)
|
||||
{
|
||||
// sort unassigned channels (PrNr = -1) to the bottom of the list
|
||||
var ch1 = (int)this.gviewRight.GetListSourceRowCellValue(e.ListSourceRowIndex1, e.Column);
|
||||
var ch2 = (int)this.gviewRight.GetListSourceRowCellValue(e.ListSourceRowIndex2, e.Column);
|
||||
if (ch1 < 0) ch1 = int.MaxValue;
|
||||
if (ch2 < 0) ch2 = int.MaxValue;
|
||||
e.Result = System.Collections.Comparer.Default.Compare(ch1, ch2);
|
||||
e.Handled = true;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region gviewRight_PopupMenuShowing
|
||||
|
||||
private void gviewRight_PopupMenuShowing(object sender, PopupMenuShowingEventArgs e)
|
||||
@@ -2286,10 +2342,16 @@ namespace ChanSort.Ui
|
||||
if (this.CurrentChannelList == null)
|
||||
return;
|
||||
|
||||
var delta = this.curEditMode == EditMode.InsertAfter
|
||||
? -1
|
||||
: this.rbInsertAfter.Checked ? +1 : 0;
|
||||
this.CurrentChannelList.InsertProgramNumber += delta;
|
||||
if (this.gviewLeft.RowCount == 0)
|
||||
this.CurrentChannelList.InsertProgramNumber = 1;
|
||||
else
|
||||
{
|
||||
var delta = this.curEditMode == EditMode.InsertAfter
|
||||
? -1
|
||||
: this.rbInsertAfter.Checked ? +1 : 0;
|
||||
this.CurrentChannelList.InsertProgramNumber += delta;
|
||||
}
|
||||
|
||||
this.UpdateInsertSlotTextBox();
|
||||
this.curEditMode = this.rbInsertBefore.Checked
|
||||
? EditMode.InsertBefore
|
||||
@@ -2458,8 +2520,9 @@ namespace ChanSort.Ui
|
||||
{
|
||||
this.gviewRight.BeginSort();
|
||||
this.gviewRight.ClearColumnsFilter();
|
||||
this.colSlotOld.FilterInfo = new ColumnFilterInfo("[OldProgramNr]<>-1");
|
||||
if (this.subListIndex > 0)
|
||||
if (this.DataRoot != null && !this.DataRoot.ShowDeletedChannels)
|
||||
this.colSlotOld.FilterInfo = new ColumnFilterInfo("[OldProgramNr]<>-1");
|
||||
if (this.subListIndex > 0 && !this.CurrentChannelList.IsMixedSourceFavoritesList)
|
||||
this.colPrNr.FilterInfo = new ColumnFilterInfo("[NewProgramNr]<>-1");
|
||||
this.gviewRight.EndSort();
|
||||
}
|
||||
|
||||
@@ -211,7 +211,7 @@
|
||||
</data>
|
||||
<data name="colUid1.Caption" xml:space="preserve">
|
||||
<value>UID</value>
|
||||
<comment>@Invariant</comment></data>
|
||||
</data>
|
||||
<data name="colOutLock.Caption" xml:space="preserve">
|
||||
<value>Lock</value>
|
||||
</data>
|
||||
@@ -373,7 +373,7 @@
|
||||
</data>
|
||||
<data name="grpSubList.Text" xml:space="preserve">
|
||||
<value>Sub List</value>
|
||||
<comment>@Invariant</comment></data>
|
||||
</data>
|
||||
<data name="grpSubList.Visible" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
@@ -466,37 +466,37 @@
|
||||
</data>
|
||||
<data name="miFavASet.Caption" xml:space="preserve">
|
||||
<value>&A</value>
|
||||
<comment>@Invariant</comment></data>
|
||||
</data>
|
||||
<data name="miFavBSet.Caption" xml:space="preserve">
|
||||
<value>&B</value>
|
||||
<comment>@Invariant</comment></data>
|
||||
</data>
|
||||
<data name="miFavCSet.Caption" xml:space="preserve">
|
||||
<value>&C</value>
|
||||
<comment>@Invariant</comment></data>
|
||||
</data>
|
||||
<data name="miFavDSet.Caption" xml:space="preserve">
|
||||
<value>&D</value>
|
||||
<comment>@Invariant</comment></data>
|
||||
</data>
|
||||
<data name="miFavESet.Caption" xml:space="preserve">
|
||||
<value>&E</value>
|
||||
<comment>@Invariant</comment></data>
|
||||
</data>
|
||||
<data name="mnuFavUnset.Caption" xml:space="preserve">
|
||||
<value>Remove from Favorites</value>
|
||||
</data>
|
||||
<data name="miFavAUnset.Caption" xml:space="preserve">
|
||||
<value>&A</value>
|
||||
<comment>@Invariant</comment></data>
|
||||
</data>
|
||||
<data name="miFavBUnset.Caption" xml:space="preserve">
|
||||
<value>&B</value>
|
||||
<comment>@Invariant</comment></data>
|
||||
</data>
|
||||
<data name="miFavCUnset.Caption" xml:space="preserve">
|
||||
<value>&C</value>
|
||||
<comment>@Invariant</comment></data>
|
||||
</data>
|
||||
<data name="miFavDUnset.Caption" xml:space="preserve">
|
||||
<value>&D</value>
|
||||
<comment>@Invariant</comment></data>
|
||||
</data>
|
||||
<data name="miFavEUnset.Caption" xml:space="preserve">
|
||||
<value>&E</value>
|
||||
<comment>@Invariant</comment></data>
|
||||
</data>
|
||||
<data name="miLockOn.Caption" xml:space="preserve">
|
||||
<value>&Lock channel: on</value>
|
||||
</data>
|
||||
@@ -535,16 +535,16 @@
|
||||
</data>
|
||||
<data name="miEnglish.Caption" xml:space="preserve">
|
||||
<value>&English</value>
|
||||
<comment>@Invariant</comment></data>
|
||||
</data>
|
||||
<data name="miGerman.Caption" xml:space="preserve">
|
||||
<value>&Deutsch</value>
|
||||
<comment>@Invariant</comment></data>
|
||||
</data>
|
||||
<data name="miPortuguese.Caption" xml:space="preserve">
|
||||
<value>Português</value>
|
||||
<comment>@Invariant</comment></data>
|
||||
</data>
|
||||
<data name="miRussian.Caption" xml:space="preserve">
|
||||
<value>ру́сский</value>
|
||||
<comment>@Invariant</comment></data>
|
||||
</data>
|
||||
<data name="miCzech.Caption" xml:space="preserve">
|
||||
<value>Česky</value>
|
||||
</data>
|
||||
@@ -580,7 +580,7 @@
|
||||
</data>
|
||||
<data name="mnuInputSource.Caption" xml:space="preserve">
|
||||
<value>mnuInputSource</value>
|
||||
<comment>@Invariant</comment></data>
|
||||
</data>
|
||||
<data name="mnuGotoFavList.AccessibleDescription" xml:space="preserve">
|
||||
<value>Opens a submenu for the program of favorite list selection. This menu can be directly activated with the Shift+F1 key</value>
|
||||
</data>
|
||||
@@ -589,7 +589,7 @@
|
||||
</data>
|
||||
<data name="mnuFavList.Caption" xml:space="preserve">
|
||||
<value>mnuFavList</value>
|
||||
<comment>@Invariant</comment></data>
|
||||
</data>
|
||||
<data name="miSelectFavList0.Caption" xml:space="preserve">
|
||||
<value>Program list</value>
|
||||
</data>
|
||||
@@ -1013,7 +1013,7 @@
|
||||
</data>
|
||||
<data name="txtSetSlot.Properties.Mask.EditMask" xml:space="preserve">
|
||||
<value>\d{1,4}</value>
|
||||
<comment>@Invariant</comment></data>
|
||||
</data>
|
||||
<data name="txtSetSlot.Properties.Mask.MaskType" type="DevExpress.XtraEditors.Mask.MaskType, DevExpress.XtraEditors.v15.2">
|
||||
<value>RegEx</value>
|
||||
</data>
|
||||
@@ -1852,7 +1852,7 @@
|
||||
<value>DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v15.2, Version=15.2.10.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name="SharedImageCollection.Timestamp" type="System.DateTime, mscorlib">
|
||||
<value>01/26/2017 12:52:08</value>
|
||||
<value>06/08/2017 17:07:00</value>
|
||||
</data>
|
||||
<data name="SharedImageCollection.ImageSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>16, 16</value>
|
||||
@@ -1898,7 +1898,7 @@
|
||||
</data>
|
||||
<data name="btnToggleFavE.Text" xml:space="preserve">
|
||||
<value>±E</value>
|
||||
<comment>@Invariant</comment></data>
|
||||
</data>
|
||||
<data name=">>btnToggleFavE.Name" xml:space="preserve">
|
||||
<value>btnToggleFavE</value>
|
||||
</data>
|
||||
@@ -1925,7 +1925,7 @@
|
||||
</data>
|
||||
<data name="btnToggleFavD.Text" xml:space="preserve">
|
||||
<value>±D</value>
|
||||
<comment>@Invariant</comment></data>
|
||||
</data>
|
||||
<data name=">>btnToggleFavD.Name" xml:space="preserve">
|
||||
<value>btnToggleFavD</value>
|
||||
</data>
|
||||
@@ -1952,7 +1952,7 @@
|
||||
</data>
|
||||
<data name="btnToggleFavC.Text" xml:space="preserve">
|
||||
<value>±C</value>
|
||||
<comment>@Invariant</comment></data>
|
||||
</data>
|
||||
<data name=">>btnToggleFavC.Name" xml:space="preserve">
|
||||
<value>btnToggleFavC</value>
|
||||
</data>
|
||||
@@ -1979,7 +1979,7 @@
|
||||
</data>
|
||||
<data name="btnToggleFavB.Text" xml:space="preserve">
|
||||
<value>±B</value>
|
||||
<comment>@Invariant</comment></data>
|
||||
</data>
|
||||
<data name=">>btnToggleFavB.Name" xml:space="preserve">
|
||||
<value>btnToggleFavB</value>
|
||||
</data>
|
||||
@@ -2006,7 +2006,7 @@
|
||||
</data>
|
||||
<data name="btnToggleFavA.Text" xml:space="preserve">
|
||||
<value>±A</value>
|
||||
<comment>@Invariant</comment></data>
|
||||
</data>
|
||||
<data name=">>btnToggleFavA.Name" xml:space="preserve">
|
||||
<value>btnToggleFavA</value>
|
||||
</data>
|
||||
@@ -2213,7 +2213,7 @@
|
||||
</data>
|
||||
<data name="splitContainerControl1.Panel1.Text" xml:space="preserve">
|
||||
<value>Panel1</value>
|
||||
<comment>@Invariant</comment></data>
|
||||
</data>
|
||||
<data name="gridRight.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Fill</value>
|
||||
</data>
|
||||
@@ -2438,7 +2438,7 @@
|
||||
</data>
|
||||
<data name="colTransportStreamId.Caption" xml:space="preserve">
|
||||
<value>TS ID</value>
|
||||
<comment>@Invariant</comment></data>
|
||||
</data>
|
||||
<data name="colTransportStreamId.ToolTip" xml:space="preserve">
|
||||
<value>Transport Stream ID</value>
|
||||
</data>
|
||||
@@ -2534,7 +2534,7 @@
|
||||
</data>
|
||||
<data name="colUid.Caption" xml:space="preserve">
|
||||
<value>Uid</value>
|
||||
<comment>@Invariant</comment></data>
|
||||
</data>
|
||||
<data name="colUid.Width" type="System.Int32, mscorlib">
|
||||
<value>120</value>
|
||||
</data>
|
||||
@@ -2801,7 +2801,7 @@ specific provider, satellite or country lists.</value>
|
||||
</data>
|
||||
<data name="splitContainerControl1.Panel2.Text" xml:space="preserve">
|
||||
<value>Panel2</value>
|
||||
<comment>@Invariant</comment></data>
|
||||
</data>
|
||||
<data name="splitContainerControl1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>1444, 459</value>
|
||||
</data>
|
||||
@@ -2810,7 +2810,7 @@ specific provider, satellite or country lists.</value>
|
||||
</data>
|
||||
<data name="splitContainerControl1.Text" xml:space="preserve">
|
||||
<value>splitContainerControl1</value>
|
||||
<comment>@Invariant</comment></data>
|
||||
</data>
|
||||
<data name=">>splitContainerControl1.Name" xml:space="preserve">
|
||||
<value>splitContainerControl1</value>
|
||||
</data>
|
||||
|
||||
11
source/ChanSort/Properties/Resources.Designer.cs
generated
11
source/ChanSort/Properties/Resources.Designer.cs
generated
@@ -238,6 +238,17 @@ namespace ChanSort.Ui.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to The file is not a valid .zip archive.
|
||||
///TVs often export corrupted files to USB sticks formatted with the NTFS file system.
|
||||
///Please try exporting to a stick formatted with FAT32.
|
||||
/// </summary>
|
||||
internal static string MainForm_LoadTll_InvalidZip {
|
||||
get {
|
||||
return ResourceManager.GetString("MainForm_LoadTll_InvalidZip", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to No plugin found to read/write {0} files..
|
||||
/// </summary>
|
||||
|
||||
@@ -292,4 +292,9 @@ Mögliche Ursachen sind USB-Sticks, die mit NTFS formatiert sind (FAT32 sollte i
|
||||
<data name="ReferenceListForm_ShowOpenFileDialog_Title" xml:space="preserve">
|
||||
<value>Wählen Sie eine Vorlagedatei für die Senderreihenfolge</value>
|
||||
</data>
|
||||
<data name="MainForm_LoadTll_InvalidZip" xml:space="preserve">
|
||||
<value>Diese Datei ist kein gültiges .zip Archiv.
|
||||
TVs exportieren oft defekte Dateien auf USB Sticks, die mit NTFS formatiert sind.
|
||||
Bitte versuchen Sie, die Senderliste auf einen Stick mit FAT32 Formatierung zu exportieren.</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -296,4 +296,9 @@ or firmware upgrades without running a new channel scan.
|
||||
<data name="MainForm_ShowOpenReferenceFileDialog_Title" xml:space="preserve">
|
||||
<value>Open Reference List</value>
|
||||
</data>
|
||||
<data name="MainForm_LoadTll_InvalidZip" xml:space="preserve">
|
||||
<value>The file is not a valid .zip archive.
|
||||
TVs often export corrupted files to USB sticks formatted with the NTFS file system.
|
||||
Please try exporting to a stick formatted with FAT32</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -76,10 +76,8 @@ namespace ChanSort.Ui
|
||||
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;
|
||||
ISerializerPlugin hint = dlg.FilterIndex <= main.Plugins.Count ? main.Plugins[dlg.FilterIndex - 1] : null;
|
||||
return main.GetSerializerForFile(dlg.FileName, ref hint);
|
||||
}
|
||||
}
|
||||
catch
|
||||
|
||||
Reference in New Issue
Block a user