mirror of
https://github.com/moparisthebest/Simba
synced 2024-11-15 13:55:08 -05:00
MML (ocr): Free old Fonts on Copy.
Simba: Free OCR_Fonts on Close.
This commit is contained in:
parent
58d504aa8b
commit
9ea3a6de83
@ -1648,26 +1648,30 @@ begin
|
||||
Thread.Client.IOManager.SetTarget(Selector.LastPick);
|
||||
|
||||
loadFontsOnScriptStart := (lowercase(LoadSettingDef('Settings/Fonts/LoadOnStartUp', 'True')) = 'true');
|
||||
// Copy our current fonts
|
||||
if not assigned(Self.OCR_Fonts) and loadFontsOnScriptStart and DirectoryExists(fontPath) then
|
||||
|
||||
if (loadFontsOnScriptStart) then
|
||||
begin
|
||||
Self.OCR_Fonts := TMOCR.Create(Thread.Client);
|
||||
if ((not (Assigned(OCR_Fonts))) and DirectoryExists(fontPath)) then
|
||||
begin
|
||||
OCR_Fonts := TMOCR.Create(Thread.Client);
|
||||
OCR_Fonts.InitTOCR(fontPath);
|
||||
Thread.Client.MOCR.Fonts := OCR_Fonts.Fonts
|
||||
end else
|
||||
if assigned(Self.OCR_Fonts) and loadFontsOnScriptStart then
|
||||
end;
|
||||
|
||||
if (Assigned(OCR_Fonts)) then
|
||||
Thread.Client.MOCR.Fonts := OCR_Fonts.Fonts;
|
||||
end;
|
||||
|
||||
{
|
||||
We pass the entire settings to the script; it will then create a Sandbox
|
||||
for settings that are exported to the script. This way we can access all
|
||||
the settings from the PSTHread, and scripts can only access limited
|
||||
the settings from the PSThread, and scripts can only access limited
|
||||
resources. Hopefully this won't cause any form / thread related problems?
|
||||
(Settings doesn't use the Settings form, iirc)
|
||||
Well, it was like this previously as well, we just passed a sandbox to it
|
||||
directly, but the sandbox still called Settings.
|
||||
}
|
||||
Thread.SetSettings(SettingsForm.Settings, SimbaSettingsFile);
|
||||
|
||||
Thread.OpenConnectionEvent:=@ThreadOpenConnectionEvent;
|
||||
Thread.WriteFileEvent:=@ThreadWriteFileEvent;
|
||||
Thread.OpenFileEvent:=@ThreadOpenFileEvent;
|
||||
@ -2501,6 +2505,10 @@ begin
|
||||
{ Free the plugins }
|
||||
PluginsGlob.Free;
|
||||
|
||||
{ Free Fonts }
|
||||
if (Assigned(OCR_Fonts)) then
|
||||
OCR_Fonts.Free;
|
||||
|
||||
SetLength(DebugStream, 0);
|
||||
DebugCriticalSection.Free;
|
||||
|
||||
@ -3122,7 +3130,6 @@ begin
|
||||
if Assigned(self.OCR_Fonts) then
|
||||
self.OCR_Fonts.Free;
|
||||
FormWriteln('Freeing the current fonts. Creating new ones now');
|
||||
// XXX: Can this cause problems when running scripts?
|
||||
Self.OCR_Fonts := TMOCR.Create(nil);
|
||||
OCR_Fonts.InitTOCR(fontPath);
|
||||
end;
|
||||
|
@ -176,12 +176,15 @@ end;
|
||||
{ Get the current pointer to our list of Fonts }
|
||||
function TMOCR.GetFonts:TMFonts;
|
||||
begin
|
||||
Exit(Self.FFonts);
|
||||
Result := Self.FFonts;
|
||||
end;
|
||||
|
||||
{ Set new Fonts. We set it to a Copy of NewFonts }
|
||||
procedure TMOCR.SetFonts(const NewFonts: TMFonts);
|
||||
begin
|
||||
if (Self.FFonts <> nil) then
|
||||
Self.FFonts.Free;
|
||||
|
||||
Self.FFonts := NewFonts.Copy(Self.Client);
|
||||
end;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user