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;