mirror of
https://github.com/jie65535/GrasscutterCommandGenerator.git
synced 2025-06-07 22:59:14 +08:00
Add hotkey global switch
This commit is contained in:
parent
1c49c41b71
commit
749f324f7d
@ -76,6 +76,9 @@
|
||||
<setting name="IsUpgraded" serializeAs="String">
|
||||
<value>False</value>
|
||||
</setting>
|
||||
<setting name="IsHotkeyEenabled" serializeAs="String">
|
||||
<value>True</value>
|
||||
</setting>
|
||||
</GrasscutterTools.Properties.Settings>
|
||||
</userSettings>
|
||||
</configuration>
|
@ -587,6 +587,30 @@ namespace GrasscutterTools.Forms
|
||||
if (i < ListPages.Items.Count)
|
||||
ListPages.SelectedIndex = i;
|
||||
}
|
||||
else if (Common.KeyGo.IsEnabled == false)
|
||||
{
|
||||
foreach (var hotkeyItem in Common.KeyGo.Items)
|
||||
{
|
||||
if (!hotkeyItem.IsEnabled) continue;
|
||||
|
||||
var t = hotkeyItem.HotKey.LastIndexOf('+');
|
||||
var key = (t >= 0) ? hotkeyItem.HotKey.Substring(t+1) : hotkeyItem.HotKey;
|
||||
if (e.KeyCode != (Keys)Enum.Parse(typeof(Keys), key.Trim()))
|
||||
continue;
|
||||
|
||||
if (t >= 0)
|
||||
{
|
||||
if (hotkeyItem.HotKey.Contains("Ctrl") && !e.Control)
|
||||
continue;
|
||||
if (hotkeyItem.HotKey.Contains("Shift") && !e.Shift)
|
||||
continue;
|
||||
if (hotkeyItem.HotKey.Contains("Alt") && !e.Alt)
|
||||
continue;
|
||||
}
|
||||
BeginInvoke(new Func<Task>(() => RunRawCommands(hotkeyItem.Commands)));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
15
Source/GrasscutterTools/Pages/PageHotKey.Designer.cs
generated
15
Source/GrasscutterTools/Pages/PageHotKey.Designer.cs
generated
@ -34,6 +34,7 @@
|
||||
this.ColHotKey = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
this.ColCommand = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
this.GrpHotKeyList = new System.Windows.Forms.GroupBox();
|
||||
this.ChkEnableGlobal = new System.Windows.Forms.CheckBox();
|
||||
this.BtnRemove = new System.Windows.Forms.Button();
|
||||
this.BtnAddOrUpdate = new System.Windows.Forms.Button();
|
||||
this.TxtHotKey = new System.Windows.Forms.TextBox();
|
||||
@ -45,12 +46,12 @@
|
||||
//
|
||||
// LvHotKeyList
|
||||
//
|
||||
resources.ApplyResources(this.LvHotKeyList, "LvHotKeyList");
|
||||
this.LvHotKeyList.CheckBoxes = true;
|
||||
this.LvHotKeyList.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
|
||||
this.ColTag,
|
||||
this.ColHotKey,
|
||||
this.ColCommand});
|
||||
resources.ApplyResources(this.LvHotKeyList, "LvHotKeyList");
|
||||
this.LvHotKeyList.HideSelection = false;
|
||||
this.LvHotKeyList.Name = "LvHotKeyList";
|
||||
this.LvHotKeyList.UseCompatibleStateImageBehavior = false;
|
||||
@ -73,10 +74,20 @@
|
||||
// GrpHotKeyList
|
||||
//
|
||||
resources.ApplyResources(this.GrpHotKeyList, "GrpHotKeyList");
|
||||
this.GrpHotKeyList.Controls.Add(this.ChkEnableGlobal);
|
||||
this.GrpHotKeyList.Controls.Add(this.LvHotKeyList);
|
||||
this.GrpHotKeyList.Name = "GrpHotKeyList";
|
||||
this.GrpHotKeyList.TabStop = false;
|
||||
//
|
||||
// ChkEnableGlobal
|
||||
//
|
||||
resources.ApplyResources(this.ChkEnableGlobal, "ChkEnableGlobal");
|
||||
this.ChkEnableGlobal.Checked = true;
|
||||
this.ChkEnableGlobal.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.ChkEnableGlobal.Name = "ChkEnableGlobal";
|
||||
this.ChkEnableGlobal.UseVisualStyleBackColor = true;
|
||||
this.ChkEnableGlobal.CheckedChanged += new System.EventHandler(this.ChkEnableGlobal_CheckedChanged);
|
||||
//
|
||||
// BtnRemove
|
||||
//
|
||||
resources.ApplyResources(this.BtnRemove, "BtnRemove");
|
||||
@ -127,6 +138,7 @@
|
||||
this.Controls.Add(this.LblTagLabel);
|
||||
this.Name = "PageHotKey";
|
||||
this.GrpHotKeyList.ResumeLayout(false);
|
||||
this.GrpHotKeyList.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
@ -145,5 +157,6 @@
|
||||
private System.Windows.Forms.Label LblHotKeyLabel;
|
||||
private System.Windows.Forms.TextBox TxtTag;
|
||||
private System.Windows.Forms.Label LblTagLabel;
|
||||
private System.Windows.Forms.CheckBox ChkEnableGlobal;
|
||||
}
|
||||
}
|
||||
|
@ -53,6 +53,38 @@ namespace GrasscutterTools.Pages
|
||||
/// </summary>
|
||||
private bool HotKeysChanged;
|
||||
|
||||
/// <summary>
|
||||
/// 加载用户热键列表
|
||||
/// </summary>
|
||||
private List<HotKeyItem> LoadKeyItems()
|
||||
{
|
||||
List<HotKeyItem> list = null;
|
||||
try
|
||||
{
|
||||
Logger.I(TAG, "Loading HotKey json file from: " + HotKeysFilePath);
|
||||
list = JsonConvert.DeserializeObject<List<HotKeyItem>>(File.ReadAllText(HotKeysFilePath));
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.E(TAG, "Parsing HotKeys.json failed", ex);
|
||||
}
|
||||
|
||||
if (list == null || list.Count == 0)
|
||||
{
|
||||
// 默认把移动命令加到列表
|
||||
list = new List<HotKeyItem>
|
||||
{
|
||||
new("↑", "/tp ^ ^ ^10", "NumPad8", false),
|
||||
new("↓", "/tp ^ ^ ^-10", "NumPad5", false),
|
||||
new("←", "/tp ^-10 ^ ^", "NumPad4", false),
|
||||
new("→", "/tp ^10 ^ ^", "NumPad6", false),
|
||||
new("↑^↑", "/tp ~ ~10 ~", "NumPad0", false),
|
||||
};
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 初始化快捷键
|
||||
/// </summary>
|
||||
@ -62,15 +94,16 @@ namespace GrasscutterTools.Pages
|
||||
return;
|
||||
try
|
||||
{
|
||||
Logger.I(TAG, "Loading HotKey json file from: " + HotKeysFilePath);
|
||||
Common.KeyGo.Items = JsonConvert.DeserializeObject<List<HotKeyItem>>(File.ReadAllText(HotKeysFilePath));
|
||||
// 还原设置
|
||||
Common.KeyGo.IsEnabled = ChkEnableGlobal.Checked = Settings.Default.IsHotkeyEenabled;
|
||||
Common.KeyGo.Items = LoadKeyItems();
|
||||
LvHotKeyList.Items.AddRange(Common.KeyGo.Items.Select(HotKeyItemToViewItem).ToArray());
|
||||
Logger.I(TAG, "Start Register All HotKeys");
|
||||
Common.KeyGo.RegAllKey();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.W(TAG, "Parsing HotKeys.json failed.", ex);
|
||||
Logger.W(TAG, "Failed to InitHotKeys", ex);
|
||||
}
|
||||
}
|
||||
|
||||
@ -79,6 +112,8 @@ namespace GrasscutterTools.Pages
|
||||
/// </summary>
|
||||
public override void OnClosed()
|
||||
{
|
||||
Settings.Default.IsHotkeyEenabled = Common.KeyGo.IsEnabled;
|
||||
|
||||
Logger.I(TAG, "Cancel all HotKeys");
|
||||
Common.KeyGo.UnRegAllKey();
|
||||
|
||||
@ -90,7 +125,7 @@ namespace GrasscutterTools.Pages
|
||||
/// <summary>
|
||||
/// 将实体转为视图对象
|
||||
/// </summary>
|
||||
private static ListViewItem HotKeyItemToViewItem(HotKeyItem item) => new ListViewItem(new[]
|
||||
private static ListViewItem HotKeyItemToViewItem(HotKeyItem item) => new(new[]
|
||||
{
|
||||
item.Tag,
|
||||
item.HotKey,
|
||||
@ -130,12 +165,7 @@ namespace GrasscutterTools.Pages
|
||||
var i = Common.KeyGo.Items.FindIndex(it => it.Tag == tag);
|
||||
if (i == -1)
|
||||
{
|
||||
var item = new HotKeyItem
|
||||
{
|
||||
Tag = tag,
|
||||
Commands = commands,
|
||||
HotKey = hotKey
|
||||
};
|
||||
var item = new HotKeyItem(tag, commands, hotKey);
|
||||
Logger.I(TAG, $"New HotKey item [{hotKey}]");
|
||||
Common.KeyGo.AddHotKey(item);
|
||||
LvHotKeyList.Items.Add(HotKeyItemToViewItem(item));
|
||||
@ -260,5 +290,22 @@ namespace GrasscutterTools.Pages
|
||||
TxtHotKey.Tag = "";
|
||||
TxtTag.Text = tag;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 切换启用全局快捷键时触发
|
||||
/// </summary>
|
||||
private void ChkEnableGlobal_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
Common.KeyGo.IsEnabled = ChkEnableGlobal.Checked;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.E(TAG, "Failed to switch global hotkeys", ex);
|
||||
MessageBox.Show(ex.Message, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
@ -126,6 +126,16 @@
|
||||
<data name="ColCommand.Text" xml:space="preserve">
|
||||
<value>Commands</value>
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="ChkEnableGlobal.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>523, -2</value>
|
||||
</data>
|
||||
<data name="ChkEnableGlobal.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>111, 21</value>
|
||||
</data>
|
||||
<data name="ChkEnableGlobal.Text" xml:space="preserve">
|
||||
<value>Global HotKey</value>
|
||||
</data>
|
||||
<data name="GrpHotKeyList.Text" xml:space="preserve">
|
||||
<value>HotKeys</value>
|
||||
</data>
|
||||
@ -135,7 +145,6 @@
|
||||
<data name="BtnAddOrUpdate.Text" xml:space="preserve">
|
||||
<value>√ AddOrUpdate</value>
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="LblHotKeyLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>50, 17</value>
|
||||
</data>
|
||||
|
@ -117,215 +117,92 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="ColTag.Text" xml:space="preserve">
|
||||
<value>标签</value>
|
||||
</data>
|
||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="ColTag.Width" type="System.Int32, mscorlib">
|
||||
<value>150</value>
|
||||
</data>
|
||||
<data name="ColHotKey.Text" xml:space="preserve">
|
||||
<value>快捷键</value>
|
||||
</data>
|
||||
<data name="ColHotKey.Width" type="System.Int32, mscorlib">
|
||||
<value>100</value>
|
||||
</data>
|
||||
<data name="ColCommand.Text" xml:space="preserve">
|
||||
<value>命令</value>
|
||||
</data>
|
||||
<data name="ColCommand.Width" type="System.Int32, mscorlib">
|
||||
<value>350</value>
|
||||
</data>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="LvHotKeyList.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Fill</value>
|
||||
<data name=">>BtnRemove.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="LvHotKeyList.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 19</value>
|
||||
<data name="BtnRemove.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>100, 30</value>
|
||||
</data>
|
||||
<data name="LvHotKeyList.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>634, 178</value>
|
||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="TxtHotKey.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="LvHotKeyList.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
<data name="ChkEnableGlobal.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name=">>LvHotKeyList.Name" xml:space="preserve">
|
||||
<value>LvHotKeyList</value>
|
||||
</data>
|
||||
<data name=">>LvHotKeyList.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ListView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>LvHotKeyList.Parent" xml:space="preserve">
|
||||
<value>GrpHotKeyList</value>
|
||||
</data>
|
||||
<data name=">>LvHotKeyList.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="GrpHotKeyList.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Bottom, Left, Right</value>
|
||||
</data>
|
||||
<data name="GrpHotKeyList.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 3</value>
|
||||
<data name=">>$this.Type" xml:space="preserve">
|
||||
<value>GrasscutterTools.Pages.BasePage, GrasscutterTools, Version=1.13.0.0, Culture=neutral, PublicKeyToken=de2b1c089621e923</value>
|
||||
</data>
|
||||
<data name="GrpHotKeyList.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>640, 200</value>
|
||||
</data>
|
||||
<data name="GrpHotKeyList.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="GrpHotKeyList.Text" xml:space="preserve">
|
||||
<value>快捷执行列表</value>
|
||||
</data>
|
||||
<data name=">>GrpHotKeyList.Name" xml:space="preserve">
|
||||
<value>GrpHotKeyList</value>
|
||||
</data>
|
||||
<data name=">>GrpHotKeyList.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>GrpHotKeyList.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>GrpHotKeyList.ZOrder" xml:space="preserve">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="BtnRemove.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Right</value>
|
||||
</data>
|
||||
<data name="BtnRemove.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>543, 206</value>
|
||||
</data>
|
||||
<data name="BtnRemove.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>100, 30</value>
|
||||
</data>
|
||||
<data name="BtnRemove.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name="BtnRemove.Text" xml:space="preserve">
|
||||
<value>- 删除</value>
|
||||
</data>
|
||||
<data name=">>BtnRemove.Name" xml:space="preserve">
|
||||
<value>BtnRemove</value>
|
||||
</data>
|
||||
<data name=">>BtnRemove.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>BtnRemove.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>BtnRemove.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="BtnAddOrUpdate.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Right</value>
|
||||
</data>
|
||||
<data name="BtnAddOrUpdate.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>387, 206</value>
|
||||
</data>
|
||||
<data name="BtnAddOrUpdate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>150, 30</value>
|
||||
</data>
|
||||
<data name="BtnAddOrUpdate.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name="BtnAddOrUpdate.Text" xml:space="preserve">
|
||||
<value>√ 添加或更新</value>
|
||||
<data name="LblHotKeyLabel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>212, 213</value>
|
||||
</data>
|
||||
<data name=">>BtnAddOrUpdate.Name" xml:space="preserve">
|
||||
<value>BtnAddOrUpdate</value>
|
||||
</data>
|
||||
<data name=">>BtnAddOrUpdate.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>BtnAddOrUpdate.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>BtnAddOrUpdate.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="TxtHotKey.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left, Right</value>
|
||||
</data>
|
||||
<data name="TxtHotKey.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>262, 210</value>
|
||||
</data>
|
||||
<data name="TxtHotKey.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>119, 23</value>
|
||||
</data>
|
||||
<data name="TxtHotKey.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="TxtHotKey.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms">
|
||||
<value>Center</value>
|
||||
</data>
|
||||
<data name=">>TxtHotKey.Name" xml:space="preserve">
|
||||
<value>TxtHotKey</value>
|
||||
</data>
|
||||
<data name=">>TxtHotKey.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>TxtHotKey.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>TxtHotKey.ZOrder" xml:space="preserve">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="LblHotKeyLabel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left, Right</value>
|
||||
</data>
|
||||
<data name="LblHotKeyLabel.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="LblHotKeyLabel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>212, 213</value>
|
||||
</data>
|
||||
<data name="LblHotKeyLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>44, 17</value>
|
||||
</data>
|
||||
<data name="LblHotKeyLabel.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="LblHotKeyLabel.Text" xml:space="preserve">
|
||||
<value>快捷键</value>
|
||||
</data>
|
||||
<data name=">>LblHotKeyLabel.Name" xml:space="preserve">
|
||||
<value>LblHotKeyLabel</value>
|
||||
</data>
|
||||
<data name=">>LblHotKeyLabel.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>LblHotKeyLabel.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>LblHotKeyLabel.ZOrder" xml:space="preserve">
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name="TxtTag.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left, Right</value>
|
||||
</data>
|
||||
<data name="TxtTag.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>41, 210</value>
|
||||
</data>
|
||||
<data name="TxtTag.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>165, 23</value>
|
||||
<data name="BtnRemove.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>543, 206</value>
|
||||
</data>
|
||||
<data name="TxtTag.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name=">>TxtTag.Name" xml:space="preserve">
|
||||
<value>TxtTag</value>
|
||||
</data>
|
||||
<data name=">>TxtTag.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>TxtTag.Parent" xml:space="preserve">
|
||||
<data name=">>BtnRemove.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>LvHotKeyList.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ListView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="BtnAddOrUpdate.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>387, 206</value>
|
||||
</data>
|
||||
<data name="TxtTag.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>165, 23</value>
|
||||
</data>
|
||||
<data name=">>BtnAddOrUpdate.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="ChkEnableGlobal.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>547, -2</value>
|
||||
</data>
|
||||
<data name="LblHotKeyLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>44, 17</value>
|
||||
</data>
|
||||
<data name="GrpHotKeyList.Text" xml:space="preserve">
|
||||
<value>快捷执行列表</value>
|
||||
</data>
|
||||
<data name="ColHotKey.Width" type="System.Int32, mscorlib">
|
||||
<value>100</value>
|
||||
</data>
|
||||
<data name=">>TxtTag.ZOrder" xml:space="preserve">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name="LblTagLabel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
<data name=">>LblTagLabel.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>TxtHotKey.Name" xml:space="preserve">
|
||||
<value>TxtHotKey</value>
|
||||
</data>
|
||||
<data name=">>LblHotKeyLabel.ZOrder" xml:space="preserve">
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name=">>ColCommand.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="TxtTag.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left, Right</value>
|
||||
</data>
|
||||
<data name=">>ColTag.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>ColHotKey.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>TxtHotKey.ZOrder" xml:space="preserve">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="LblTagLabel.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
@ -333,55 +210,208 @@
|
||||
<data name="LblTagLabel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 213</value>
|
||||
</data>
|
||||
<data name="LblTagLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>32, 17</value>
|
||||
<data name="BtnAddOrUpdate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>150, 30</value>
|
||||
</data>
|
||||
<data name="LblTagLabel.TabIndex" type="System.Int32, mscorlib">
|
||||
<data name="LblHotKeyLabel.Text" xml:space="preserve">
|
||||
<value>快捷键</value>
|
||||
</data>
|
||||
<data name="LvHotKeyList.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="LblTagLabel.Text" xml:space="preserve">
|
||||
<value>标签</value>
|
||||
<data name="LblTagLabel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
</data>
|
||||
<data name=">>LblTagLabel.Name" xml:space="preserve">
|
||||
<value>LblTagLabel</value>
|
||||
</data>
|
||||
<data name=">>LblTagLabel.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>LblTagLabel.Parent" xml:space="preserve">
|
||||
<data name=">>LblHotKeyLabel.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>TxtTag.Name" xml:space="preserve">
|
||||
<value>TxtTag</value>
|
||||
</data>
|
||||
<data name=">>GrpHotKeyList.ZOrder" xml:space="preserve">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="LvHotKeyList.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>634, 178</value>
|
||||
</data>
|
||||
<data name=">>LblTagLabel.ZOrder" xml:space="preserve">
|
||||
<value>6</value>
|
||||
</data>
|
||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||
<value>7, 17</value>
|
||||
<data name=">>LvHotKeyList.Name" xml:space="preserve">
|
||||
<value>LvHotKeyList</value>
|
||||
</data>
|
||||
<data name=">>ChkEnableGlobal.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>ColTag.Name" xml:space="preserve">
|
||||
<value>ColTag</value>
|
||||
</data>
|
||||
<data name=">>ColTag.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<data name="TxtHotKey.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>262, 210</value>
|
||||
</data>
|
||||
<data name=">>ColHotKey.Name" xml:space="preserve">
|
||||
<value>ColHotKey</value>
|
||||
<data name="ColCommand.Text" xml:space="preserve">
|
||||
<value>命令</value>
|
||||
</data>
|
||||
<data name=">>ColHotKey.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<data name="TxtHotKey.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>119, 23</value>
|
||||
</data>
|
||||
<data name=">>ColCommand.Name" xml:space="preserve">
|
||||
<value>ColCommand</value>
|
||||
<data name=">>BtnRemove.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>ColCommand.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<data name=">>LvHotKeyList.Parent" xml:space="preserve">
|
||||
<value>GrpHotKeyList</value>
|
||||
</data>
|
||||
<data name=">>ChkEnableGlobal.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="BtnRemove.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name="LvHotKeyList.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Fill</value>
|
||||
</data>
|
||||
<data name=">>GrpHotKeyList.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>GrpHotKeyList.Name" xml:space="preserve">
|
||||
<value>GrpHotKeyList</value>
|
||||
</data>
|
||||
<data name="ColHotKey.Text" xml:space="preserve">
|
||||
<value>快捷键</value>
|
||||
</data>
|
||||
<data name=">>LblTagLabel.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>TxtTag.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>BtnRemove.Name" xml:space="preserve">
|
||||
<value>BtnRemove</value>
|
||||
</data>
|
||||
<data name=">>TxtHotKey.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="LblTagLabel.Text" xml:space="preserve">
|
||||
<value>标签</value>
|
||||
</data>
|
||||
<data name="ChkEnableGlobal.Text" xml:space="preserve">
|
||||
<value>全局快捷键</value>
|
||||
</data>
|
||||
<data name="BtnAddOrUpdate.Text" xml:space="preserve">
|
||||
<value>√ 添加或更新</value>
|
||||
</data>
|
||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||
<value>7, 17</value>
|
||||
</data>
|
||||
<data name="ColTag.Width" type="System.Int32, mscorlib">
|
||||
<value>150</value>
|
||||
</data>
|
||||
<data name=">>LblTagLabel.Name" xml:space="preserve">
|
||||
<value>LblTagLabel</value>
|
||||
</data>
|
||||
<data name=">>TxtHotKey.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="LvHotKeyList.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 19</value>
|
||||
</data>
|
||||
<data name="LblHotKeyLabel.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="LblHotKeyLabel.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="ChkEnableGlobal.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="LblTagLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>32, 17</value>
|
||||
</data>
|
||||
<data name=">>ChkEnableGlobal.Name" xml:space="preserve">
|
||||
<value>ChkEnableGlobal</value>
|
||||
</data>
|
||||
<data name="BtnAddOrUpdate.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name=">>LblHotKeyLabel.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>$this.Name" xml:space="preserve">
|
||||
<value>PageHotKey</value>
|
||||
</data>
|
||||
<data name=">>$this.Type" xml:space="preserve">
|
||||
<value>GrasscutterTools.Pages.BasePage, GrasscutterTools, Version=1.11.0.0, Culture=neutral, PublicKeyToken=de2b1c089621e923</value>
|
||||
<data name="LblHotKeyLabel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left, Right</value>
|
||||
</data>
|
||||
<data name=">>BtnAddOrUpdate.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="GrpHotKeyList.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Bottom, Left, Right</value>
|
||||
</data>
|
||||
<data name=">>ColHotKey.Name" xml:space="preserve">
|
||||
<value>ColHotKey</value>
|
||||
</data>
|
||||
<data name=">>LblHotKeyLabel.Name" xml:space="preserve">
|
||||
<value>LblHotKeyLabel</value>
|
||||
</data>
|
||||
<data name="ColTag.Text" xml:space="preserve">
|
||||
<value>标签</value>
|
||||
</data>
|
||||
<data name=">>ColCommand.Name" xml:space="preserve">
|
||||
<value>ColCommand</value>
|
||||
</data>
|
||||
<data name=">>LvHotKeyList.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="ChkEnableGlobal.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>87, 21</value>
|
||||
</data>
|
||||
<data name=">>TxtTag.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="BtnRemove.Text" xml:space="preserve">
|
||||
<value>- 删除</value>
|
||||
</data>
|
||||
<data name="BtnRemove.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Right</value>
|
||||
</data>
|
||||
<data name="BtnAddOrUpdate.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Right</value>
|
||||
</data>
|
||||
<data name="ColCommand.Width" type="System.Int32, mscorlib">
|
||||
<value>350</value>
|
||||
</data>
|
||||
<data name="TxtTag.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>41, 210</value>
|
||||
</data>
|
||||
<data name="TxtHotKey.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms">
|
||||
<value>Center</value>
|
||||
</data>
|
||||
<data name="LblTagLabel.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>ChkEnableGlobal.Parent" xml:space="preserve">
|
||||
<value>GrpHotKeyList</value>
|
||||
</data>
|
||||
<data name="GrpHotKeyList.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="GrpHotKeyList.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 3</value>
|
||||
</data>
|
||||
<data name=">>BtnAddOrUpdate.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="TxtHotKey.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left, Right</value>
|
||||
</data>
|
||||
<data name=">>GrpHotKeyList.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="ChkEnableGlobal.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Right</value>
|
||||
</data>
|
||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
</root>
|
@ -126,6 +126,16 @@
|
||||
<data name="ColCommand.Text" xml:space="preserve">
|
||||
<value>Commands</value>
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="ChkEnableGlobal.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>523, -2</value>
|
||||
</data>
|
||||
<data name="ChkEnableGlobal.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>111, 21</value>
|
||||
</data>
|
||||
<data name="ChkEnableGlobal.Text" xml:space="preserve">
|
||||
<value>Global HotKey</value>
|
||||
</data>
|
||||
<data name="GrpHotKeyList.Text" xml:space="preserve">
|
||||
<value>HotKeys</value>
|
||||
</data>
|
||||
@ -135,7 +145,6 @@
|
||||
<data name="BtnAddOrUpdate.Text" xml:space="preserve">
|
||||
<value>√ AddOrUpdate</value>
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="LblHotKeyLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>50, 17</value>
|
||||
</data>
|
||||
|
@ -123,6 +123,9 @@
|
||||
<data name="ColHotKey.Text" xml:space="preserve">
|
||||
<value>快捷鍵</value>
|
||||
</data>
|
||||
<data name="ChkEnableGlobal.Text" xml:space="preserve">
|
||||
<value>全域快速鍵</value>
|
||||
</data>
|
||||
<data name="GrpHotKeyList.Text" xml:space="preserve">
|
||||
<value>快捷執行列表</value>
|
||||
</data>
|
||||
|
@ -24,9 +24,6 @@ using System.IO;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using Eavesdrop;
|
||||
|
||||
using GrasscutterTools.DispatchServer;
|
||||
using GrasscutterTools.DispatchServer.Model;
|
||||
using GrasscutterTools.Game;
|
||||
|
@ -286,5 +286,17 @@ namespace GrasscutterTools.Properties {
|
||||
this["IsUpgraded"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("True")]
|
||||
public bool IsHotkeyEenabled {
|
||||
get {
|
||||
return ((bool)(this["IsHotkeyEenabled"]));
|
||||
}
|
||||
set {
|
||||
this["IsHotkeyEenabled"] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -68,5 +68,8 @@
|
||||
<Setting Name="IsUpgraded" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
<Setting Name="IsHotkeyEenabled" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">True</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
@ -26,6 +26,18 @@ namespace GrasscutterTools.Utils
|
||||
/// </summary>
|
||||
internal class HotKeyItem
|
||||
{
|
||||
public HotKeyItem()
|
||||
{
|
||||
}
|
||||
|
||||
public HotKeyItem(string tag, string commands, string hotKey, bool isEnabled = true)
|
||||
{
|
||||
Tag = tag;
|
||||
Commands = commands;
|
||||
HotKey = hotKey;
|
||||
IsEnabled = isEnabled;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the hot key identifier.
|
||||
/// </summary>
|
||||
|
@ -36,12 +36,28 @@ namespace GrasscutterTools.Utils
|
||||
}
|
||||
|
||||
#region Member
|
||||
|
||||
|
||||
private static int _regMaxId;
|
||||
|
||||
private readonly IntPtr FormHandle;
|
||||
|
||||
public List<HotKeyItem> Items { get; set; } = new List<HotKeyItem>();
|
||||
private bool _isEnabled;
|
||||
|
||||
public List<HotKeyItem> Items { get; set; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// 全局热键是否启用
|
||||
/// </summary>
|
||||
public bool IsEnabled
|
||||
{
|
||||
get => _isEnabled;
|
||||
set
|
||||
{
|
||||
_isEnabled = value;
|
||||
if (value) RegAllKey();
|
||||
else UnRegAllKey();
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Member
|
||||
|
||||
@ -220,7 +236,7 @@ namespace GrasscutterTools.Utils
|
||||
if (item is null)
|
||||
throw new ArgumentNullException(nameof(item));
|
||||
|
||||
if (item.IsEnabled)
|
||||
if (_isEnabled && item.IsEnabled)
|
||||
RegKey(item);
|
||||
Items.Add(item);
|
||||
}
|
||||
@ -251,7 +267,7 @@ namespace GrasscutterTools.Utils
|
||||
// 重新注册
|
||||
if (item.HotKeyId != 0)
|
||||
UnRegKey(item);
|
||||
if (item.IsEnabled)
|
||||
if (_isEnabled && item.IsEnabled)
|
||||
RegKey(item);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user