Skip to content

Commit dce0c0c

Browse files
committed
Moved to a more generic global hotkey support and added hot keys for end/answer/mute
1 parent 558a12d commit dce0c0c

File tree

8 files changed

+210
-66
lines changed

8 files changed

+210
-66
lines changed

Broker.cs

Lines changed: 71 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -140,14 +140,11 @@ private void init_us() {
140140
CheckForUpdates = Properties.Settings.Default.CheckForUpdates;
141141
GUIStartup = Properties.Settings.Default.GuiStartup;
142142
AlwaysOnTopDuringCall = Properties.Settings.Default.AlwaysOnTopDuringCall;
143-
var hotkey_str = Properties.Settings.Default.GlobalHotKey;
144-
if (!String.IsNullOrWhiteSpace(hotkey_str)) {
145-
try {
146-
var new_hotkey = Newtonsoft.Json.JsonConvert.DeserializeObject<HotKeySetting>(hotkey_str);
147-
if (new_hotkey != null)
148-
SetHotKey(new_hotkey);
149-
} catch (Exception) { }
150-
}
143+
SetHotKeyFromSetting(GLOBAL_HOT_KEY_TYPE.Focus, Properties.Settings.Default.GlobalHotKey);
144+
SetHotKeyFromSetting(GLOBAL_HOT_KEY_TYPE.Answer, Properties.Settings.Default.GlobalAnsHotKey);
145+
SetHotKeyFromSetting(GLOBAL_HOT_KEY_TYPE.End, Properties.Settings.Default.GlobalEndHotKey);
146+
SetHotKeyFromSetting(GLOBAL_HOT_KEY_TYPE.Mute, Properties.Settings.Default.GlobalMuteHotKey);
147+
151148

152149
if (Properties.Settings.Default.Sofia != null)
153150
sofia = Properties.Settings.Default.Sofia.GetSofia();
@@ -183,6 +180,15 @@ private void init_us() {
183180
t.IsBackground = true;
184181
t.Start();
185182
}
183+
private void SetHotKeyFromSetting(GLOBAL_HOT_KEY_TYPE type, String hotkey_setting_str) {
184+
if (!String.IsNullOrWhiteSpace(hotkey_setting_str)) {
185+
try {
186+
var new_hotkey = Newtonsoft.Json.JsonConvert.DeserializeObject<HotKeySetting>(hotkey_setting_str);
187+
if (new_hotkey != null)
188+
SetHotKey(type, new_hotkey);
189+
} catch (Exception) { }
190+
}
191+
}
186192
private void init_freeswitch() {
187193
try {//it would be better if this was in the init function but it seems some dll load errors won't be caught if it is.
188194
#if !NO_FS
@@ -399,7 +405,10 @@ public void SaveSettings() {
399405
Properties.Settings.Default.UPNPNAT = UPNPNAT;
400406
Properties.Settings.Default.DirectSipDial = DirectSipDial;
401407
Properties.Settings.Default.AlwaysOnTopDuringCall = AlwaysOnTopDuringCall;
402-
Properties.Settings.Default.GlobalHotKey = SerializeObject(global_hotkey, false);
408+
Properties.Settings.Default.GlobalHotKey = SerializeObject(GetHotKeySetting(GLOBAL_HOT_KEY_TYPE.Focus), false);
409+
Properties.Settings.Default.GlobalEndHotKey = SerializeObject(GetHotKeySetting(GLOBAL_HOT_KEY_TYPE.End), false);
410+
Properties.Settings.Default.GlobalAnsHotKey = SerializeObject(GetHotKeySetting(GLOBAL_HOT_KEY_TYPE.Answer), false);
411+
Properties.Settings.Default.GlobalMuteHotKey = SerializeObject(GetHotKeySetting(GLOBAL_HOT_KEY_TYPE.Mute), false);
403412
Properties.Settings.Default.UseNumberOnlyInput = UseNumberOnlyInput;
404413
Properties.Settings.Default.RecordingPath = recordings_folder;
405414
Properties.Settings.Default.Theme = theme;
@@ -490,9 +499,9 @@ public void BringToFront(bool no_keyboard_focus) {
490499
[Flags]
491500
public enum BRING_TO_FRONT_OPTS { OnlyIfTopMostSetting, AlwaysKeyboardFocus, KeyboardFocusIfSettingEnabled }
492501
public void BringToFront(BRING_TO_FRONT_OPTS opts) {
493-
if (! opts.HasFlag(BRING_TO_FRONT_OPTS.OnlyIfTopMostSetting) || IncomingTopMost)
502+
if (!opts.HasFlag(BRING_TO_FRONT_OPTS.OnlyIfTopMostSetting) || IncomingTopMost)
494503
MainWindow.get_instance().BringToFront();
495-
if (opts.HasFlag(BRING_TO_FRONT_OPTS.AlwaysKeyboardFocus) || (opts.HasFlag(BRING_TO_FRONT_OPTS.KeyboardFocusIfSettingEnabled) && IncomingKeyboardFocus) )
504+
if (opts.HasFlag(BRING_TO_FRONT_OPTS.AlwaysKeyboardFocus) || (opts.HasFlag(BRING_TO_FRONT_OPTS.KeyboardFocusIfSettingEnabled) && IncomingKeyboardFocus))
496505
Utils.SetForegroundWindow(MainWindow.get_instance());
497506

498507
}
@@ -561,38 +570,73 @@ private void VersionCheck() {
561570
} catch (Exception) { }
562571

563572
}
564-
573+
565574
internal class HotKeySetting {
566575
public Key key { get; set; }
567576
public KeyModifier modifiers { get; set; }
568577
}
569-
public HotKeySetting global_hotkey { get; private set; } = new HotKeySetting { key = Key.None };
570-
public void SetHotKey(HotKeySetting setting) {
578+
public enum GLOBAL_HOT_KEY_TYPE { Invalid, Focus, Answer, End, Mute }
579+
private class HotKeyItem {
580+
public HotKeySetting setting;
581+
public GlobalHotKey hot_key;
582+
}
583+
public HotKeySetting GetHotKeySetting(GLOBAL_HOT_KEY_TYPE type) => GetHotKeyItem(type).setting;
584+
585+
private HotKeyItem GetHotKeyItem(GLOBAL_HOT_KEY_TYPE type) {
586+
if (!hot_keys.TryGetValue(type, out var cur))
587+
hot_keys[type] = cur = new HotKeyItem { setting = new HotKeySetting { key = Key.None } };
588+
return cur;
589+
}
590+
private Dictionary<GLOBAL_HOT_KEY_TYPE, HotKeyItem> hot_keys = new Dictionary<GLOBAL_HOT_KEY_TYPE, HotKeyItem>();
591+
public void SetHotKey(GLOBAL_HOT_KEY_TYPE type, HotKeySetting new_setting) {
592+
var cur_item = GetHotKeyItem(type);
593+
594+
571595
try {
572-
if (setting.key == global_hotkey.key && setting.modifiers == global_hotkey.modifiers)
596+
if (new_setting.key == cur_item.setting.key && new_setting.modifiers == cur_item.setting.modifiers)
573597
return;
574-
global_hotkey = setting;
575-
if (setting.key == Key.None) {
576-
hot_key?.Unregister();
598+
cur_item.setting = new_setting;
599+
if (new_setting.key == Key.None) {
600+
cur_item.hot_key?.Unregister();
577601
return;
578602
}
579603

580-
if (hot_key == null)
581-
hot_key = new GlobalHotKey(setting.key, setting.modifiers, GlobalHotKeyPressed);
604+
if (cur_item.hot_key == null)
605+
cur_item.hot_key = new GlobalHotKey(new_setting.key, new_setting.modifiers, GlobalHotKeyPressed);
582606
else
583-
hot_key.UpdateHotKey(setting.key, setting.modifiers);
584-
}catch(Exception ex) {
607+
cur_item.hot_key.UpdateHotKey(new_setting.key, new_setting.modifiers);
608+
} catch (Exception ex) {
585609
MessageBox.Show("Unable to set global hotkey due to: " + ex.Message);
586610
}
587611
}
588612

589613
private void GlobalHotKeyPressed(GlobalHotKey obj) {
590-
BringToFront(BRING_TO_FRONT_OPTS.AlwaysKeyboardFocus);
614+
var item = hot_keys.FirstOrDefault(a => a.Value.hot_key == obj);
615+
if (item.Key == GLOBAL_HOT_KEY_TYPE.Invalid)
616+
return;
617+
switch (item.Key) {
618+
case GLOBAL_HOT_KEY_TYPE.Mute:
619+
Muted = !Muted;
620+
break;
621+
case GLOBAL_HOT_KEY_TYPE.Focus:
622+
BringToFront(BRING_TO_FRONT_OPTS.AlwaysKeyboardFocus);
623+
break;
624+
case GLOBAL_HOT_KEY_TYPE.Answer:
625+
if (Call.active_call.state == Call.CALL_STATE.Ringing && Call.active_call.is_outgoing == false)
626+
Call.active_call?.answer();
627+
break;
628+
case GLOBAL_HOT_KEY_TYPE.End:
629+
Call.active_call?.hangup();
630+
break;
631+
632+
}
633+
634+
591635
}
592636

593-
private GlobalHotKey hot_key;
594-
595-
637+
638+
639+
596640
public bool UseNumberOnlyInput {
597641
get { return _UseNumberOnlyInput; }
598642
set {
@@ -639,7 +683,7 @@ public bool DirectSipDial {
639683
public bool AlwaysOnTopDuringCall {
640684
get => _AlwaysOnTopDuringCall;
641685

642-
set {
686+
set {
643687
if (value == _AlwaysOnTopDuringCall)
644688
return;
645689
_AlwaysOnTopDuringCall = value;

Options.xaml

Lines changed: 34 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<Window x:Class="FSClient.Options" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Options" Width="620" Height="530"
1+
<Window x:Class="FSClient.Options" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Options" Width="620" Height="610"
22
Closing="Window_Closing" Icon="phone.ico" Loaded="Window_Loaded" ResizeMode="NoResize" WindowStyle="ThreeDBorderWindow">
33
<Window.Resources>
44
<Style x:Key="OptionHeaderStyle" TargetType="{x:Type TextBlock}">
@@ -37,6 +37,9 @@
3737
<RowDefinition />
3838
<RowDefinition />
3939
<RowDefinition />
40+
<RowDefinition />
41+
<RowDefinition />
42+
<RowDefinition />
4043
</Grid.RowDefinitions>
4144
<StackPanel Grid.Column="0" Grid.ColumnSpan="2" HorizontalAlignment="Center" Orientation="Horizontal">
4245
<Button Name="btnReloadDevices" Width="100" Height="23" Click="btnReloadDevices_Click" Content="Reload Devices" TabIndex="50" />
@@ -72,14 +75,38 @@
7275
<Button Name="btnPathBrowse" Height="25" AutomationProperties.Name="Browse for folder to store recordings in" Click="btnPathBrowse_Click" Content="Browse" TabIndex="18" />
7376
</StackPanel>
7477
<TextBlock Grid.Row="11" Style="{DynamicResource OptionHeaderStyle}" Text="Global Focus Hotkey:" />
75-
<StackPanel Grid.Row="11" Grid.Column="1" Orientation="Horizontal" Margin="10,0,0,0">
76-
<CheckBox Name="chkGlobalCntrl" Content="Cntrl" VerticalAlignment="Center" TabIndex="19" />
77-
<CheckBox Name="chkGlobalShift" Content="Shift" VerticalAlignment="Center" Margin="5,0,0,0" TabIndex="20" />
78-
<CheckBox Name="chkGlobalAlt" Content="Alt" VerticalAlignment="Center" Margin="5,0,0,0" TabIndex="21" />
79-
<CheckBox Name="chkGlobalWin" Content="Win" VerticalAlignment="Center" Margin="5,0,0,0" TabIndex="22"/>
80-
<TextBox Name="txtHotKey" Width="23" Height="23" MaxLength="1" Margin="5,0,0,0" TabIndex="23" />
78+
<StackPanel Grid.Row="11" Grid.Column="1" Margin="10,0,0,0" Orientation="Horizontal">
79+
<CheckBox Name="chkGlobalCntrl" VerticalAlignment="Center" Content="Cntrl" TabIndex="19" />
80+
<CheckBox Name="chkGlobalShift" Margin="5,0,0,0" VerticalAlignment="Center" Content="Shift" TabIndex="20" />
81+
<CheckBox Name="chkGlobalAlt" Margin="5,0,0,0" VerticalAlignment="Center" Content="Alt" TabIndex="21" />
82+
<CheckBox Name="chkGlobalWin" Margin="5,0,0,0" VerticalAlignment="Center" Content="Win" TabIndex="22" />
83+
<TextBox Name="txtHotKey" Width="23" Height="23" Margin="5,0,0,0" MaxLength="1" TabIndex="23" />
8184

8285
</StackPanel>
86+
<TextBlock Grid.Row="12" Style="{DynamicResource OptionHeaderStyle}" Text="Global Answer Hotkey:" />
87+
<StackPanel Grid.Row="12" Grid.Column="1" Margin="10,0,0,0" Orientation="Horizontal">
88+
<CheckBox Name="chkGlobalAnsCntrl" VerticalAlignment="Center" Content="Cntrl" />
89+
<CheckBox Name="chkGlobalAnsShift" Margin="5,0,0,0" VerticalAlignment="Center" Content="Shift" />
90+
<CheckBox Name="chkGlobalAnsAlt" Margin="5,0,0,0" VerticalAlignment="Center" Content="Alt" />
91+
<CheckBox Name="chkGlobalAnsWin" Margin="5,0,0,0" VerticalAlignment="Center" Content="Win" />
92+
<TextBox Name="txtHotKeyAns" Width="23" Height="23" Margin="5,0,0,0" MaxLength="1" />
93+
</StackPanel>
94+
<TextBlock Grid.Row="13" Style="{DynamicResource OptionHeaderStyle}" Text="Global End Hotkey:" />
95+
<StackPanel Grid.Row="13" Grid.Column="1" Margin="10,0,0,0" Orientation="Horizontal">
96+
<CheckBox Name="chkGlobalEndCntrl" VerticalAlignment="Center" Content="Cntrl" />
97+
<CheckBox Name="chkGlobalEndShift" Margin="5,0,0,0" VerticalAlignment="Center" Content="Shift" />
98+
<CheckBox Name="chkGlobalEndAlt" Margin="5,0,0,0" VerticalAlignment="Center" Content="Alt" />
99+
<CheckBox Name="chkGlobalEndWin" Margin="5,0,0,0" VerticalAlignment="Center" Content="Win" />
100+
<TextBox Name="txtHotKeyEnd" Width="23" Height="23" Margin="5,0,0,0" MaxLength="1" />
101+
</StackPanel>
102+
<TextBlock Grid.Row="14" Style="{DynamicResource OptionHeaderStyle}" Text="Global Mute Hotkey:" />
103+
<StackPanel Grid.Row="14" Grid.Column="1" Margin="10,0,0,0" Orientation="Horizontal">
104+
<CheckBox Name="chkGlobalMuteCntrl" VerticalAlignment="Center" Content="Cntrl" />
105+
<CheckBox Name="chkGlobalMuteShift" Margin="5,0,0,0" VerticalAlignment="Center" Content="Shift" />
106+
<CheckBox Name="chkGlobalMuteAlt" Margin="5,0,0,0" VerticalAlignment="Center" Content="Alt" />
107+
<CheckBox Name="chkGlobalMuteWin" Margin="5,0,0,0" VerticalAlignment="Center" Content="Win" />
108+
<TextBox Name="txtHotKeyMute" Width="23" Height="23" Margin="5,0,0,0" MaxLength="1" />
109+
</StackPanel>
83110
</Grid>
84111
<StackPanel Grid.Row="1" Grid.Column="1">
85112
<CheckBox x:Name="chkIncomingBalloons" VerticalAlignment="Center" Content="Show Incoming Call Notification Balloons" FontSize="13.333" FontWeight="Bold" TabIndex="26" />

Options.xaml.cs

Lines changed: 43 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
using System.Collections.Generic;
33
using System.Linq;
44
using System.Windows;
5-
using System.Windows.Forms;
5+
using System.Windows.Controls;
6+
using static FSClient.Broker;
67
using WF=System.Windows.Forms;
78

89
namespace FSClient {
@@ -78,19 +79,11 @@ private void load_devices(bool from_settings) {
7879
txtRecordingPath.Text = broker.recordings_folder;
7980
chkDirectSip.IsChecked = broker.DirectSipDial;
8081
chkAlwaysOnTopDuringCall.IsChecked = broker.AlwaysOnTopDuringCall;
81-
chkGlobalAlt.IsChecked = broker.global_hotkey.modifiers.HasFlag(UnManaged.KeyModifier.Alt);
82-
chkGlobalShift.IsChecked = broker.global_hotkey.modifiers.HasFlag(UnManaged.KeyModifier.Shift);
83-
chkGlobalCntrl.IsChecked = broker.global_hotkey.modifiers.HasFlag(UnManaged.KeyModifier.Ctrl);
84-
chkGlobalWin.IsChecked = broker.global_hotkey.modifiers.HasFlag(UnManaged.KeyModifier.Win);
85-
var key_char = broker.global_hotkey.key.ToString();
86-
if (broker.global_hotkey.key == System.Windows.Input.Key.None)
87-
key_char = "";
88-
key_char = key_char.Replace("NumPad", "").Replace("Oem","");
89-
if (key_char.Length == 2)
90-
key_char = key_char.Replace("D", "");
91-
if (key_char.Length > 1)
92-
key_char = "";
93-
txtHotKey.Text = key_char;
82+
SetHotKeyFormFromSetting(GLOBAL_HOT_KEY_TYPE.Focus, chkGlobalAlt, chkGlobalCntrl, chkGlobalShift, chkGlobalWin, txtHotKey);
83+
SetHotKeyFormFromSetting(GLOBAL_HOT_KEY_TYPE.End, chkGlobalEndAlt, chkGlobalEndCntrl, chkGlobalEndShift, chkGlobalEndWin, txtHotKeyEnd);
84+
SetHotKeyFormFromSetting(GLOBAL_HOT_KEY_TYPE.Answer, chkGlobalAnsAlt, chkGlobalAnsCntrl, chkGlobalAnsShift, chkGlobalAnsWin, txtHotKeyAns);
85+
SetHotKeyFormFromSetting(GLOBAL_HOT_KEY_TYPE.Mute, chkGlobalMuteAlt, chkGlobalMuteCntrl, chkGlobalMuteShift, chkGlobalMuteWin, txtHotKeyMute);
86+
9487
comboGUIStartup.SelectedItem = (from g in GuiOptions where g.key == broker.GUIStartup select g).FirstOrDefault();
9588
if (comboGUIStartup.SelectedIndex == -1)
9689
comboGUIStartup.SelectedIndex = 0;
@@ -102,6 +95,22 @@ private void load_devices(bool from_settings) {
10295
comboHeadsetDevice.SelectedIndex = 0;
10396
}
10497
}
98+
private void SetHotKeyFormFromSetting(GLOBAL_HOT_KEY_TYPE type, CheckBox alt_box, CheckBox cntrl_box, CheckBox shift_box, CheckBox win_box, TextBox txt_box) {
99+
var setting = broker.GetHotKeySetting(type);
100+
alt_box.IsChecked = setting.modifiers.HasFlag(UnManaged.KeyModifier.Alt);
101+
shift_box.IsChecked = setting.modifiers.HasFlag(UnManaged.KeyModifier.Shift);
102+
cntrl_box.IsChecked = setting.modifiers.HasFlag(UnManaged.KeyModifier.Ctrl);
103+
win_box.IsChecked = setting.modifiers.HasFlag(UnManaged.KeyModifier.Win);
104+
var key_char = setting.key.ToString();
105+
if (setting.key == System.Windows.Input.Key.None)
106+
key_char = "";
107+
key_char = key_char.Replace("NumPad", "").Replace("Oem", "");
108+
if (key_char.Length == 2)
109+
key_char = key_char.Replace("D", "");
110+
if (key_char.Length > 1)
111+
key_char = "";
112+
txt_box.Text = key_char;
113+
}
105114
private void SaveSettings() {
106115
PortAudio.AudioDevice indev = comboHeadsetInput.SelectedItem as PortAudio.AudioDevice;
107116
PortAudio.AudioDevice outdev = comboHeadsetOutput.SelectedItem as PortAudio.AudioDevice;
@@ -129,26 +138,33 @@ private void SaveSettings() {
129138
broker.CheckForUpdates = chkUpdatesOnStart.IsChecked == true ? "OnStart" : "Never";
130139
broker.GUIStartup = (comboGUIStartup.SelectedItem as ComboOption).key;
131140
broker.theme = (comboTheme.SelectedItem as ComboOption).key;
132-
System.Windows.Input.Key hot_key = System.Windows.Input.Key.None;
141+
SetHotKeyFromWindow(GLOBAL_HOT_KEY_TYPE.Focus, chkGlobalAlt, chkGlobalCntrl, chkGlobalShift, chkGlobalWin, txtHotKey);
142+
SetHotKeyFromWindow(GLOBAL_HOT_KEY_TYPE.End, chkGlobalEndAlt, chkGlobalEndCntrl, chkGlobalEndShift, chkGlobalEndWin, txtHotKeyEnd);
143+
SetHotKeyFromWindow(GLOBAL_HOT_KEY_TYPE.Answer, chkGlobalAnsAlt, chkGlobalAnsCntrl, chkGlobalAnsShift, chkGlobalAnsWin, txtHotKeyAns);
144+
SetHotKeyFromWindow(GLOBAL_HOT_KEY_TYPE.Mute, chkGlobalMuteAlt, chkGlobalMuteCntrl, chkGlobalMuteShift, chkGlobalMuteWin, txtHotKeyMute);
145+
146+
broker.SetActiveHeadset(comboHeadsetDevice.SelectedItem as string);
147+
broker.SaveSettings();
148+
149+
}
150+
private void SetHotKeyFromWindow(GLOBAL_HOT_KEY_TYPE type, CheckBox alt_box, CheckBox cntrl_box, CheckBox shift_box, CheckBox win_box, TextBox txt_box) {
151+
System.Windows.Input.Key hot_key = System.Windows.Input.Key.None;
133152
var hot_key_modifier = UnManaged.KeyModifier.None;
134-
if (chkGlobalAlt.IsChecked == true)
153+
if (alt_box.IsChecked == true)
135154
hot_key_modifier |= UnManaged.KeyModifier.Alt;
136-
if (chkGlobalCntrl.IsChecked == true)
155+
if (cntrl_box.IsChecked == true)
137156
hot_key_modifier |= UnManaged.KeyModifier.Ctrl;
138-
if (chkGlobalShift.IsChecked == true)
157+
if (shift_box.IsChecked == true)
139158
hot_key_modifier |= UnManaged.KeyModifier.Shift;
140-
if (chkGlobalWin.IsChecked == true)
159+
if (win_box.IsChecked == true)
141160
hot_key_modifier |= UnManaged.KeyModifier.Win;
142-
if (!String.IsNullOrWhiteSpace(txtHotKey.Text)) {
143-
var key = txtHotKey.Text.ToUpper();
161+
if (!String.IsNullOrWhiteSpace(txt_box.Text)) {
162+
var key = txt_box.Text.ToUpper();
144163
if (key[0] >= 0 && key[0] <= 9)
145164
key = "D" + key;
146-
Enum.TryParse<System.Windows.Input.Key>(key,out hot_key);
165+
Enum.TryParse<System.Windows.Input.Key>(key, out hot_key);
147166
}
148-
broker.SetHotKey(new Broker.HotKeySetting {modifiers = hot_key_modifier,key=hot_key });
149-
broker.SetActiveHeadset(comboHeadsetDevice.SelectedItem as string);
150-
broker.SaveSettings();
151-
167+
broker.SetHotKey(type, new Broker.HotKeySetting { modifiers = hot_key_modifier, key = hot_key });
152168
}
153169
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) {
154170

@@ -187,7 +203,7 @@ private void btnPluginSettings_Click(object sender, RoutedEventArgs e){
187203
private void btnPathBrowse_Click(object sender, RoutedEventArgs e) {
188204
WF.FolderBrowserDialog dlg = new WF.FolderBrowserDialog();
189205
dlg.SelectedPath = txtRecordingPath.Text;
190-
DialogResult res = dlg.ShowDialog();
206+
WF.DialogResult res = dlg.ShowDialog();
191207
if (res != System.Windows.Forms.DialogResult.OK)
192208
return;
193209
txtRecordingPath.Text = dlg.SelectedPath;

Properties/AssemblyInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,5 +51,5 @@
5151
// You can specify all the values or you can default the Build and Revision Numbers
5252
// by using the '*' as shown below:
5353
// [assembly: AssemblyVersion("1.0.*")]
54-
[assembly: AssemblyVersion("1.4.9.0")]
55-
[assembly: AssemblyFileVersion("1.4.9.0")]
54+
[assembly: AssemblyVersion("1.4.10.0")]
55+
[assembly: AssemblyFileVersion("1.4.10.0")]

Properties/Settings.Designer.cs

Lines changed: 36 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)