From d67ac0c78ce728e57ab950f3db91faa0435eeba1 Mon Sep 17 00:00:00 2001 From: martin Date: Thu, 24 Jan 2013 20:43:41 +0000 Subject: [PATCH] IDE: SourceEditor: reduce work when applying global options git-svn-id: trunk@39958 - --- ide/main.pp | 13 +++++++++---- ide/sourceeditor.pp | 18 ++++++++++++++++++ 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/ide/main.pp b/ide/main.pp index f5109bb86f..b98ddb9cd8 100644 --- a/ide/main.pp +++ b/ide/main.pp @@ -4780,10 +4780,15 @@ begin if Restore then exit; if Project1<>nil then Project1.UpdateAllSyntaxHighlighter; - UpdateHighlighters(True); - SourceEditorManager.ReloadEditorOptions; - ReloadMenuShortCuts; - UpdateMacroListViewer; + SourceEditorManager.BeginGlobalUpdate; + try + UpdateHighlighters(True); + SourceEditorManager.ReloadEditorOptions; + ReloadMenuShortCuts; + UpdateMacroListViewer; + finally + SourceEditorManager.EndGlobalUpdate; + end; end; procedure TMainIDE.DoCodetoolsOptionsAfterWrite(Sender: TObject; Restore: boolean); diff --git a/ide/sourceeditor.pp b/ide/sourceeditor.pp index 951faf20e9..1fc81d20d2 100644 --- a/ide/sourceeditor.pp +++ b/ide/sourceeditor.pp @@ -1060,6 +1060,8 @@ type procedure OnIdle(Sender: TObject; var Done: Boolean); procedure LockAllEditorsInSourceChangeCache; procedure UnlockAllEditorsInSourceChangeCache; + procedure BeginGlobalUpdate; + procedure EndGlobalUpdate; procedure CloseFile(AEditor: TSourceEditorInterface); // history jumping procedure HistoryJump(Sender: TObject; CloseAction: TJumpHistoryAction); @@ -9654,6 +9656,22 @@ begin end; end; +procedure TSourceEditorManager.BeginGlobalUpdate; +var + i: integer; +begin + for i:=0 to SourceEditorCount - 1 do + SourceEditors[i].BeginGlobalUpdate; +end; + +procedure TSourceEditorManager.EndGlobalUpdate; +var + i: integer; +begin + for i:=0 to SourceEditorCount - 1 do + SourceEditors[i].EndGlobalUpdate; +end; + procedure TSourceEditorManager.CloseFile(AEditor: TSourceEditorInterface); var i, j: Integer;