/trunk/WingMan/WingManForm.cs |
@@ -6,10 +6,12 @@ |
using System.IO; |
using System.Linq; |
using System.Net; |
using System.Reflection; |
using System.Threading; |
using System.Threading.Tasks; |
using System.Windows.Forms; |
using Gma.System.MouseKeyHook; |
using Microsoft.Win32; |
using MQTTnet.Extensions.ManagedClient; |
using MQTTnet.Server; |
using WingMan.AutoCompletion; |
@@ -142,6 +144,25 @@ |
private static TabControl DetachedTabControl { get; set; } |
private static Form DetachedForm { get; set; } |
|
/// <inheritdoc /> |
/// <summary> |
/// Clean up any resources being used. |
/// </summary> |
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> |
protected override void Dispose(bool disposing) |
{ |
FormCancellationTokenSource?.Dispose(); |
FormCancellationTokenSource = null; |
|
if (disposing && components != null) |
{ |
components.Dispose(); |
components = null; |
} |
|
base.Dispose(disposing); |
} |
|
private void RemoteBindingsComboBoxSourceOnListChanged(object sender, ListChangedEventArgs e) |
{ |
UpdateRemoteBindingsListBox(); |
@@ -193,25 +214,6 @@ |
$"{Strings.Failed_saving_autocomplete_source} : {args.Name} : {args.Exception.Message}{Environment.NewLine}"); |
} |
|
/// <inheritdoc /> |
/// <summary> |
/// Clean up any resources being used. |
/// </summary> |
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> |
protected override void Dispose(bool disposing) |
{ |
FormCancellationTokenSource?.Dispose(); |
FormCancellationTokenSource = null; |
|
if (disposing && components != null) |
{ |
components.Dispose(); |
components = null; |
} |
|
base.Dispose(disposing); |
} |
|
private void OnMouseKeyBindingExecuting(object sender, KeyBindingExecutingEventArgs args) |
{ |
ActivityTextBox.AppendText( |
@@ -651,11 +653,29 @@ |
|
private async void WingManFormOnLoad(object sender, EventArgs e) |
{ |
await LoadLocalMouseKeyBindings(); |
using (var key = Registry.CurrentUser.OpenSubKey |
("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true)) |
{ |
switch (key.GetValue(Name) == null) |
{ |
case true: |
windowsStartupCheckBox.Checked = false; |
break; |
default: |
windowsStartupCheckBox.Checked = true; |
break; |
} |
} |
|
await LoadRemoteMouseKeyBindings(); |
await LoadLocalKeyBindings(); |
|
await LoadRemoteKeyBindings(); |
} |
|
private void WingManFormOnClosing(object sender, FormClosingEventArgs e) |
{ |
} |
|
private void RemoteBindingsBindButtonClicked(object sender, EventArgs e) |
{ |
if (string.IsNullOrEmpty((string) RemoteBindingsListBox.SelectedItem)) |
@@ -859,6 +879,82 @@ |
DetachedForm.FormClosing -= DetachedFormOnFormClosing; |
} |
|
private void LocalBindingsLoadButtonClicked(object sender, EventArgs e) |
{ |
loadLocalBindingsDialog.ShowDialog(); |
} |
|
private void LocalBindingsSaveButtonClicked(object sender, EventArgs e) |
{ |
saveLocalBindingsDialog.ShowDialog(); |
} |
|
private async void SaveLocalBindingsDialogOk(object sender, CancelEventArgs e) |
{ |
using (var localBindingsStream = saveLocalBindingsDialog.OpenFile()) |
{ |
using (var memoryStream = new MemoryStream()) |
{ |
LocalKeyBindings.XmlSerializer.Serialize(memoryStream, LocalKeyBindings); |
|
memoryStream.Position = 0L; |
|
await memoryStream.CopyToAsync(localBindingsStream); |
} |
} |
} |
|
private async void LoadLocalBindingsDialogOk(object sender, CancelEventArgs e) |
{ |
using (var localBindingsStream = loadLocalBindingsDialog.OpenFile()) |
{ |
var loadedBindings = (LocalKeyBindings) LocalKeyBindings.XmlSerializer.Deserialize(localBindingsStream); |
|
LocalKeyBindings.Bindings.Clear(); |
|
foreach (var binding in loadedBindings.Bindings) |
LocalKeyBindings.Bindings.Add(binding); |
|
LocalCheckedListBoxBindingSource.ResetBindings(false); |
} |
|
await SaveLocalMouseKeyBindings(); |
} |
|
private void SettingsWindowsStartupCheckboxCheckedChanged(object sender, EventArgs e) |
{ |
try |
{ |
switch (((CheckBox) sender).Checked) |
{ |
case true: |
using (var key = Registry.CurrentUser.OpenSubKey |
("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true)) |
{ |
key.SetValue(Name, Assembly.GetEntryAssembly().Location); |
} |
|
break; |
default: |
using (var key = Registry.CurrentUser.OpenSubKey |
("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true)) |
{ |
key.DeleteValue(Name, false); |
} |
|
break; |
} |
|
ActivityTextBox.AppendText( |
$"{Strings.Application_Windows_startup_changed}{Environment.NewLine}"); |
} |
catch |
{ |
ActivityTextBox.AppendText( |
$"{Strings.Could_not_change_Windows_startup}{Environment.NewLine}"); |
} |
} |
|
#region Saving and loading |
|
private async Task SaveLocalMouseKeyBindings() |
@@ -884,7 +980,7 @@ |
} |
} |
|
private async Task LoadLocalMouseKeyBindings() |
private async Task LoadLocalKeyBindings() |
{ |
try |
{ |
@@ -902,7 +998,6 @@ |
foreach (var binding in loadedBindings.Bindings) |
LocalKeyBindings.Bindings.Add(binding); |
|
|
LocalCheckedListBoxBindingSource.ResetBindings(false); |
} |
} |
@@ -937,7 +1032,7 @@ |
} |
} |
|
private async Task LoadRemoteMouseKeyBindings() |
private async Task LoadRemoteKeyBindings() |
{ |
try |
{ |