diff --git a/source/ChanSort.Api/Controller/Editor.cs b/source/ChanSort.Api/Controller/Editor.cs
index bd40620..d007cd2 100644
--- a/source/ChanSort.Api/Controller/Editor.cs
+++ b/source/ChanSort.Api/Controller/Editor.cs
@@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
-using System.Runtime.CompilerServices;
using System.Text;
namespace ChanSort.Api
@@ -96,15 +95,28 @@ namespace ChanSort.Api
{
if (channels.Count == 0)
return;
+
if (up && channels[0].GetPosition(this.SubListIndex) <= this.ChannelList.FirstProgramNumber)
return;
+ if (channels.Any(ch => ch.NewProgramNr < 0))
+ return;
+ int maxNr = this.ChannelList.Channels.Count == 0 ? 0 : this.ChannelList.Channels.Max(c => c.GetPosition(this.SubListIndex));
int delta = (up ? -1 : +1);
foreach (var channel in (up ? channels : channels.Reverse()))
{
int newProgramNr = channel.GetPosition(this.SubListIndex) + delta;
- ChannelInfo channelAtNewPos =
- this.ChannelList.Channels.FirstOrDefault(ch => ch.GetPosition(this.SubListIndex) == newProgramNr);
+ if (newProgramNr < 0) // can't move a channel up when it's not in the list
+ continue;
+ if (newProgramNr == 0) // "+" should work like "add at the end" when the channel is not in the list yet
+ {
+ newProgramNr = ++maxNr;
+ channel.SetPosition(this.SubListIndex, newProgramNr);
+ continue;
+ }
+
+ maxNr = Math.Max(maxNr, newProgramNr);
+ ChannelInfo channelAtNewPos = this.ChannelList.Channels.FirstOrDefault(ch => ch.GetPosition(this.SubListIndex) == newProgramNr);
if (channelAtNewPos != null)
channelAtNewPos.ChangePosition(this.SubListIndex, -delta);
channel.ChangePosition(this.SubListIndex, delta);
diff --git a/source/ChanSort.Loader.LG.UI/TvSettingsForm.pt.resx b/source/ChanSort.Loader.LG.UI/TvSettingsForm.pt.resx
index d58980a..679ca77 100644
--- a/source/ChanSort.Loader.LG.UI/TvSettingsForm.pt.resx
+++ b/source/ChanSort.Loader.LG.UI/TvSettingsForm.pt.resx
@@ -1,4 +1,4 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+ Storno
+
+
+ Ok
+
+
+ Barevné schéma
+
+
\ No newline at end of file
diff --git a/source/ChanSort/SkinPickerForm.de.resx b/source/ChanSort/SkinPickerForm.de.resx
new file mode 100644
index 0000000..2a78e46
--- /dev/null
+++ b/source/ChanSort/SkinPickerForm.de.resx
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+ Abbrechen
+
+
+ Farbschema
+
+
+ Ok
+
+
\ No newline at end of file
diff --git a/source/ChanSort/SkinPickerForm.es.resx b/source/ChanSort/SkinPickerForm.es.resx
new file mode 100644
index 0000000..6b1078e
--- /dev/null
+++ b/source/ChanSort/SkinPickerForm.es.resx
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+ Cancelar
+
+
+ Ok
+
+
+ Esquema de colores
+
+
\ No newline at end of file
diff --git a/source/ChanSort/SkinPickerForm.hu.resx b/source/ChanSort/SkinPickerForm.hu.resx
new file mode 100644
index 0000000..87162f5
--- /dev/null
+++ b/source/ChanSort/SkinPickerForm.hu.resx
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+ Mégse
+
+
+ Ok
+
+
+ Színösszeállítás
+
+
\ No newline at end of file
diff --git a/source/ChanSort/SkinPickerForm.pl.resx b/source/ChanSort/SkinPickerForm.pl.resx
new file mode 100644
index 0000000..ff3ac66
--- /dev/null
+++ b/source/ChanSort/SkinPickerForm.pl.resx
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+ Dobrze
+
+
+ Schemat kolorów
+
+
\ No newline at end of file
diff --git a/source/ChanSort/SkinPickerForm.pt.resx b/source/ChanSort/SkinPickerForm.pt.resx
new file mode 100644
index 0000000..e8e9a67
--- /dev/null
+++ b/source/ChanSort/SkinPickerForm.pt.resx
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+ Abortar
+
+
+ Esquema de cores
+
+
\ No newline at end of file
diff --git a/source/ChanSort/SkinPickerForm.resx b/source/ChanSort/SkinPickerForm.resx
new file mode 100644
index 0000000..1942f56
--- /dev/null
+++ b/source/ChanSort/SkinPickerForm.resx
@@ -0,0 +1,291 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+ 0
+
+
+ gallery
+
+
+ 0
+
+
+ DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v21.1, Version=21.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+
+
+ btnOk
+
+
+ panelControl1
+
+
+ 0
+
+
+ galleryControlClient1
+
+
+ DevExpress.XtraBars.Ribbon.GalleryControl, DevExpress.XtraBars.v21.1, Version=21.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+
+
+ DevExpress.XtraBars.Ribbon.GalleryControlClient, DevExpress.XtraBars.v21.1, Version=21.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+
+
+
+ 0, 527
+
+
+ 0
+
+
+ DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v21.1, Version=21.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+
+
+ 984, 562
+
+
+ 84, 23
+
+
+
+ Top, Right
+
+
+ 84, 23
+
+
+ 2
+
+
+ DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v21.1, Version=21.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+
+
+ 984, 527
+
+
+ 788, 7
+
+
+ 12, 7
+
+
+ 2, 2
+
+
+ 888, 7
+
+
+ CenterScreen
+
+
+ DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v21.1, Version=21.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+
+
+ 1
+
+
+ 0
+
+
+ 1
+
+
+ 0
+
+
+ 1
+
+
+ DevExpress.XtraEditors.PanelControl, DevExpress.Utils.v21.1, Version=21.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+
+
+ SkinPickerForm
+
+
+ $this
+
+
+ Top, Right
+
+
+ panelControl1
+
+
+ panelControl1
+
+
+ Use default theme
+
+
+ Cancel
+
+
+ 980, 523
+
+
+ gallery
+
+
+ 2
+
+
+ 158, 23
+
+
+ 6, 13
+
+
+ $this
+
+
+ 984, 35
+
+
+ btnReset
+
+
+ btnCancel
+
+
+ 0, 0
+
+
+ Ok
+
+
+ galleryControl1
+
+
+ Fill
+
+
+ Theme
+
+
+ panelControl1
+
+
+ Bottom
+
+
+ True
+
+
\ No newline at end of file
diff --git a/source/ChanSort/SkinPickerForm.ro.resx b/source/ChanSort/SkinPickerForm.ro.resx
new file mode 100644
index 0000000..10d50cf
--- /dev/null
+++ b/source/ChanSort/SkinPickerForm.ro.resx
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+ Anulare
+
+
+ Ok
+
+
+ Schema de culori
+
+
\ No newline at end of file
diff --git a/source/ChanSort/SkinPickerForm.ru.resx b/source/ChanSort/SkinPickerForm.ru.resx
new file mode 100644
index 0000000..c7f95a0
--- /dev/null
+++ b/source/ChanSort/SkinPickerForm.ru.resx
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+ Отменить
+
+
+ Ok
+
+
+ Цветовая схема
+
+
\ No newline at end of file
diff --git a/source/ChanSort/SkinPickerForm.tr.resx b/source/ChanSort/SkinPickerForm.tr.resx
new file mode 100644
index 0000000..639bcc2
--- /dev/null
+++ b/source/ChanSort/SkinPickerForm.tr.resx
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+ Vazgeç
+
+
+ TAMAM
+
+
+ Renk uyumu
+
+
\ No newline at end of file
diff --git a/source/ChanSort/app.config b/source/ChanSort/app.config
index b3cbd5f..dd40c9c 100644
--- a/source/ChanSort/app.config
+++ b/source/ChanSort/app.config
@@ -8,7 +8,7 @@
-
+ Skin/Office 2019 Colorful
@@ -65,7 +65,6 @@
-
\ No newline at end of file
diff --git a/source/Images/donate/btn_donateCC_LG.png b/source/Images/donate/btn_donateCC_LG.png
new file mode 100644
index 0000000..32302a9
Binary files /dev/null and b/source/Images/donate/btn_donateCC_LG.png differ
diff --git a/source/Images/donate/btn_donateCC_LG_de.png b/source/Images/donate/btn_donateCC_LG_de.png
new file mode 100644
index 0000000..4948da3
Binary files /dev/null and b/source/Images/donate/btn_donateCC_LG_de.png differ
diff --git a/source/Images/imagelist/0000.png b/source/Images/imagelist/0000.png
index d1854f6..7f06cce 100644
Binary files a/source/Images/imagelist/0000.png and b/source/Images/imagelist/0000.png differ
diff --git a/source/Images/imagelist/0001.png b/source/Images/imagelist/0001.png
index 2e38047..cc0e539 100644
Binary files a/source/Images/imagelist/0001.png and b/source/Images/imagelist/0001.png differ
diff --git a/source/Images/imagelist/0002.png b/source/Images/imagelist/0002.png
index bd3847a..5195f57 100644
Binary files a/source/Images/imagelist/0002.png and b/source/Images/imagelist/0002.png differ
diff --git a/source/Images/imagelist/0003.png b/source/Images/imagelist/0003.png
index 4e4302a..d2c2ebc 100644
Binary files a/source/Images/imagelist/0003.png and b/source/Images/imagelist/0003.png differ
diff --git a/source/Images/imagelist/0006.png b/source/Images/imagelist/0006.png
index 2ac8481..1e4ccb8 100644
Binary files a/source/Images/imagelist/0006.png and b/source/Images/imagelist/0006.png differ
diff --git a/source/Images/imagelist/0022.png b/source/Images/imagelist/0022.png
index 772e426..cf7e482 100644
Binary files a/source/Images/imagelist/0022.png and b/source/Images/imagelist/0022.png differ
diff --git a/source/Images/imagelist/0023.png b/source/Images/imagelist/0023.png
index ecbf9ca..eecfb4a 100644
Binary files a/source/Images/imagelist/0023.png and b/source/Images/imagelist/0023.png differ
diff --git a/source/Images/imagelist/0024.png b/source/Images/imagelist/0024.png
index f872c2b..87fb3a4 100644
Binary files a/source/Images/imagelist/0024.png and b/source/Images/imagelist/0024.png differ
diff --git a/source/Images/imagelist/0025.png b/source/Images/imagelist/0025.png
index 19f9769..6394299 100644
Binary files a/source/Images/imagelist/0025.png and b/source/Images/imagelist/0025.png differ
diff --git a/source/Images/imagelist/0027.png b/source/Images/imagelist/0027.png
index 4ce631c..4a25135 100644
Binary files a/source/Images/imagelist/0027.png and b/source/Images/imagelist/0027.png differ
diff --git a/source/Images/imagelist/0034.png b/source/Images/imagelist/0034.png
index 83c5eb5..7b9216e 100644
Binary files a/source/Images/imagelist/0034.png and b/source/Images/imagelist/0034.png differ
diff --git a/source/Images/imagelist/0035.png b/source/Images/imagelist/0035.png
index 5c85383..354ee50 100644
Binary files a/source/Images/imagelist/0035.png and b/source/Images/imagelist/0035.png differ
diff --git a/source/Images/imagelist/0041.png b/source/Images/imagelist/0041.png
index 31acde9..44e87f8 100644
Binary files a/source/Images/imagelist/0041.png and b/source/Images/imagelist/0041.png differ
diff --git a/source/Images/imagelist/0042.png b/source/Images/imagelist/0042.png
index 18b4791..0cf67f3 100644
Binary files a/source/Images/imagelist/0042.png and b/source/Images/imagelist/0042.png differ
diff --git a/source/Images/imagelist/0043.png b/source/Images/imagelist/0043.png
index 4f79806..5747acb 100644
Binary files a/source/Images/imagelist/0043.png and b/source/Images/imagelist/0043.png differ
diff --git a/source/Images/imagelist/0047.png b/source/Images/imagelist/0047.png
index 0ccb697..a0a03e8 100644
Binary files a/source/Images/imagelist/0047.png and b/source/Images/imagelist/0047.png differ
diff --git a/source/Images/imagelist/0048.png b/source/Images/imagelist/0048.png
new file mode 100644
index 0000000..1b259ad
Binary files /dev/null and b/source/Images/imagelist/0048.png differ
diff --git a/source/Translation.xlsx b/source/Translation.xlsx
index 815f2ad..220efa2 100644
Binary files a/source/Translation.xlsx and b/source/Translation.xlsx differ
diff --git a/source/changelog.md b/source/changelog.md
index 02f7f83..ff04b4f 100644
--- a/source/changelog.md
+++ b/source/changelog.md
@@ -1,6 +1,16 @@
ChanSort Change Log
===================
+2021-07-26
+- user interface can now be toggled between
+ - **split view**: classic ChanSort UI with new/ordered and old/full list side-by-side
+ - **single-table**: simplified and more intuitive UI, but not quite as powerful
+ When you choose to "Modify current list", the single-table view is used by default,
+ otherwise the split view. But you can always toggle between them.
+- added option to select a color theme. The UI now uses the "Office 2019 Colorful" theme by default,
+ the old theme was "Office 2016 Blue".
+- improved many keyboard shortcuts (open the drop-down menus to see the shortcuts)
+
2021-07-25
- DVBS_Program.csv, DVBS_CHANNEL_TABLE.csv, MSxxxx_DVBS_CHANNEL_TABLE.csv:
Various versions of these files are used by Blaupunkt, Dyon, Hisense, Sharp and many others