diff --git a/common/windows/delphi/ext/sentry/test/SentryClientVclTest.dpr b/common/windows/delphi/ext/sentry/test/SentryClientVclTest.dpr
index 55cd96c638..17baef46de 100644
--- a/common/windows/delphi/ext/sentry/test/SentryClientVclTest.dpr
+++ b/common/windows/delphi/ext/sentry/test/SentryClientVclTest.dpr
@@ -18,7 +18,7 @@ uses
{$R *.res}
begin
- TKeymanSentryClient.Start(TSentryClientVcl, kscpDesktop, '');
+ TKeymanSentryClient.Start(TSentryClientVcl, kscpDesktop, '', [kscfCaptureExceptions, kscfShowUI, kscfTerminate]);
try
Application.Initialize;
Application.MainFormOnTaskbar := True;
diff --git a/common/windows/delphi/general/Keyman.System.KeymanSentryClient.pas b/common/windows/delphi/general/Keyman.System.KeymanSentryClient.pas
index 8c195f059d..65ad529f21 100644
--- a/common/windows/delphi/general/Keyman.System.KeymanSentryClient.pas
+++ b/common/windows/delphi/general/Keyman.System.KeymanSentryClient.pas
@@ -9,7 +9,8 @@ uses
type
TKeymanSentryClientProject = (kscpDesktop, kscpDeveloper);
- TKeymanSentryClientFlags = set of (kscfCaptureExceptions, kscfShowUI, kscfTerminate);
+ TKeymanSentryClientFlags = set of (kscfCaptureExceptions, kscfShowUI, kscfTerminate,
+ kscfReportExceptions, kscfReportMessages);
TKeymanSentryClient = class
private
class var FInstance: TKeymanSentryClient;
@@ -38,7 +39,7 @@ type
class procedure Breadcrumb(const BreadcrumbType, Message: string; const Category: string = ''; const Level: string = 'info');
- class procedure Start(SentryClientClass: TSentryClientClass; AProject: TKeymanSentryClientProject; const ALogger: string; AFlags: TKeymanSentryClientFlags = [kscfCaptureExceptions, kscfShowUI, kscfTerminate]);
+ class procedure Start(SentryClientClass: TSentryClientClass; AProject: TKeymanSentryClientProject; const ALogger: string; AFlags: TKeymanSentryClientFlags);
class procedure Stop;
class property Client: TSentryClient read FClient;
class property Enabled: Boolean read GetEnabled;
@@ -52,6 +53,7 @@ type
const S_Sentry_ViewEvent_URL = 'https://sentry.io/organizations/keyman/projects/%0:s/events/%1:s/'; // Do not localize
end;
+function LoadKeymanDesktopSentryFlags(Default: TKeymanSEntryClientFlags = [kscfCaptureExceptions, kscfShowUI, kscfTerminate]): TKeymanSentryClientFlags;
implementation
@@ -315,7 +317,7 @@ var
reg: TRegistry;
o: TSentryClientOptions;
f: TSentryClientFlags;
- path, RegKey: string;
+ path: string;
begin
Assert(not Assigned(FInstance));
@@ -350,29 +352,11 @@ begin
// Load the registry settings for privacy settings
- if AProject = kscpDesktop
- then RegKey := SRegKey_KeymanEngine_CU
- else RegKey := SRegKey_IDEOptions_CU;
+ if kscfReportExceptions in FFlags
+ then Include(f, scfReportExceptions);
- reg := TRegistry.Create;
- try
- if reg.OpenKeyReadOnly(RegKey) then
- begin
- if not reg.ValueExists(SRegValue_AutomaticallyReportErrors) or
- reg.ReadBool(SRegValue_AutomaticallyReportErrors) then
- Include(f, scfReportExceptions);
- if not reg.ValueExists(SRegValue_AutomaticallyReportUsage) or
- reg.ReadBool(SRegValue_AutomaticallyReportUsage) then
- Include(f, scfReportMessages);
- end
- else
- begin
- Include(f, scfReportExceptions);
- Include(f, scfReportMessages);
- end;
- finally
- reg.Free;
- end;
+ if kscfReportMessages in FFlags
+ then Include(f, scfReportMessages);
o.HandlerPath := ExtractFilePath(path) + 'crashpad_handler.exe';
o.DatabasePath := TKeymanPaths.ErrorLogPath + 'sentry-'+SENTRY_SDK_VERSION+'-db';
@@ -467,5 +451,36 @@ begin
writeln(n); // We'll never get here, but this stops a compiler warning
end;
+// These functions may be moved elsewhere in the future, but in order to remove
+// the registry load from TKeymanSentryClient, we'll start by extracting them
+// from the constructor
+
+function LoadKeymanDesktopSentryFlags(Default: TKeymanSentryClientFlags): TKeymanSentryClientFlags;
+var
+ reg: TRegistry;
+begin
+ Result := Default;
+
+ reg := TRegistry.Create;
+ try
+ if reg.OpenKeyReadOnly(SRegKey_KeymanEngine_CU) then
+ begin
+ if not reg.ValueExists(SRegValue_AutomaticallyReportErrors) or
+ reg.ReadBool(SRegValue_AutomaticallyReportErrors) then
+ Include(Result, kscfReportExceptions);
+ if not reg.ValueExists(SRegValue_AutomaticallyReportUsage) or
+ reg.ReadBool(SRegValue_AutomaticallyReportUsage) then
+ Include(Result, kscfReportMessages);
+ end
+ else
+ begin
+ Include(Result, kscfReportExceptions);
+ Include(Result, kscfReportMessages);
+ end;
+ finally
+ reg.Free;
+ end;
+end;
+
end.
diff --git a/common/windows/delphi/general/RegistryKeys.pas b/common/windows/delphi/general/RegistryKeys.pas
index 91a9af5144..35f5d32f77 100644
--- a/common/windows/delphi/general/RegistryKeys.pas
+++ b/common/windows/delphi/general/RegistryKeys.pas
@@ -300,7 +300,6 @@ const
SRegKey_IDE_CU = SRegKey_KeymanDeveloper_CU + '\IDE'; // CU
SRegKey_IDEDock_CU = SRegKey_IDE_CU + '\Dock'; // CU
SRegKey_IDEFiles_CU = SRegKey_IDE_CU + '\Files'; // CU
- SRegKey_IDEOptions_CU = SRegKey_IDE_CU + '\Options'; // CU
SRegKey_IDECharacterMap_CU = SRegKey_IDE_CU + '\Character Map'; // CU
SRegKey_IDEColours_CU = SRegKey_IDE_CU + '\Colours'; // CU
SRegKey_IDEEditFonts_CU = SRegKey_IDE_CU + '\EditFonts'; // CU
@@ -355,53 +354,6 @@ const
SRegValue_IDEVKbd_ExportBMPUnicode = 'export bmp unicode'; // CU
SRegValue_IDEVKbd_ExportBMPPixelWidth = 'export bmp pixel width'; // CU
- { SRegKey_IDEOptions values }
-
- SRegValue_IDEOptLinkFontSizes = 'link font sizes'; // CU
- SRegValue_IDEOptUseTabCharacter = 'use tab char'; // CU
- SRegValue_IDEOptIndentSize = 'indent size'; // CU
- SRegValue_IDEOptDocVirusCheck = 'warn if packaging doc files'; // CU
- SRegValue_IDEOptUseSyntaxHighlighting = 'use syntax highlighting'; // CU
- SRegValue_IDEOptToolbarVisible = 'toolbar visible'; // CU
- SRegValue_IDEOptUseOldDebugger = 'use old debugger'; // CU
- SRegValue_IDEOptEditorTheme = 'editor theme'; // CU
-
- SRegValue_IDEOptDebuggerBreakWhenExitingLine = 'debugger break when exiting line'; // CU
- SRegValue_IDEOptDebuggerSingleStepAfterBreak = 'debugger single step after break'; // CU
- SRegValue_IDEOptDebuggerShowStoreOffset = 'debugger show store offset'; // CU
- SRegValue_IDEOptDebuggerAutoRecompileWithDebugInfo = 'debugger recompile with debug info'; // CU
-
- SRegValue_IDEOptDebuggerAutoResetBeforeCompiling = 'debugger auto reset before compilng'; // CU
- SRegValue_IDEOptAutoSaveBeforeCompiling = 'auto save before compiling'; // CU
- SRegValue_IDEOptOSKAutoSaveBeforeImporting = 'osk auto save before importing'; // CU
-
- // Note: keeping 'web host port' reg value name to ensure settings maintained
- // from version 14.0 and earlier of Keyman Developer. Other values are
- // new with Keyman Developer 15.0
- SRegValue_IDEOptServerPort = 'web host port'; // I4021
- SRegValue_IDEOptServerKeepAlive = 'server keep alive';
- SRegValue_IDEOptServerNgrokToken = 'server ngrok token';
- SRegValue_IDEOptServerNgrokRegion = 'server ngrok region';
- SRegValue_IDEOptServerUseLocalAddresses = 'server use local addresses';
- SRegValue_IDEOptServerUseNgrok = 'server use ngrok';
- SRegValue_IDEOptServerShowConsoleWindow = 'server show console window';
-
- SRegValue_IDEOptCharMapDisableDatabaseLookups = 'char map disable database lookups'; // CU
- SRegValue_IDEOptCharMapAutoLookup = 'char map auto lookup'; // CU
-
- SRegValue_IDEOptOpenKeyboardFilesInSourceView = 'open keyboard files in source view'; // CU // I4751
-
- SRegValue_IDEDisplayTheme = 'display theme'; // I4796
-
- SRegValue_IDEOptExternalEditorPath = 'external editor path'; // CU
-
- SRegValue_IDEOptSMTPServer = 'smtp server'; // CU // I4506
- SRegValue_IDEOptTestEmailAddresses = 'test email addresses'; // CU // I4506
-
- SRegValue_IDEOpt_WebLadderLength = 'web ladder length'; // CU
- CRegValue_IDEOpt_WebLadderLength_Default = 100;
-
- SRegValue_IDEOpt_DefaultProjectPath = 'default project path';
{-------------------------------------------------------------------------------
- Shared keys and values -
diff --git a/developer/src/kmconvert/kmconvert.dpr b/developer/src/kmconvert/kmconvert.dpr
index be9aeae418..117f84a0a2 100644
--- a/developer/src/kmconvert/kmconvert.dpr
+++ b/developer/src/kmconvert/kmconvert.dpr
@@ -85,7 +85,9 @@ uses
KeymanPaths in '..\..\..\common\windows\delphi\general\KeymanPaths.pas',
Keyman.System.Standards.LangTagsRegistry in '..\..\..\common\windows\delphi\standards\Keyman.System.Standards.LangTagsRegistry.pas',
Keyman.Developer.System.Project.UrlRenderer in '..\TIKE\project\Keyman.Developer.System.Project.UrlRenderer.pas',
- Keyman.System.LexicalModelUtils in '..\common\delphi\lexicalmodels\Keyman.System.LexicalModelUtils.pas';
+ Keyman.System.LexicalModelUtils in '..\common\delphi\lexicalmodels\Keyman.System.LexicalModelUtils.pas',
+ KeymanDeveloperOptions in '..\TIKE\main\KeymanDeveloperOptions.pas',
+ Keyman.Developer.System.KeymanDeveloperPaths in '..\tike\main\Keyman.Developer.System.KeymanDeveloperPaths.pas';
{$R icons.RES}
{$R version.res}
@@ -94,7 +96,7 @@ uses
const
LOGGER_DEVELOPER_TOOLS_KMCONVERT = TKeymanSentryClient.LOGGER_DEVELOPER_TOOLS + '.kmconvert';
begin
- TKeymanSentryClient.Start(TSentryClientConsole, kscpDeveloper, LOGGER_DEVELOPER_TOOLS_KMCONVERT);
+ TKeymanSentryClient.Start(TSentryClientConsole, kscpDeveloper, LOGGER_DEVELOPER_TOOLS_KMCONVERT, LoadKeymanDeveloperSentryFlags);
try
try
TKeymanSentryClient.Validate;
diff --git a/developer/src/kmconvert/kmconvert.dproj b/developer/src/kmconvert/kmconvert.dproj
index cb90099eff..cc5edff0a4 100644
--- a/developer/src/kmconvert/kmconvert.dproj
+++ b/developer/src/kmconvert/kmconvert.dproj
@@ -194,6 +194,8 @@
+
+
Cfg_2
Base
diff --git a/developer/src/tike/main/Keyman.Developer.System.Main.pas b/developer/src/tike/main/Keyman.Developer.System.Main.pas
index 43cb5c674d..0d257020dd 100644
--- a/developer/src/tike/main/Keyman.Developer.System.Main.pas
+++ b/developer/src/tike/main/Keyman.Developer.System.Main.pas
@@ -12,6 +12,7 @@ uses
uCEFApplication,
uCEFTypes,
+ KeymanDeveloperOptions,
Keyman.Developer.System.TikeCommandLine,
Keyman.System.CEFManager,
Keyman.System.KeymanSentryClient,
@@ -36,7 +37,7 @@ begin
Application.Initialize;
Application.Title := 'Keyman Developer';
- TKeymanSentryClient.Start(TSentryClientVcl, kscpDeveloper, LOGGER_DEVELOPER_IDE_TIKE);
+ TKeymanSentryClient.Start(TSentryClientVcl, kscpDeveloper, LOGGER_DEVELOPER_IDE_TIKE, LoadKeymanDeveloperSentryFlags);
try
try
RunWithExceptionsHandled;
diff --git a/developer/src/tike/main/Keyman.Developer.System.TikeCommandLine.pas b/developer/src/tike/main/Keyman.Developer.System.TikeCommandLine.pas
index ab05833e4f..05ad974123 100644
--- a/developer/src/tike/main/Keyman.Developer.System.TikeCommandLine.pas
+++ b/developer/src/tike/main/Keyman.Developer.System.TikeCommandLine.pas
@@ -38,31 +38,17 @@ uses
Vcl.Dialogs,
Winapi.Windows,
- ErrorControlledRegistry,
Keyman.Developer.System.LaunchProjects,
- RegistryKeys,
+ KeymanDeveloperOptions,
utilexecute;
{ TTikeCommandLine }
constructor TTikeCommandLine.Create;
-var
- reg: TRegistryErrorControlled;
begin
inherited Create;
- FStartupProjectPath := '';
-
- reg := TRegistryErrorControlled.Create; // I2890
- try
- if reg.OpenKeyReadOnly(SRegKey_IDEOptions_CU) then
- begin
- if reg.ValueExists(SRegValue_ActiveProject) then
- FStartupProjectPath := reg.ReadString(SRegValue_ActiveProject);
- end;
- finally
- reg.Free;
- end;
+ FStartupProjectPath := FKeymanDeveloperOptions.StartupProjectPath;
if (FStartupProjectPath <> '') and not FileExists(FStartupProjectPath) then
begin
diff --git a/developer/src/tike/main/KeymanDeveloperOptions.pas b/developer/src/tike/main/KeymanDeveloperOptions.pas
index 4f757b17da..5eb294ed83 100644
--- a/developer/src/tike/main/KeymanDeveloperOptions.pas
+++ b/developer/src/tike/main/KeymanDeveloperOptions.pas
@@ -33,7 +33,8 @@ uses
Winapi.Windows,
ErrorControlledRegistry,
- RegistryKeys;
+ RegistryKeys,
+ Keyman.System.KeymanSentryClient;
type
TKeymanDeveloperOptions = class
@@ -69,6 +70,8 @@ type
FServerNgrokToken: string;
FServerNgrokRegion: string;
FServerKeepAlive: Boolean;
+ FToolbarVisible: Boolean;
+ FStartupProjectPath: string;
procedure CloseRegistry;
procedure OpenRegistry;
function regReadString(const nm, def: string): string;
@@ -123,9 +126,13 @@ type
property ExternalEditorPath: WideString read FExternalEditorPath write FExternalEditorPath;
property SMTPServer: string read FSMTPServer write FSMTPServer; // I4506
property TestEmailAddresses: string read FTestEmailAddresses write FTestEmailAddresses; // I4506
+
+ property ToolbarVisible: Boolean read FToolbarVisible write FToolbarVisible;
+ property StartupProjectPath: string read FStartupProjectPath write FStartupProjectPath;
end;
function FKeymanDeveloperOptions: TKeymanDeveloperOptions;
+function LoadKeymanDeveloperSentryFlags: TKeymanSentryClientFlags;
//procedure CreateKeymanDeveloperOptions;
//procedure DestroyKeymanDeveloperOptions;
@@ -150,6 +157,7 @@ uses
System.Classes,
System.JSON,
System.Math,
+ System.StrUtils,
Winapi.ShlObj,
JsonUtil,
@@ -157,6 +165,57 @@ uses
utilsystem,
GetOSVersion;
+const
+ { SRegKey_IDEOptions values }
+ SRegKey_IDEOptions_CU = SRegKey_IDE_CU + '\Options'; // CU
+
+ SRegValue_IDEOptLinkFontSizes = 'link font sizes'; // CU
+ SRegValue_IDEOptUseTabCharacter = 'use tab char'; // CU
+ SRegValue_IDEOptIndentSize = 'indent size'; // CU
+ SRegValue_IDEOptDocVirusCheck = 'warn if packaging doc files'; // CU
+ SRegValue_IDEOptUseSyntaxHighlighting = 'use syntax highlighting'; // CU
+ SRegValue_IDEOptToolbarVisible = 'toolbar visible'; // CU
+ SRegValue_IDEOptUseOldDebugger = 'use old debugger'; // CU
+ SRegValue_IDEOptEditorTheme = 'editor theme'; // CU
+
+ SRegValue_IDEOptDebuggerBreakWhenExitingLine = 'debugger break when exiting line'; // CU
+ SRegValue_IDEOptDebuggerSingleStepAfterBreak = 'debugger single step after break'; // CU
+ SRegValue_IDEOptDebuggerShowStoreOffset = 'debugger show store offset'; // CU
+ SRegValue_IDEOptDebuggerAutoRecompileWithDebugInfo = 'debugger recompile with debug info'; // CU
+
+ SRegValue_IDEOptDebuggerAutoResetBeforeCompiling = 'debugger auto reset before compilng'; // CU
+ SRegValue_IDEOptAutoSaveBeforeCompiling = 'auto save before compiling'; // CU
+ SRegValue_IDEOptOSKAutoSaveBeforeImporting = 'osk auto save before importing'; // CU
+
+ // Note: keeping 'web host port' reg value name to ensure settings maintained
+ // from version 14.0 and earlier of Keyman Developer. Other values are
+ // new with Keyman Developer 15.0
+ SRegValue_IDEOptServerPort = 'web host port'; // I4021
+ SRegValue_IDEOptServerKeepAlive = 'server keep alive';
+ SRegValue_IDEOptServerNgrokToken = 'server ngrok token';
+ SRegValue_IDEOptServerNgrokRegion = 'server ngrok region';
+ SRegValue_IDEOptServerUseLocalAddresses = 'server use local addresses';
+ SRegValue_IDEOptServerUseNgrok = 'server use ngrok';
+ SRegValue_IDEOptServerShowConsoleWindow = 'server show console window';
+
+ SRegValue_IDEOptCharMapDisableDatabaseLookups = 'char map disable database lookups'; // CU
+ SRegValue_IDEOptCharMapAutoLookup = 'char map auto lookup'; // CU
+
+ SRegValue_IDEOptOpenKeyboardFilesInSourceView = 'open keyboard files in source view'; // CU // I4751
+
+ SRegValue_IDEDisplayTheme = 'display theme'; // I4796
+
+ SRegValue_IDEOptExternalEditorPath = 'external editor path'; // CU
+
+ SRegValue_IDEOptSMTPServer = 'smtp server'; // CU // I4506
+ SRegValue_IDEOptTestEmailAddresses = 'test email addresses'; // CU // I4506
+
+ SRegValue_IDEOpt_WebLadderLength = 'web ladder length'; // CU
+ CRegValue_IDEOpt_WebLadderLength_Default = 100;
+
+ SRegValue_IDEOpt_DefaultProjectPath = 'default project path';
+
+
var
AFKeymanDeveloperOptions: TKeymanDeveloperOptions = nil;
@@ -247,6 +306,10 @@ begin
(reg.ReadInteger(SRegValue_AutomaticallyReportErrors) <> 0);
FReportUsage := not reg.ValueExists(SRegValue_AutomaticallyReportUsage) or
(reg.ReadInteger(SRegValue_AutomaticallyReportUsage) <> 0);
+
+ FToolbarVisible := regReadString(SRegValue_IDEOptToolbarVisible, '1') <> '0';
+
+ FStartupProjectPath := regReadString(SRegValue_ActiveProject, '');
finally
CloseRegistry;
end;
@@ -301,6 +364,10 @@ begin
// to write integers as a REG_SZ type and that's far too messy to change now.
reg.WriteInteger(SRegValue_AutomaticallyReportErrors, IfThen(FReportErrors, 1, 0));
reg.WriteInteger(SRegValue_AutomaticallyReportUsage, IfThen(FReportUsage, 1, 0));
+
+ reg.WriteString(SRegValue_IDEOptToolbarVisible, IfThen(FToolbarVisible, '1', '0'));
+
+ reg.WriteString(SRegValue_ActiveProject, FStartupProjectPath);
finally
CloseRegistry;
end;
@@ -400,6 +467,15 @@ begin
Result := DefaultEditorThemeItemIndex(s) >= 0;
end;
+function LoadKeymanDeveloperSentryFlags: TKeymanSentryClientFlags;
+begin
+ Result := [kscfCaptureExceptions, kscfShowUI, kscfTerminate];
+ if FKeymanDeveloperOptions.ReportErrors then
+ Include(Result, kscfReportExceptions);
+ if FKeymanDeveloperOptions.ReportUsage then
+ Include(Result, kscfReportMessages);
+end;
+
initialization
finalization
DestroyKeymanDeveloperOptions;
diff --git a/developer/src/tike/main/UfrmMain.pas b/developer/src/tike/main/UfrmMain.pas
index 53fd7e378e..88a881b737 100644
--- a/developer/src/tike/main/UfrmMain.pas
+++ b/developer/src/tike/main/UfrmMain.pas
@@ -574,17 +574,8 @@ begin
Application.HelpFile := GetHelpURL; // I4677 // I4841
mHHelp := TWebHookHelpSystem.Create(Application.HelpFile); // I4677 // I4841
- with TRegistryErrorControlled.Create do // I2890
- try
- RootKey := HKEY_CURRENT_USER;
- if OpenKeyReadOnly(SRegKey_IDEOptions_CU) then
- begin
- if ValueExists(SRegValue_IDEOptToolbarVisible) and (ReadString(SRegValue_IDEOptToolbarVisible) = '0') then
- barTools.Visible := False;
- end;
- finally
- Free;
- end;
+ if not FKeymanDeveloperOptions.ToolbarVisible then
+ barTools.Visible := False;
RemoveOldestTikeEditFonts(False);
RemoveOldestTikeTestFonts(False);
@@ -671,25 +662,16 @@ begin
FChildWindows[i].Release; // I2595, probably not necessary
end;
- with TRegistryErrorControlled.Create do // I2890
- try
- RootKey := HKEY_CURRENT_USER;
- if OpenKey(SRegKey_IDEOptions_CU, True) then
- begin
- if IsGlobalProjectUIReady then
- begin
- FGlobalProject.Save; // I4691
- WriteString(SRegValue_ActiveProject, FGlobalProject.FileName);
- end
- else
- begin
- if ValueExists(SRegValue_ActiveProject) then
- DeleteValue(SRegValue_ActiveProject);
- end;
- end;
- finally
- Free;
+ if IsGlobalProjectUIReady then
+ begin
+ FGlobalProject.Save; // I4691
+ FKeymanDeveloperOptions.StartupProjectPath := FGlobalProject.FileName;
+ end
+ else
+ begin
+ FKeymanDeveloperOptions.StartupProjectPath := '';
end;
+ FKeymanDeveloperOptions.Write;
FreeAndNil(frmCharacterMapDock);
FreeAndNil(frmCharacterIdentifier); // I4807
diff --git a/windows/src/desktop/kmbrowserhost/kmbrowserhost.dpr b/windows/src/desktop/kmbrowserhost/kmbrowserhost.dpr
index ace5ef536a..ec4f1e55fa 100644
--- a/windows/src/desktop/kmbrowserhost/kmbrowserhost.dpr
+++ b/windows/src/desktop/kmbrowserhost/kmbrowserhost.dpr
@@ -32,7 +32,7 @@ const
LOGGER_DESKTOP_KMBROWSERHOST = TKeymanSentryClient.LOGGER_DESKTOP + '.kmbrowserhost';
begin
TKeymanSentryClient.Start(TSentryClient, kscpDesktop,
- LOGGER_DESKTOP_KMBROWSERHOST, [kscfCaptureExceptions, kscfTerminate]); // no ui wanted
+ LOGGER_DESKTOP_KMBROWSERHOST, LoadKeymanDesktopSentryFlags([kscfCaptureExceptions, kscfTerminate])); // no ui wanted
try
try
TKeymanSentryClient.Validate;
diff --git a/windows/src/desktop/kmconfig/kmconfig.dpr b/windows/src/desktop/kmconfig/kmconfig.dpr
index f1ec5817e7..5831b3876f 100644
--- a/windows/src/desktop/kmconfig/kmconfig.dpr
+++ b/windows/src/desktop/kmconfig/kmconfig.dpr
@@ -25,7 +25,7 @@ uses
const
LOGGER_DESKTOP_KMCONFIG = TKeymanSentryClient.LOGGER_DESKTOP + '.kmconfig';
begin
- TKeymanSentryClient.Start(TSentryClientConsole, kscpDesktop, LOGGER_DESKTOP_KMCONFIG);
+ TKeymanSentryClient.Start(TSentryClientConsole, kscpDesktop, LOGGER_DESKTOP_KMCONFIG, LoadKeymanDesktopSentryFlags);
try
try
TKeymanSentryClient.Validate;
diff --git a/windows/src/desktop/kmshell/kmshell.dpr b/windows/src/desktop/kmshell/kmshell.dpr
index befb47fcf9..722a277bf1 100644
--- a/windows/src/desktop/kmshell/kmshell.dpr
+++ b/windows/src/desktop/kmshell/kmshell.dpr
@@ -188,7 +188,7 @@ uses
const
LOGGER_DESKTOP_KMSHELL = TKeymanSentryClient.LOGGER_DESKTOP + '.kmshell';
begin
- TKeymanSentryClient.Start(TSentryClientVcl, kscpDesktop, LOGGER_DESKTOP_KMSHELL);
+ TKeymanSentryClient.Start(TSentryClientVcl, kscpDesktop, LOGGER_DESKTOP_KMSHELL, LoadKeymanDesktopSentryFlags);
try
CoInitFlags := COINIT_APARTMENTTHREADED;
FInitializeCEF := TCEFManager.Create;
diff --git a/windows/src/engine/keyman/keyman.dpr b/windows/src/engine/keyman/keyman.dpr
index 9f8a3fba8e..8685e8f4a6 100644
--- a/windows/src/engine/keyman/keyman.dpr
+++ b/windows/src/engine/keyman/keyman.dpr
@@ -125,7 +125,7 @@ uses
const
LOGGER_DESKTOP_ENGINE_KEYMAN = TKeymanSentryClient.LOGGER_DESKTOP_ENGINE + '.keyman';
begin
- TKeymanSentryClient.Start(TSentryClientVcl, kscpDesktop, LOGGER_DESKTOP_ENGINE_KEYMAN);
+ TKeymanSentryClient.Start(TSentryClientVcl, kscpDesktop, LOGGER_DESKTOP_ENGINE_KEYMAN, LoadKeymanDesktopSentryFlags);
try
Run;
finally
diff --git a/windows/src/engine/tsysinfo/tsysinfo.dpr b/windows/src/engine/tsysinfo/tsysinfo.dpr
index 8683352a3b..d2e70b65e0 100644
--- a/windows/src/engine/tsysinfo/tsysinfo.dpr
+++ b/windows/src/engine/tsysinfo/tsysinfo.dpr
@@ -71,7 +71,7 @@ const
LOGGER_DESKTOP_ENGINE_TSYSINFO = TKeymanSentryClient.LOGGER_DESKTOP_ENGINE + '.tsysinfo';
begin
TKeymanSentryClient.Start(TSentryClientVcl, kscpDesktop, LOGGER_DESKTOP_ENGINE_TSYSINFO,
- [kscfCaptureExceptions]); // no ui for exceptions, no termination
+ LoadKeymanDesktopSentryFlags([kscfCaptureExceptions])); // no ui for exceptions, no termination
try
if RunCrashReportHandler then
Exit;
diff --git a/windows/src/engine/tsysinfox64/tsysinfox64.dpr b/windows/src/engine/tsysinfox64/tsysinfox64.dpr
index 0a9d5ba16f..95b17ddeed 100644
--- a/windows/src/engine/tsysinfox64/tsysinfox64.dpr
+++ b/windows/src/engine/tsysinfox64/tsysinfox64.dpr
@@ -25,7 +25,7 @@ uses
const
LOGGER_DESKTOP_ENGINE_TSYSINFOX64 = TKeymanSentryClient.LOGGER_DESKTOP_ENGINE + '.tsysinfox64';
begin
- TKeymanSentryClient.Start(TSentryClient, kscpDesktop, LOGGER_DESKTOP_ENGINE_TSYSINFOX64);
+ TKeymanSentryClient.Start(TSentryClient, kscpDesktop, LOGGER_DESKTOP_ENGINE_TSYSINFOX64, LoadKeymanDesktopSentryFlags);
try
try
TKeymanSentryClient.Validate;