- LG GlobalClone: added support for additional favorites (A-H) and individual fav sorting when supported by the TV

- LG GlobalClone: data/option channels were not listed before and are now shown in the TV channel list
- added function to copy list to clipboard (which can then be pasted into Excel or other programs)
This commit is contained in:
hbeham
2019-08-13 13:29:59 +02:00
parent 0c348ed151
commit 8923ce4c83
14 changed files with 372 additions and 428 deletions

View File

@@ -5,7 +5,7 @@ namespace ChanSort.Api
{
public class ChannelInfo
{
private const int MAX_FAV_LISTS = 5;
private const int MAX_FAV_LISTS = 16;
private string uid;
private string serviceTypeName;

View File

@@ -73,7 +73,7 @@ namespace ChanSort.Api
#endregion
[Flags]
public enum Favorites : byte { A = 0x01, B = 0x02, C = 0x04, D = 0x08, E = 0x10 }
public enum Favorites : byte { A = 0x01, B = 0x02, C = 0x04, D = 0x08, E = 0x10, F=0x20, G=0x40, H=0x80 }
public enum UnsortedChannelMode
{

View File

@@ -211,6 +211,8 @@ namespace ChanSort.Loader.GlobalClone
this.ParseChannelInfoNodes(itemNode, ch);
var list = this.DataRoot.GetChannelList(ch.SignalSource);
if (list == null && (ch.SignalSource & SignalSource.MaskTvRadio) == 0) // Data/Option channels are put in the TV list
list = this.DataRoot.GetChannelList(ch.SignalSource | SignalSource.Tv);
this.DataRoot.AddChannel(list, ch);
}
}
@@ -315,6 +317,17 @@ namespace ChanSort.Loader.GlobalClone
ch.ShortName = shortName;
hasHexName = true;
break;
default:
if (info.LocalName.StartsWith("favoriteIdx"))
{
int n = info.LocalName[11] - 'A';
var mask = 1 << n;
this.DataRoot.SupportedFavorites |= (Favorites)mask;
this.DataRoot.SortedFavorites = true;
if (((int)ch.Favorites & mask) != 0) // xml element holds bad index data (250) when fav is not set
ch.SetPosition(n + 1, int.Parse(info.InnerText));
}
break;
}
}
}
@@ -433,6 +446,16 @@ namespace ChanSort.Loader.GlobalClone
if (mapType == "1")
node.InnerText = ((int) ch.Favorites).ToString();
break;
default:
if (node.LocalName.StartsWith("favoriteIdx"))
{
int n = node.LocalName[11] - 'A';
var idx = ch.GetPosition(n + 1);
if (idx <= 0)
idx = 250; // this weird value is used by the TV when the fav is not set
node.InnerText = idx.ToString();
}
break;
}
}
}

View File

@@ -96,7 +96,7 @@ namespace ChanSort.Ui
this.sharedImageCollection1.ImageSource.Images.SetKeyName(40, "0040.png");
this.sharedImageCollection1.ImageSource.Images.SetKeyName(41, "0041.png");
this.sharedImageCollection1.ImageSource.Images.SetKeyName(42, "0042.png");
this.sharedImageCollection1.ParentControl = null;
this.sharedImageCollection1.ImageSource.Images.SetKeyName(43, "0043.png");
((System.ComponentModel.ISupportInitialize)(this.sharedImageCollection1.ImageSource)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.sharedImageCollection1)).EndInit();

View File

@@ -123,13 +123,13 @@
<assembly alias="DevExpress.Utils.v19.1" name="DevExpress.Utils.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="sharedImageCollection1.ImageSource.ImageStream" type="DevExpress.Utils.ImageCollectionStreamer, DevExpress.Utils.v19.1" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLlV0aWxzLnYxNy4xLCBWZXJzaW9uPTE3LjEu
Ny4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEMAwAAAFFT
AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLlV0aWxzLnYxOS4xLCBWZXJzaW9uPTE5LjEu
NS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEMAwAAAFFT
eXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRv
a2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAAChEZXZFeHByZXNzLlV0aWxzLkltYWdlQ29sbGVjdGlvblN0
cmVhbWVyAgAAAAlJbWFnZVNpemUERGF0YQQHE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAAgIAAAAF/P//
/xNTeXN0ZW0uRHJhd2luZy5TaXplAgAAAAV3aWR0aAZoZWlnaHQAAAgIAwAAABAAAAAQAAAACQUAAAAP
BQAAAJV0AAACYgIAAIlQTkcNChoKAAAADUlIRFIAAAAQAAAAEAgCAAAAkJFoNgAAAAFzUkdCAK7OHOkA
BQAAAHB2AAACYgIAAIlQTkcNChoKAAAADUlIRFIAAAAQAAAAEAgCAAAAkJFoNgAAAAFzUkdCAK7OHOkA
AAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAAsSAAALEgHS3X78AAAB90lEQVQ4T2P4TyIgXcOkmft2XH1T
Pf1YSjMQHU5sPHDz7tu1yY1rEuqADM/sbR5pO2xjNkQ17pwTmF899yjDkhWn/m9c9e/f/9sPvyzacHv+
+jtA9v8pPf/7WoGMSQsv9869cPLE439dNf/+/pyw6QJDUsvBPSff/V+6/P/BvUAb26ZdBVmcmvk/IRFI
@@ -626,12 +626,20 @@
lHy+shnszEw9Lo4l18IzqyPTOYRCsuxlzE2pk5D9+EePqa1W1NEheTy8Gez4cPlRMTyzMnL9W+DqqiAE
GDvY0rhHKrc0am8XXa6CGcC7Cw/zwamv/ivL3osrtZqX0gOE7MN4ryTtEXkrsliE3buEtjbkdDaDN+ce
cGfmc/G7a7E0h9AJSiOUhggZxnhIqhwS3W7kchkaORxcI3gL8BrgJcAiwKtKBjaXoJoB41J+D/wibAAY
Dxu0uf/h87XOf5x6/S8BnAaucM19IAAAAABJRU5ErkJgggs=
Dxu0uf/h87XOf5x6/S8BnAaucM19IAAAAABJRU5ErkJggtcBAACJUE5HDQoaCgAAAA1JSERSAAAAEAAA
ABAIBgAAAB/z/2EAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA7DAAAOwwHHb6hkAAABeUlEQVQ4T22T
rZaDMBBGeQzsSmRlbWUkMjYSicRGIpFYJBJZ20dYia1EIrNzhw4L7ML5TtqcfHd+MmTdM6Z2alIca1Uz
VKkeQqp7n6rOp9CWKUSn8vGRymaTq++qDPP0PaqG717Vv7pd3dSmaxALdAKs8h6fdZWdg5Z1OYksFQAN
gJo+EDXxGkDeo/m9vH8zAEDaPNUYdvm+3CP7WJ4EgB49qlvKIAHgsOucZtM8pUaRl/8YqqlS4C2KocrO
AGqhWTxAHt1DgbWYwuiTk8774WxG3NAGEBKAvV4Rh9kDgFkPHszze94AoZB9+cFVmVlr/kTk+iiD0jgc
+qACwP7df6WMQeGgdRhzPUkTZc2bPMVXo8MEBEM7xgtAJoxZ2COXxUlA6IdlgukEYDy5SsvA6jQR8QoF
ULZ3+Z2njLk2AIYjZF5mPfyfNoA0EQCzYKY/5uv6kWtvqXCSAeMIANlXaF8iolYTURFm1h1g4r5t5dpM
NMtE3abC5ekHXGu8spQLKHAAAAAASUVORK5CYIIL
</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="SharedImageCollection.Timestamp" type="System.DateTime, mscorlib">
<value>01/23/2018 21:33:37</value>
<value>08/13/2019 13:15:17</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="SharedImageCollection.ImageSize" type="System.Drawing.Size, System.Drawing">

View File

@@ -41,15 +41,19 @@
this.colOutName = new DevExpress.XtraGrid.Columns.GridColumn();
this.colOutFav = new DevExpress.XtraGrid.Columns.GridColumn();
this.repositoryItemCheckedComboBoxEdit1 = new DevExpress.XtraEditors.Repository.RepositoryItemCheckedComboBoxEdit();
this.colUid1 = new DevExpress.XtraGrid.Columns.GridColumn();
this.colOutLock = new DevExpress.XtraGrid.Columns.GridColumn();
this.colOutSkip = new DevExpress.XtraGrid.Columns.GridColumn();
this.colOutHide = new DevExpress.XtraGrid.Columns.GridColumn();
this.colOutDeleted = new DevExpress.XtraGrid.Columns.GridColumn();
this.colUid1 = new DevExpress.XtraGrid.Columns.GridColumn();
this.repositoryItemTextEdit1 = new DevExpress.XtraEditors.Repository.RepositoryItemTextEdit();
this.lblHotkeyLeft = new DevExpress.XtraEditors.LabelControl();
this.pnlEditControls = new DevExpress.XtraEditors.PanelControl();
this.btnToggleLock = new DevExpress.XtraEditors.SimpleButton();
this.btnToggleFavH = new DevExpress.XtraEditors.SimpleButton();
this.globalImageCollection1 = new ChanSort.Ui.GlobalImageCollection(this.components);
this.btnToggleFavG = new DevExpress.XtraEditors.SimpleButton();
this.btnToggleFavF = new DevExpress.XtraEditors.SimpleButton();
this.btnToggleLock = new DevExpress.XtraEditors.SimpleButton();
this.btnToggleFavE = new DevExpress.XtraEditors.SimpleButton();
this.btnToggleFavD = new DevExpress.XtraEditors.SimpleButton();
this.btnToggleFavC = new DevExpress.XtraEditors.SimpleButton();
@@ -75,6 +79,7 @@
this.colLock = new DevExpress.XtraGrid.Columns.GridColumn();
this.colSkip = new DevExpress.XtraGrid.Columns.GridColumn();
this.colHidden = new DevExpress.XtraGrid.Columns.GridColumn();
this.colDeleted = new DevExpress.XtraGrid.Columns.GridColumn();
this.colEncrypted = new DevExpress.XtraGrid.Columns.GridColumn();
this.colServiceType = new DevExpress.XtraGrid.Columns.GridColumn();
this.colServiceTypeName = new DevExpress.XtraGrid.Columns.GridColumn();
@@ -126,18 +131,9 @@
this.miSort = new DevExpress.XtraBars.BarButtonItem();
this.miRenum = new DevExpress.XtraBars.BarButtonItem();
this.miRenumFavByPrNr = new DevExpress.XtraBars.BarButtonItem();
this.miCopyCsv = new DevExpress.XtraBars.BarButtonItem();
this.mnuFavSet = new DevExpress.XtraBars.BarSubItem();
this.miFavASet = new DevExpress.XtraBars.BarButtonItem();
this.miFavBSet = new DevExpress.XtraBars.BarButtonItem();
this.miFavCSet = new DevExpress.XtraBars.BarButtonItem();
this.miFavDSet = new DevExpress.XtraBars.BarButtonItem();
this.miFavESet = new DevExpress.XtraBars.BarButtonItem();
this.mnuFavUnset = new DevExpress.XtraBars.BarSubItem();
this.miFavAUnset = new DevExpress.XtraBars.BarButtonItem();
this.miFavBUnset = new DevExpress.XtraBars.BarButtonItem();
this.miFavCUnset = new DevExpress.XtraBars.BarButtonItem();
this.miFavDUnset = new DevExpress.XtraBars.BarButtonItem();
this.miFavEUnset = new DevExpress.XtraBars.BarButtonItem();
this.miLockOn = new DevExpress.XtraBars.BarButtonItem();
this.miLockOff = new DevExpress.XtraBars.BarButtonItem();
this.miSkipOn = new DevExpress.XtraBars.BarButtonItem();
@@ -208,8 +204,6 @@
this.pageProgNr = new DevExpress.XtraTab.XtraTabPage();
this.popupInputSource = new DevExpress.XtraBars.PopupMenu(this.components);
this.popupFavList = new DevExpress.XtraBars.PopupMenu(this.components);
this.colOutDeleted = new DevExpress.XtraGrid.Columns.GridColumn();
this.colDeleted = new DevExpress.XtraGrid.Columns.GridColumn();
((System.ComponentModel.ISupportInitialize)(this.splitContainerControl1)).BeginInit();
this.splitContainerControl1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.grpOutputList)).BeginInit();
@@ -395,13 +389,6 @@
this.repositoryItemCheckedComboBoxEdit1.ShowPopupCloseButton = false;
this.repositoryItemCheckedComboBoxEdit1.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard;
//
// colUid1
//
resources.ApplyResources(this.colUid1, "colUid1");
this.colUid1.FieldName = "Uid";
this.colUid1.Name = "colUid1";
this.colUid1.OptionsColumn.AllowEdit = false;
//
// colOutLock
//
resources.ApplyResources(this.colOutLock, "colOutLock");
@@ -420,6 +407,19 @@
this.colOutHide.FieldName = "Hidden";
this.colOutHide.Name = "colOutHide";
//
// colOutDeleted
//
resources.ApplyResources(this.colOutDeleted, "colOutDeleted");
this.colOutDeleted.FieldName = "IsDeleted";
this.colOutDeleted.Name = "colOutDeleted";
//
// colUid1
//
resources.ApplyResources(this.colUid1, "colUid1");
this.colUid1.FieldName = "Uid";
this.colUid1.Name = "colUid1";
this.colUid1.OptionsColumn.AllowEdit = false;
//
// repositoryItemTextEdit1
//
resources.ApplyResources(this.repositoryItemTextEdit1, "repositoryItemTextEdit1");
@@ -437,6 +437,9 @@
//
// pnlEditControls
//
this.pnlEditControls.Controls.Add(this.btnToggleFavH);
this.pnlEditControls.Controls.Add(this.btnToggleFavG);
this.pnlEditControls.Controls.Add(this.btnToggleFavF);
this.pnlEditControls.Controls.Add(this.btnToggleLock);
this.pnlEditControls.Controls.Add(this.btnToggleFavE);
this.pnlEditControls.Controls.Add(this.btnToggleFavD);
@@ -451,6 +454,28 @@
resources.ApplyResources(this.pnlEditControls, "pnlEditControls");
this.pnlEditControls.Name = "pnlEditControls";
//
// btnToggleFavH
//
resources.ApplyResources(this.btnToggleFavH, "btnToggleFavH");
this.btnToggleFavH.ImageOptions.ImageList = this.globalImageCollection1;
this.btnToggleFavH.Name = "btnToggleFavH";
this.btnToggleFavH.Tag = "";
this.btnToggleFavH.Click += new System.EventHandler(this.btnToggleFav_Click);
//
// btnToggleFavG
//
resources.ApplyResources(this.btnToggleFavG, "btnToggleFavG");
this.btnToggleFavG.ImageOptions.ImageList = this.globalImageCollection1;
this.btnToggleFavG.Name = "btnToggleFavG";
this.btnToggleFavG.Click += new System.EventHandler(this.btnToggleFav_Click);
//
// btnToggleFavF
//
resources.ApplyResources(this.btnToggleFavF, "btnToggleFavF");
this.btnToggleFavF.ImageOptions.ImageList = this.globalImageCollection1;
this.btnToggleFavF.Name = "btnToggleFavF";
this.btnToggleFavF.Click += new System.EventHandler(this.btnToggleFav_Click);
//
// btnToggleLock
//
this.btnToggleLock.ImageOptions.ImageIndex = ((int)(resources.GetObject("btnToggleLock.ImageOptions.ImageIndex")));
@@ -733,6 +758,12 @@
this.colHidden.FieldName = "Hidden";
this.colHidden.Name = "colHidden";
//
// colDeleted
//
resources.ApplyResources(this.colDeleted, "colDeleted");
this.colDeleted.FieldName = "IsDeleted";
this.colDeleted.Name = "colDeleted";
//
// colEncrypted
//
resources.ApplyResources(this.colEncrypted, "colEncrypted");
@@ -1006,16 +1037,6 @@
this.miGotoLeftList,
this.miRightListFilter,
this.miGotoRightList,
this.miFavASet,
this.miFavBSet,
this.miFavCSet,
this.miFavDSet,
this.miFavESet,
this.miFavAUnset,
this.miFavBUnset,
this.miFavCUnset,
this.miFavDUnset,
this.miFavEUnset,
this.miSelectFavList0,
this.miSelectFavListA,
this.miSelectFavListB,
@@ -1032,9 +1053,10 @@
this.miRomanian,
this.miExplorerIntegration,
this.miCheckUpdates,
this.miUtf8Charset});
this.miUtf8Charset,
this.miCopyCsv});
this.barManager1.MainMenu = this.bar1;
this.barManager1.MaxItemId = 100;
this.barManager1.MaxItemId = 101;
this.barManager1.ShowFullMenus = true;
//
// bar1
@@ -1229,17 +1251,18 @@
new DevExpress.XtraBars.LinkPersistInfo(this.miAddChannel),
new DevExpress.XtraBars.LinkPersistInfo(this.miRemove),
new DevExpress.XtraBars.LinkPersistInfo(this.miRenameChannel),
new DevExpress.XtraBars.LinkPersistInfo(this.miSort),
new DevExpress.XtraBars.LinkPersistInfo(this.miRenum),
new DevExpress.XtraBars.LinkPersistInfo(this.miRenumFavByPrNr),
new DevExpress.XtraBars.LinkPersistInfo(DevExpress.XtraBars.BarLinkUserDefines.PaintStyle, this.mnuFavSet, "", true, true, true, 0, null, DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph),
new DevExpress.XtraBars.LinkPersistInfo(DevExpress.XtraBars.BarLinkUserDefines.PaintStyle, this.mnuFavSet, DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph),
new DevExpress.XtraBars.LinkPersistInfo(this.mnuFavUnset),
new DevExpress.XtraBars.LinkPersistInfo(this.miLockOn, true),
new DevExpress.XtraBars.LinkPersistInfo(this.miLockOn),
new DevExpress.XtraBars.LinkPersistInfo(this.miLockOff),
new DevExpress.XtraBars.LinkPersistInfo(this.miSkipOn, true),
new DevExpress.XtraBars.LinkPersistInfo(this.miSkipOn),
new DevExpress.XtraBars.LinkPersistInfo(this.miSkipOff),
new DevExpress.XtraBars.LinkPersistInfo(this.miHideOn, true),
new DevExpress.XtraBars.LinkPersistInfo(this.miHideOff)});
new DevExpress.XtraBars.LinkPersistInfo(this.miHideOn),
new DevExpress.XtraBars.LinkPersistInfo(this.miHideOff),
new DevExpress.XtraBars.LinkPersistInfo(this.miRenum, true),
new DevExpress.XtraBars.LinkPersistInfo(this.miSort),
new DevExpress.XtraBars.LinkPersistInfo(this.miRenumFavByPrNr),
new DevExpress.XtraBars.LinkPersistInfo(this.miCopyCsv)});
this.miEdit.Name = "miEdit";
//
// miAddChannel
@@ -1297,139 +1320,32 @@
this.miRenumFavByPrNr.Name = "miRenumFavByPrNr";
this.miRenumFavByPrNr.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miRenumFavByPrNr_ItemClick);
//
// miCopyCsv
//
resources.ApplyResources(this.miCopyCsv, "miCopyCsv");
this.miCopyCsv.Id = 100;
this.miCopyCsv.ImageOptions.ImageIndex = ((int)(resources.GetObject("miCopyCsv.ImageOptions.ImageIndex")));
this.miCopyCsv.ItemShortcut = new DevExpress.XtraBars.BarShortcut(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift)
| System.Windows.Forms.Keys.C));
this.miCopyCsv.Name = "miCopyCsv";
this.miCopyCsv.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miCopyCsv_ItemClick);
//
// mnuFavSet
//
resources.ApplyResources(this.mnuFavSet, "mnuFavSet");
this.mnuFavSet.CategoryGuid = new System.Guid("d7eec464-59c9-4f45-88aa-602e64c81cc0");
this.mnuFavSet.Id = 37;
this.mnuFavSet.ImageOptions.ImageIndex = ((int)(resources.GetObject("mnuFavSet.ImageOptions.ImageIndex")));
this.mnuFavSet.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] {
new DevExpress.XtraBars.LinkPersistInfo(this.miFavASet),
new DevExpress.XtraBars.LinkPersistInfo(this.miFavBSet),
new DevExpress.XtraBars.LinkPersistInfo(this.miFavCSet),
new DevExpress.XtraBars.LinkPersistInfo(this.miFavDSet),
new DevExpress.XtraBars.LinkPersistInfo(this.miFavESet)});
this.mnuFavSet.Name = "mnuFavSet";
this.mnuFavSet.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionInMenu;
//
// miFavASet
//
resources.ApplyResources(this.miFavASet, "miFavASet");
this.miFavASet.CategoryGuid = new System.Guid("d7eec464-59c9-4f45-88aa-602e64c81cc0");
this.miFavASet.Id = 73;
this.miFavASet.ItemShortcut = new DevExpress.XtraBars.BarShortcut((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.D1));
this.miFavASet.Name = "miFavASet";
this.miFavASet.Tag = "A";
this.miFavASet.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miFavSet_ItemClick);
//
// miFavBSet
//
resources.ApplyResources(this.miFavBSet, "miFavBSet");
this.miFavBSet.CategoryGuid = new System.Guid("d7eec464-59c9-4f45-88aa-602e64c81cc0");
this.miFavBSet.Id = 74;
this.miFavBSet.ItemShortcut = new DevExpress.XtraBars.BarShortcut((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.D2));
this.miFavBSet.Name = "miFavBSet";
this.miFavBSet.Tag = "B";
this.miFavBSet.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miFavSet_ItemClick);
//
// miFavCSet
//
resources.ApplyResources(this.miFavCSet, "miFavCSet");
this.miFavCSet.CategoryGuid = new System.Guid("d7eec464-59c9-4f45-88aa-602e64c81cc0");
this.miFavCSet.Id = 75;
this.miFavCSet.ItemShortcut = new DevExpress.XtraBars.BarShortcut((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.D3));
this.miFavCSet.Name = "miFavCSet";
this.miFavCSet.Tag = "C";
this.miFavCSet.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miFavSet_ItemClick);
//
// miFavDSet
//
resources.ApplyResources(this.miFavDSet, "miFavDSet");
this.miFavDSet.CategoryGuid = new System.Guid("d7eec464-59c9-4f45-88aa-602e64c81cc0");
this.miFavDSet.Id = 76;
this.miFavDSet.ItemShortcut = new DevExpress.XtraBars.BarShortcut((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.D4));
this.miFavDSet.Name = "miFavDSet";
this.miFavDSet.Tag = "D";
this.miFavDSet.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miFavSet_ItemClick);
//
// miFavESet
//
resources.ApplyResources(this.miFavESet, "miFavESet");
this.miFavESet.CategoryGuid = new System.Guid("d7eec464-59c9-4f45-88aa-602e64c81cc0");
this.miFavESet.Id = 77;
this.miFavESet.ItemShortcut = new DevExpress.XtraBars.BarShortcut((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.D5));
this.miFavESet.Name = "miFavESet";
this.miFavESet.Tag = "E";
this.miFavESet.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miFavSet_ItemClick);
//
// mnuFavUnset
//
resources.ApplyResources(this.mnuFavUnset, "mnuFavUnset");
this.mnuFavUnset.CategoryGuid = new System.Guid("d7eec464-59c9-4f45-88aa-602e64c81cc0");
this.mnuFavUnset.Id = 38;
this.mnuFavUnset.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] {
new DevExpress.XtraBars.LinkPersistInfo(this.miFavAUnset),
new DevExpress.XtraBars.LinkPersistInfo(this.miFavBUnset),
new DevExpress.XtraBars.LinkPersistInfo(this.miFavCUnset),
new DevExpress.XtraBars.LinkPersistInfo(this.miFavDUnset),
new DevExpress.XtraBars.LinkPersistInfo(this.miFavEUnset)});
this.mnuFavUnset.Name = "mnuFavUnset";
//
// miFavAUnset
//
resources.ApplyResources(this.miFavAUnset, "miFavAUnset");
this.miFavAUnset.CategoryGuid = new System.Guid("d7eec464-59c9-4f45-88aa-602e64c81cc0");
this.miFavAUnset.Id = 78;
this.miFavAUnset.ItemShortcut = new DevExpress.XtraBars.BarShortcut(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift)
| System.Windows.Forms.Keys.D1));
this.miFavAUnset.Name = "miFavAUnset";
this.miFavAUnset.Tag = "A";
this.miFavAUnset.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miFavUnset_ItemClick);
//
// miFavBUnset
//
resources.ApplyResources(this.miFavBUnset, "miFavBUnset");
this.miFavBUnset.CategoryGuid = new System.Guid("d7eec464-59c9-4f45-88aa-602e64c81cc0");
this.miFavBUnset.Id = 79;
this.miFavBUnset.ItemShortcut = new DevExpress.XtraBars.BarShortcut(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift)
| System.Windows.Forms.Keys.D2));
this.miFavBUnset.Name = "miFavBUnset";
this.miFavBUnset.Tag = "B";
this.miFavBUnset.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miFavUnset_ItemClick);
//
// miFavCUnset
//
resources.ApplyResources(this.miFavCUnset, "miFavCUnset");
this.miFavCUnset.CategoryGuid = new System.Guid("d7eec464-59c9-4f45-88aa-602e64c81cc0");
this.miFavCUnset.Id = 80;
this.miFavCUnset.ItemShortcut = new DevExpress.XtraBars.BarShortcut(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift)
| System.Windows.Forms.Keys.D3));
this.miFavCUnset.Name = "miFavCUnset";
this.miFavCUnset.Tag = "C";
this.miFavCUnset.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miFavUnset_ItemClick);
//
// miFavDUnset
//
resources.ApplyResources(this.miFavDUnset, "miFavDUnset");
this.miFavDUnset.CategoryGuid = new System.Guid("d7eec464-59c9-4f45-88aa-602e64c81cc0");
this.miFavDUnset.Id = 81;
this.miFavDUnset.ItemShortcut = new DevExpress.XtraBars.BarShortcut(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift)
| System.Windows.Forms.Keys.D4));
this.miFavDUnset.Name = "miFavDUnset";
this.miFavDUnset.Tag = "D";
this.miFavDUnset.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miFavUnset_ItemClick);
//
// miFavEUnset
//
resources.ApplyResources(this.miFavEUnset, "miFavEUnset");
this.miFavEUnset.CategoryGuid = new System.Guid("d7eec464-59c9-4f45-88aa-602e64c81cc0");
this.miFavEUnset.Id = 82;
this.miFavEUnset.ItemShortcut = new DevExpress.XtraBars.BarShortcut(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift)
| System.Windows.Forms.Keys.D5));
this.miFavEUnset.Name = "miFavEUnset";
this.miFavEUnset.Tag = "E";
this.miFavEUnset.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miFavUnset_ItemClick);
//
// miLockOn
//
resources.ApplyResources(this.miLockOn, "miLockOn");
@@ -2020,16 +1936,17 @@
new DevExpress.XtraBars.LinkPersistInfo(this.miAddChannel),
new DevExpress.XtraBars.LinkPersistInfo(this.miRemove),
new DevExpress.XtraBars.LinkPersistInfo(this.miRenameChannel),
new DevExpress.XtraBars.LinkPersistInfo(this.miSort),
new DevExpress.XtraBars.LinkPersistInfo(this.miRenum),
new DevExpress.XtraBars.LinkPersistInfo(DevExpress.XtraBars.BarLinkUserDefines.PaintStyle, this.mnuFavSet, "", true, true, true, 0, null, DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph),
new DevExpress.XtraBars.LinkPersistInfo(DevExpress.XtraBars.BarLinkUserDefines.PaintStyle, this.mnuFavSet, DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph),
new DevExpress.XtraBars.LinkPersistInfo(this.mnuFavUnset),
new DevExpress.XtraBars.LinkPersistInfo(this.miLockOn, true),
new DevExpress.XtraBars.LinkPersistInfo(this.miLockOn),
new DevExpress.XtraBars.LinkPersistInfo(this.miLockOff),
new DevExpress.XtraBars.LinkPersistInfo(this.miSkipOn, true),
new DevExpress.XtraBars.LinkPersistInfo(this.miSkipOn),
new DevExpress.XtraBars.LinkPersistInfo(this.miSkipOff),
new DevExpress.XtraBars.LinkPersistInfo(this.miHideOn, true),
new DevExpress.XtraBars.LinkPersistInfo(this.miHideOff)});
new DevExpress.XtraBars.LinkPersistInfo(this.miHideOn),
new DevExpress.XtraBars.LinkPersistInfo(this.miHideOff),
new DevExpress.XtraBars.LinkPersistInfo(this.miRenum, true),
new DevExpress.XtraBars.LinkPersistInfo(this.miSort),
new DevExpress.XtraBars.LinkPersistInfo(this.miCopyCsv)});
this.popupContext.Manager = this.barManager1;
this.popupContext.Name = "popupContext";
//
@@ -2077,18 +1994,6 @@
this.popupFavList.Name = "popupFavList";
this.popupFavList.ShowCaption = true;
//
// colOutDeleted
//
resources.ApplyResources(this.colOutDeleted, "colOutDeleted");
this.colOutDeleted.FieldName = "IsDeleted";
this.colOutDeleted.Name = "colOutDeleted";
//
// colDeleted
//
resources.ApplyResources(this.colDeleted, "colDeleted");
this.colDeleted.FieldName = "IsDeleted";
this.colDeleted.Name = "colDeleted";
//
// MainForm
//
this.AllowDrop = true;
@@ -2297,16 +2202,6 @@
private DevExpress.XtraBars.BarButtonItem miGotoLeftList;
private DevExpress.XtraBars.BarButtonItem miRightListFilter;
private DevExpress.XtraBars.BarButtonItem miGotoRightList;
private DevExpress.XtraBars.BarButtonItem miFavASet;
private DevExpress.XtraBars.BarButtonItem miFavBSet;
private DevExpress.XtraBars.BarButtonItem miFavCSet;
private DevExpress.XtraBars.BarButtonItem miFavDSet;
private DevExpress.XtraBars.BarButtonItem miFavESet;
private DevExpress.XtraBars.BarButtonItem miFavAUnset;
private DevExpress.XtraBars.BarButtonItem miFavBUnset;
private DevExpress.XtraBars.BarButtonItem miFavCUnset;
private DevExpress.XtraBars.BarButtonItem miFavDUnset;
private DevExpress.XtraBars.BarButtonItem miFavEUnset;
private DevExpress.XtraBars.PopupMenu popupInputSource;
private DevExpress.XtraBars.PopupMenu popupFavList;
private DevExpress.XtraBars.BarButtonItem miSelectFavList0;
@@ -2333,6 +2228,10 @@
private DevExpress.XtraBars.BarButtonItem miUtf8Charset;
private DevExpress.XtraGrid.Columns.GridColumn colOutDeleted;
private DevExpress.XtraGrid.Columns.GridColumn colDeleted;
private DevExpress.XtraEditors.SimpleButton btnToggleFavH;
private DevExpress.XtraEditors.SimpleButton btnToggleFavG;
private DevExpress.XtraEditors.SimpleButton btnToggleFavF;
private DevExpress.XtraBars.BarButtonItem miCopyCsv;
}
}

View File

@@ -21,6 +21,7 @@ using DevExpress.Utils;
using DevExpress.XtraBars;
using DevExpress.XtraEditors;
using DevExpress.XtraEditors.Controls;
using DevExpress.XtraEditors.Repository;
using DevExpress.XtraGrid;
using DevExpress.XtraGrid.Columns;
using DevExpress.XtraGrid.Views.Base;
@@ -412,31 +413,35 @@ namespace ChanSort.Ui
private void UpdateFavoritesEditor(Favorites favorites)
{
var miSet = new[] {this.miFavASet, this.miFavBSet, this.miFavCSet, this.miFavDSet, this.miFavESet};
var miUnset = new[] { this.miFavAUnset, this.miFavBUnset, this.miFavCUnset, this.miFavDUnset, this.miFavEUnset };
foreach(var link in this.mnuFavSet.ItemLinks.ToList())
link.Item?.Dispose();
foreach (var link in this.mnuFavUnset.ItemLinks.ToList())
link.Item?.Dispose();
this.repositoryItemCheckedComboBoxEdit1.Items.Clear();
this.repositoryItemCheckedComboBoxEdit2.Items.Clear();
byte mask = 0x01;
var regex = "[";
var favCount = 0;
for (var bit = 0; bit < 5; bit++, mask <<= 1)
for (var favMask = (uint)favorites; (favMask & 1) != 0; favMask >>= 1)
{
if (((int) favorites & mask) != 0)
{
var c = (char) ('A' + bit);
this.repositoryItemCheckedComboBoxEdit1.Items.Add(c);
this.repositoryItemCheckedComboBoxEdit2.Items.Add(c);
miSet[bit].Visibility = BarItemVisibility.Always;
miUnset[bit].Visibility = BarItemVisibility.Always;
regex += c;
++favCount;
}
else
{
miSet[bit].Visibility = BarItemVisibility.Never;
miUnset[bit].Visibility = BarItemVisibility.Never;
}
var c = (char) ('A' + favCount);
++favCount;
this.repositoryItemCheckedComboBoxEdit1.Items.Add(c);
this.repositoryItemCheckedComboBoxEdit2.Items.Add(c);
var miSet = new BarButtonItem(this.barManager1, "&" + c);
miSet.Tag = c.ToString();
miSet.ItemShortcut = new BarShortcut(Keys.Control | (Keys)((int)Keys.D0 + favCount%10));
miSet.ItemClick += this.miFavSet_ItemClick;
this.mnuFavSet.AddItem(miSet);
var miUnset = new BarButtonItem(this.barManager1, "&" + c);
miUnset.Tag = c.ToString();
miUnset.ItemShortcut = new BarShortcut(Keys.Control | Keys.Shift | (Keys)((int)Keys.D0 + favCount%10));
miUnset.ItemClick += this.miFavUnset_ItemClick;
this.mnuFavUnset.AddItem(miUnset);
regex += c;
}
regex += "]*";
this.repositoryItemCheckedComboBoxEdit1.Mask.EditMask = regex;
@@ -1511,14 +1516,14 @@ namespace ChanSort.Ui
private void SetFavorite(string fav, bool set)
{
if (string.IsNullOrEmpty(fav)) return;
var ch = char.ToUpper(fav[0]);
if (ch < 'A' || ch > 'E' || this.subListIndex == ch - 'A' + 1) return;
int idx = char.ToUpper(fav[0]) - 'A';
if (idx < 0 || idx >= this.mnuFavSet.ItemLinks.Count || this.subListIndex == idx + 1) return;
var list = this.GetSelectedChannels(this.lastFocusedGrid);
if (list.Count == 0) return;
this.gviewRight.BeginDataUpdate();
this.gviewLeft.BeginDataUpdate();
this.Editor.SetFavorites(list, (Favorites) (1 << (ch - 'A')), set);
this.Editor.SetFavorites(list, (Favorites) (1 << idx), set);
this.gviewRight.EndDataUpdate();
this.gviewLeft.EndDataUpdate();
}
@@ -1602,6 +1607,9 @@ namespace ChanSort.Ui
this.btnToggleFavC.Enabled = mayEdit && (this.DataRoot.SupportedFavorites & Favorites.C) != 0 && this.subListIndex != 3;
this.btnToggleFavD.Enabled = mayEdit && (this.DataRoot.SupportedFavorites & Favorites.D) != 0 && this.subListIndex != 4;
this.btnToggleFavE.Enabled = mayEdit && (this.DataRoot.SupportedFavorites & Favorites.E) != 0 && this.subListIndex != 5;
this.btnToggleFavF.Enabled = mayEdit && (this.DataRoot.SupportedFavorites & Favorites.F) != 0 && this.subListIndex != 6;
this.btnToggleFavG.Enabled = mayEdit && (this.DataRoot.SupportedFavorites & Favorites.G) != 0 && this.subListIndex != 7;
this.btnToggleFavH.Enabled = mayEdit && (this.DataRoot.SupportedFavorites & Favorites.H) != 0 && this.subListIndex != 8;
this.btnToggleLock.Enabled = mayEdit;
this.miReload.Enabled = fileLoaded;
@@ -1614,7 +1622,7 @@ namespace ChanSort.Ui
this.miExcelExport.Enabled = fileLoaded;
this.miPrint.Enabled = fileLoaded;
this.miAddChannel.Enabled = isRight;
this.miAddChannel.Enabled = fileLoaded && isRight;
var visRight = isRight ? BarItemVisibility.Always : BarItemVisibility.Never;
var visLeft = isRight ? BarItemVisibility.Never : BarItemVisibility.Always;
@@ -1853,6 +1861,24 @@ namespace ChanSort.Ui
#endregion
#region GetFavString()
private string GetFavString(Favorites fav)
{
if (fav == 0)
return string.Empty;
var sb = new StringBuilder();
int i = 0;
for (var mask = (int)fav; mask != 0; mask >>= 1)
{
if ((mask & 1) != 0)
sb.Append((char)('A' + i));
++i;
}
return sb.ToString();
}
#endregion
// UI events
#region MainForm_Load
@@ -2185,9 +2211,8 @@ namespace ChanSort.Ui
{
if (e.Column == this.colOutFav)
{
if (!(e.Value is Favorites)) return;
if ((Favorites) e.Value == 0)
e.DisplayText = string.Empty;
if (e.Value is Favorites fav)
e.DisplayText = GetFavString(fav);
}
}
@@ -2337,9 +2362,8 @@ namespace ChanSort.Ui
}
else if (e.Column == this.colFavorites)
{
if (!(e.Value is Favorites)) return;
if ((Favorites) e.Value == 0)
e.DisplayText = string.Empty;
if (e.Value is Favorites fav)
e.DisplayText = GetFavString(fav);
}
}
@@ -2787,6 +2811,38 @@ namespace ChanSort.Ui
#region Edit menu
private void miCopyCsv_ItemClick(object sender, ItemClickEventArgs e)
{
var gview = this.gridRight.ContainsFocus ? this.gviewRight : this.gviewLeft;
var cols = gview.VisibleColumns;
var sb = new StringBuilder();
foreach (GridColumn col in cols)
sb.Append(col.Caption).Append('\t');
sb[sb.Length - 1] = '\n';
for (int i = 0, c = gview.RowCount; i < c; i++)
{
foreach (GridColumn col in cols)
{
if (col.ColumnType == typeof(bool))
{
var val = gview.GetRowCellValue(i, col);
if (val is bool b && b)
sb.Append('x');
sb.Append('\t');
}
else
{
var val = gview.GetRowCellDisplayText(i, col);
sb.Append(val).Append('\t');
}
}
sb[sb.Length - 1] = '\n';
}
Clipboard.SetText(sb.ToString(), TextDataFormat.Text);
}
private void miAddChannel_ItemClick(object sender, ItemClickEventArgs e)
{
this.TryExecute(this.AddChannels);
@@ -3210,5 +3266,6 @@ namespace ChanSort.Ui
}
#endregion
}
}

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
@@ -417,36 +417,6 @@
<data name="miExcelExport.Caption" xml:space="preserve">
<value>Exportovat seznam do aplikace Excel...</value>
</data>
<data name="miFavASet.Caption" xml:space="preserve">
<value>&amp;A</value>
</data>
<data name="miFavAUnset.Caption" xml:space="preserve">
<value>&amp;A</value>
</data>
<data name="miFavBSet.Caption" xml:space="preserve">
<value>&amp;B</value>
</data>
<data name="miFavBUnset.Caption" xml:space="preserve">
<value>&amp;B</value>
</data>
<data name="miFavCSet.Caption" xml:space="preserve">
<value>&amp;C</value>
</data>
<data name="miFavCUnset.Caption" xml:space="preserve">
<value>&amp;C</value>
</data>
<data name="miFavDSet.Caption" xml:space="preserve">
<value>&amp;D</value>
</data>
<data name="miFavDUnset.Caption" xml:space="preserve">
<value>&amp;D</value>
</data>
<data name="miFavESet.Caption" xml:space="preserve">
<value>&amp;E</value>
</data>
<data name="miFavEUnset.Caption" xml:space="preserve">
<value>&amp;E</value>
</data>
<data name="miFile.Caption" xml:space="preserve">
<value>&amp;Soubor</value>
</data>

View File

@@ -634,4 +634,13 @@ speziellen Anbieter, Satelliten oder Länderlisten aus.</value>
<data name="miCheckUpdates.Caption" xml:space="preserve">
<value>Nach Programmupdates suchen</value>
</data>
<data name="colOutDeleted.Caption" xml:space="preserve">
<value>Gelöscht</value>
</data>
<data name="colDeleted.Caption" xml:space="preserve">
<value>Gelöscht</value>
</data>
<data name="miCopyCsv.Caption" xml:space="preserve">
<value>Liste in Zwischenablage kopieren</value>
</data>
</root>

View File

@@ -311,8 +311,8 @@
<data name="&gt;&gt;lblHotkeyLeft.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="btnToggleLock.ImageOptions.ImageIndex" type="System.Int32, mscorlib">
<value>15</value>
<data name="btnToggleFavH.AccessibleDescription" xml:space="preserve">
<value>Toggle Favorite H</value>
</data>
<metadata name="globalImageCollection1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>600, 17</value>
@@ -497,63 +497,15 @@
<data name="miRenameChannel.ImageOptions.ImageIndex" type="System.Int32, mscorlib">
<value>29</value>
</data>
<data name="miSort.Caption" xml:space="preserve">
<value>Sor&amp;t channels alphabetically</value>
</data>
<data name="miSort.ImageOptions.ImageIndex" type="System.Int32, mscorlib">
<value>21</value>
</data>
<data name="miRenum.Caption" xml:space="preserve">
<value>Re&amp;number channels</value>
</data>
<data name="miRenum.ImageOptions.ImageIndex" type="System.Int32, mscorlib">
<value>22</value>
</data>
<data name="miRenumFavByPrNr.Caption" xml:space="preserve">
<value>Renumber favorites by Pr#</value>
</data>
<data name="miRenumFavByPrNr.Hint" xml:space="preserve">
<value>Uses the same Pr# in all channel and favorites lists</value>
</data>
<data name="mnuFavSet.Caption" xml:space="preserve">
<value>Add to &amp;Favorites</value>
</data>
<data name="mnuFavSet.ImageOptions.ImageIndex" type="System.Int32, mscorlib">
<value>13</value>
</data>
<data name="miFavASet.Caption" xml:space="preserve">
<value>&amp;A</value>
</data>
<data name="miFavBSet.Caption" xml:space="preserve">
<value>&amp;B</value>
</data>
<data name="miFavCSet.Caption" xml:space="preserve">
<value>&amp;C</value>
</data>
<data name="miFavDSet.Caption" xml:space="preserve">
<value>&amp;D</value>
</data>
<data name="miFavESet.Caption" xml:space="preserve">
<value>&amp;E</value>
</data>
<data name="mnuFavUnset.Caption" xml:space="preserve">
<value>Remove from Favorites</value>
</data>
<data name="miFavAUnset.Caption" xml:space="preserve">
<value>&amp;A</value>
</data>
<data name="miFavBUnset.Caption" xml:space="preserve">
<value>&amp;B</value>
</data>
<data name="miFavCUnset.Caption" xml:space="preserve">
<value>&amp;C</value>
</data>
<data name="miFavDUnset.Caption" xml:space="preserve">
<value>&amp;D</value>
</data>
<data name="miFavEUnset.Caption" xml:space="preserve">
<value>&amp;E</value>
</data>
<data name="miLockOn.Caption" xml:space="preserve">
<value>&amp;Lock channel: on</value>
</data>
@@ -581,6 +533,30 @@
<data name="miHideOff.Caption" xml:space="preserve">
<value>Hide channel: off</value>
</data>
<data name="miRenum.Caption" xml:space="preserve">
<value>Re&amp;number channels</value>
</data>
<data name="miRenum.ImageOptions.ImageIndex" type="System.Int32, mscorlib">
<value>22</value>
</data>
<data name="miSort.Caption" xml:space="preserve">
<value>Sor&amp;t channels alphabetically</value>
</data>
<data name="miSort.ImageOptions.ImageIndex" type="System.Int32, mscorlib">
<value>21</value>
</data>
<data name="miRenumFavByPrNr.Caption" xml:space="preserve">
<value>Renumber favorites by Pr#</value>
</data>
<data name="miRenumFavByPrNr.Hint" xml:space="preserve">
<value>Uses the same Pr# in all channel and favorites lists</value>
</data>
<data name="miCopyCsv.Caption" xml:space="preserve">
<value>Copy list to clipboard</value>
</data>
<data name="miCopyCsv.ImageOptions.ImageIndex" type="System.Int32, mscorlib">
<value>43</value>
</data>
<data name="barSubItem2.Caption" xml:space="preserve">
<value>TV-Set</value>
</data>
@@ -1230,12 +1206,6 @@
<data name="&gt;&gt;repositoryItemCheckedComboBoxEdit1.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.Repository.RepositoryItemCheckedComboBoxEdit, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;colUid1.Name" xml:space="preserve">
<value>colUid1</value>
</data>
<data name="&gt;&gt;colUid1.Type" xml:space="preserve">
<value>DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;colOutLock.Name" xml:space="preserve">
<value>colOutLock</value>
</data>
@@ -1254,6 +1224,18 @@
<data name="&gt;&gt;colOutHide.Type" xml:space="preserve">
<value>DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;colOutDeleted.Name" xml:space="preserve">
<value>colOutDeleted</value>
</data>
<data name="&gt;&gt;colOutDeleted.Type" xml:space="preserve">
<value>DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;colUid1.Name" xml:space="preserve">
<value>colUid1</value>
</data>
<data name="&gt;&gt;colUid1.Type" xml:space="preserve">
<value>DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;repositoryItemTextEdit1.Name" xml:space="preserve">
<value>repositoryItemTextEdit1</value>
</data>
@@ -1264,7 +1246,7 @@
<value>globalImageCollection1</value>
</data>
<data name="&gt;&gt;globalImageCollection1.Type" xml:space="preserve">
<value>ChanSort.Ui.GlobalImageCollection, ChanSort, Version=1.0.7161.41242, Culture=neutral, PublicKeyToken=null</value>
<value>ChanSort.Ui.GlobalImageCollection, ChanSort, Version=1.0.7164.24093, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;gviewRight.Name" xml:space="preserve">
<value>gviewRight</value>
@@ -1344,6 +1326,12 @@
<data name="&gt;&gt;colHidden.Type" xml:space="preserve">
<value>DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;colDeleted.Name" xml:space="preserve">
<value>colDeleted</value>
</data>
<data name="&gt;&gt;colDeleted.Type" xml:space="preserve">
<value>DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;colEncrypted.Name" xml:space="preserve">
<value>colEncrypted</value>
</data>
@@ -1608,78 +1596,24 @@
<data name="&gt;&gt;miRenumFavByPrNr.Type" xml:space="preserve">
<value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;miCopyCsv.Name" xml:space="preserve">
<value>miCopyCsv</value>
</data>
<data name="&gt;&gt;miCopyCsv.Type" xml:space="preserve">
<value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;mnuFavSet.Name" xml:space="preserve">
<value>mnuFavSet</value>
</data>
<data name="&gt;&gt;mnuFavSet.Type" xml:space="preserve">
<value>DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;miFavASet.Name" xml:space="preserve">
<value>miFavASet</value>
</data>
<data name="&gt;&gt;miFavASet.Type" xml:space="preserve">
<value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;miFavBSet.Name" xml:space="preserve">
<value>miFavBSet</value>
</data>
<data name="&gt;&gt;miFavBSet.Type" xml:space="preserve">
<value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;miFavCSet.Name" xml:space="preserve">
<value>miFavCSet</value>
</data>
<data name="&gt;&gt;miFavCSet.Type" xml:space="preserve">
<value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;miFavDSet.Name" xml:space="preserve">
<value>miFavDSet</value>
</data>
<data name="&gt;&gt;miFavDSet.Type" xml:space="preserve">
<value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;miFavESet.Name" xml:space="preserve">
<value>miFavESet</value>
</data>
<data name="&gt;&gt;miFavESet.Type" xml:space="preserve">
<value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;mnuFavUnset.Name" xml:space="preserve">
<value>mnuFavUnset</value>
</data>
<data name="&gt;&gt;mnuFavUnset.Type" xml:space="preserve">
<value>DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;miFavAUnset.Name" xml:space="preserve">
<value>miFavAUnset</value>
</data>
<data name="&gt;&gt;miFavAUnset.Type" xml:space="preserve">
<value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;miFavBUnset.Name" xml:space="preserve">
<value>miFavBUnset</value>
</data>
<data name="&gt;&gt;miFavBUnset.Type" xml:space="preserve">
<value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;miFavCUnset.Name" xml:space="preserve">
<value>miFavCUnset</value>
</data>
<data name="&gt;&gt;miFavCUnset.Type" xml:space="preserve">
<value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;miFavDUnset.Name" xml:space="preserve">
<value>miFavDUnset</value>
</data>
<data name="&gt;&gt;miFavDUnset.Type" xml:space="preserve">
<value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;miFavEUnset.Name" xml:space="preserve">
<value>miFavEUnset</value>
</data>
<data name="&gt;&gt;miFavEUnset.Type" xml:space="preserve">
<value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;miLockOn.Name" xml:space="preserve">
<value>miLockOn</value>
</data>
@@ -1992,18 +1926,6 @@
<data name="&gt;&gt;popupFavList.Type" xml:space="preserve">
<value>DevExpress.XtraBars.PopupMenu, DevExpress.XtraBars.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;colOutDeleted.Name" xml:space="preserve">
<value>colOutDeleted</value>
</data>
<data name="&gt;&gt;colOutDeleted.Type" xml:space="preserve">
<value>DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;colDeleted.Name" xml:space="preserve">
<value>colDeleted</value>
</data>
<data name="&gt;&gt;colDeleted.Type" xml:space="preserve">
<value>DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>MainForm</value>
</data>
@@ -2011,14 +1933,95 @@
<value>DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="SharedImageCollection.Timestamp" type="System.DateTime, mscorlib">
<value>08/10/2019 23:05:28</value>
<value>08/13/2019 13:25:32</value>
</data>
<data name="SharedImageCollection.ImageSize" type="System.Drawing.Size, System.Drawing">
<value>16, 16</value>
</data>
<data name="btnToggleLock.Location" type="System.Drawing.Point, System.Drawing">
<data name="btnToggleFavH.Location" type="System.Drawing.Point, System.Drawing">
<value>307, 5</value>
</data>
<data name="btnToggleFavH.Size" type="System.Drawing.Size, System.Drawing">
<value>23, 23</value>
</data>
<data name="btnToggleFavH.TabIndex" type="System.Int32, mscorlib">
<value>18</value>
</data>
<data name="btnToggleFavH.Text" xml:space="preserve">
<value>±H</value>
</data>
<data name="&gt;&gt;btnToggleFavH.Name" xml:space="preserve">
<value>btnToggleFavH</value>
</data>
<data name="&gt;&gt;btnToggleFavH.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;btnToggleFavH.Parent" xml:space="preserve">
<value>pnlEditControls</value>
</data>
<data name="&gt;&gt;btnToggleFavH.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="btnToggleFavG.AccessibleDescription" xml:space="preserve">
<value>Toggle Favorite G</value>
</data>
<data name="btnToggleFavG.Location" type="System.Drawing.Point, System.Drawing">
<value>282, 5</value>
</data>
<data name="btnToggleFavG.Size" type="System.Drawing.Size, System.Drawing">
<value>23, 23</value>
</data>
<data name="btnToggleFavG.TabIndex" type="System.Int32, mscorlib">
<value>17</value>
</data>
<data name="btnToggleFavG.Text" xml:space="preserve">
<value>±G</value>
</data>
<data name="&gt;&gt;btnToggleFavG.Name" xml:space="preserve">
<value>btnToggleFavG</value>
</data>
<data name="&gt;&gt;btnToggleFavG.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;btnToggleFavG.Parent" xml:space="preserve">
<value>pnlEditControls</value>
</data>
<data name="&gt;&gt;btnToggleFavG.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="btnToggleFavF.AccessibleDescription" xml:space="preserve">
<value>Toggle Favorite F</value>
</data>
<data name="btnToggleFavF.Location" type="System.Drawing.Point, System.Drawing">
<value>257, 5</value>
</data>
<data name="btnToggleFavF.Size" type="System.Drawing.Size, System.Drawing">
<value>23, 23</value>
</data>
<data name="btnToggleFavF.TabIndex" type="System.Int32, mscorlib">
<value>16</value>
</data>
<data name="btnToggleFavF.Text" xml:space="preserve">
<value>±F</value>
</data>
<data name="&gt;&gt;btnToggleFavF.Name" xml:space="preserve">
<value>btnToggleFavF</value>
</data>
<data name="&gt;&gt;btnToggleFavF.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;btnToggleFavF.Parent" xml:space="preserve">
<value>pnlEditControls</value>
</data>
<data name="&gt;&gt;btnToggleFavF.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="btnToggleLock.ImageOptions.ImageIndex" type="System.Int32, mscorlib">
<value>15</value>
</data>
<data name="btnToggleLock.Location" type="System.Drawing.Point, System.Drawing">
<value>334, 5</value>
</data>
<data name="btnToggleLock.Size" type="System.Drawing.Size, System.Drawing">
<value>23, 23</value>
</data>
@@ -2041,7 +2044,7 @@
<value>pnlEditControls</value>
</data>
<data name="&gt;&gt;btnToggleLock.ZOrder" xml:space="preserve">
<value>0</value>
<value>3</value>
</data>
<data name="btnToggleFavE.AccessibleDescription" xml:space="preserve">
<value>Toggle Favorite E</value>
@@ -2068,7 +2071,7 @@
<value>pnlEditControls</value>
</data>
<data name="&gt;&gt;btnToggleFavE.ZOrder" xml:space="preserve">
<value>1</value>
<value>4</value>
</data>
<data name="btnToggleFavD.AccessibleDescription" xml:space="preserve">
<value>Toggle Favorite D</value>
@@ -2095,7 +2098,7 @@
<value>pnlEditControls</value>
</data>
<data name="&gt;&gt;btnToggleFavD.ZOrder" xml:space="preserve">
<value>2</value>
<value>5</value>
</data>
<data name="btnToggleFavC.AccessibleDescription" xml:space="preserve">
<value>Toggle Favorite C</value>
@@ -2122,7 +2125,7 @@
<value>pnlEditControls</value>
</data>
<data name="&gt;&gt;btnToggleFavC.ZOrder" xml:space="preserve">
<value>3</value>
<value>6</value>
</data>
<data name="btnToggleFavB.AccessibleDescription" xml:space="preserve">
<value>Toggle Favorite B</value>
@@ -2149,7 +2152,7 @@
<value>pnlEditControls</value>
</data>
<data name="&gt;&gt;btnToggleFavB.ZOrder" xml:space="preserve">
<value>4</value>
<value>7</value>
</data>
<data name="btnToggleFavA.AccessibleDescription" xml:space="preserve">
<value>Toggle Favorite A</value>
@@ -2176,7 +2179,7 @@
<value>pnlEditControls</value>
</data>
<data name="&gt;&gt;btnToggleFavA.ZOrder" xml:space="preserve">
<value>5</value>
<value>8</value>
</data>
<data name="btnClearLeftFilter.AccessibleDescription" xml:space="preserve">
<value>Remove channel filter criteria from sorted channel list</value>
@@ -2188,7 +2191,7 @@
<value>28</value>
</data>
<data name="btnClearLeftFilter.Location" type="System.Drawing.Point, System.Drawing">
<value>295, 4</value>
<value>372, 4</value>
</data>
<data name="btnClearLeftFilter.Size" type="System.Drawing.Size, System.Drawing">
<value>66, 23</value>
@@ -2212,7 +2215,7 @@
<value>pnlEditControls</value>
</data>
<data name="&gt;&gt;btnClearLeftFilter.ZOrder" xml:space="preserve">
<value>6</value>
<value>9</value>
</data>
<data name="btnRenum.ImageOptions.ImageIndex" type="System.Int32, mscorlib">
<value>22</value>
@@ -2242,7 +2245,7 @@
<value>pnlEditControls</value>
</data>
<data name="&gt;&gt;btnRenum.ZOrder" xml:space="preserve">
<value>7</value>
<value>10</value>
</data>
<data name="btnDown.ImageOptions.ImageIndex" type="System.Int32, mscorlib">
<value>25</value>
@@ -2272,7 +2275,7 @@
<value>pnlEditControls</value>
</data>
<data name="&gt;&gt;btnDown.ZOrder" xml:space="preserve">
<value>8</value>
<value>11</value>
</data>
<data name="btnUp.ImageOptions.ImageIndex" type="System.Int32, mscorlib">
<value>24</value>
@@ -2302,7 +2305,7 @@
<value>pnlEditControls</value>
</data>
<data name="&gt;&gt;btnUp.ZOrder" xml:space="preserve">
<value>9</value>
<value>12</value>
</data>
<data name="btnRemoveLeft.ImageOptions.ImageIndex" type="System.Int32, mscorlib">
<value>11</value>
@@ -2332,7 +2335,7 @@
<value>pnlEditControls</value>
</data>
<data name="&gt;&gt;btnRemoveLeft.ZOrder" xml:space="preserve">
<value>10</value>
<value>13</value>
</data>
<data name="pnlEditControls.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Top</value>

View File

@@ -228,39 +228,9 @@
<data name="mnuFavSet.Caption" xml:space="preserve">
<value>Adauga la &amp;favorite</value>
</data>
<data name="miFavASet.Caption" xml:space="preserve">
<value>&amp;A</value>
</data>
<data name="miFavBSet.Caption" xml:space="preserve">
<value>&amp;B</value>
</data>
<data name="miFavCSet.Caption" xml:space="preserve">
<value>&amp;C</value>
</data>
<data name="miFavDSet.Caption" xml:space="preserve">
<value>&amp;D</value>
</data>
<data name="miFavESet.Caption" xml:space="preserve">
<value>&amp;E</value>
</data>
<data name="mnuFavUnset.Caption" xml:space="preserve">
<value>Eliminați din Favorite</value>
</data>
<data name="miFavAUnset.Caption" xml:space="preserve">
<value>&amp;A</value>
</data>
<data name="miFavBUnset.Caption" xml:space="preserve">
<value>&amp;B</value>
</data>
<data name="miFavCUnset.Caption" xml:space="preserve">
<value>&amp;C</value>
</data>
<data name="miFavDUnset.Caption" xml:space="preserve">
<value>&amp;D</value>
</data>
<data name="miFavEUnset.Caption" xml:space="preserve">
<value>&amp;E</value>
</data>
<data name="miLockOn.Caption" xml:space="preserve">
<value>&amp;Blocați canalul: activat</value>
</data>

Binary file not shown.

After

Width:  |  Height:  |  Size: 494 B

Binary file not shown.

View File

@@ -1,6 +1,11 @@
ChanSort Change Log
===================
2019-08-13
- LG GlobalClone: added support for additional favorites (A-H) and individual fav sorting when supported by the TV
- LG GlobalClone: data/option channels were not listed before and are now shown in the TV channel list
- added function to copy list to clipboard (which can then be pasted into Excel or other programs)
2019-08-11
- Sony: DVB-T and DVB-C lists are now separated into "TV", "Radio" and "Other" lists, each with their own unique numbering
- Samsung ZIP: deleting a channel now really deletes it from the file, instead of marking it as deleted