mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-18 02:59:17 +02:00
IDE, SourceEditor: clean-up the new "lock-honouring" code, put UpdateProjectFiles back into CloseFile (it' honours the lock, while project closing)
git-svn-id: trunk@29581 -
This commit is contained in:
parent
93873ae295
commit
959a53f86e
@ -579,6 +579,7 @@ type
|
|||||||
private
|
private
|
||||||
FManager: TSourceEditorManager;
|
FManager: TSourceEditorManager;
|
||||||
FUpdateLock, FFocusLock: Integer;
|
FUpdateLock, FFocusLock: Integer;
|
||||||
|
FUpdateFlags: set of (ufPageNames, ufTabsAndPage, ufStatusBar, ufProjectFiles);
|
||||||
FPageIndex: Integer;
|
FPageIndex: Integer;
|
||||||
fAutoFocusLock: integer;
|
fAutoFocusLock: integer;
|
||||||
FIncrementalSearchPos: TPoint; // last set position
|
FIncrementalSearchPos: TPoint; // last set position
|
||||||
@ -619,7 +620,7 @@ type
|
|||||||
procedure SetIncrementalSearchStr(const AValue: string);
|
procedure SetIncrementalSearchStr(const AValue: string);
|
||||||
procedure IncrementalSearch(ANext, ABackward: Boolean);
|
procedure IncrementalSearch(ANext, ABackward: Boolean);
|
||||||
procedure UpdatePageNames;
|
procedure UpdatePageNames;
|
||||||
procedure UpdateProjectFiles;
|
procedure UpdateProjectFiles(ACurrentEditor: TSourceEditor = nil);
|
||||||
|
|
||||||
property NoteBookPage[Index: Integer]: TTabSheet read GetNoteBookPage;
|
property NoteBookPage[Index: Integer]: TTabSheet read GetNoteBookPage;
|
||||||
procedure NoteBookInsertPage(Index: Integer; const S: string);
|
procedure NoteBookInsertPage(Index: Integer; const S: string);
|
||||||
@ -4139,7 +4140,10 @@ var
|
|||||||
p: Integer;
|
p: Integer;
|
||||||
NewPageName: String;
|
NewPageName: String;
|
||||||
begin
|
begin
|
||||||
if SourceNotebook.FUpdateLock > 0 then exit;
|
if SourceNotebook.FUpdateLock > 0 then begin
|
||||||
|
include(SourceNotebook.FUpdateFlags, ufPageNames);
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
p:=SourceNotebook.FindPageWithEditor(Self);
|
p:=SourceNotebook.FindPageWithEditor(Self);
|
||||||
if EditorOpts.ShowTabNumbers and (p < 10) then
|
if EditorOpts.ShowTabNumbers and (p < 10) then
|
||||||
// Number pages 1, ..., 9, 0 -- according to Alt+N hotkeys.
|
// Number pages 1, ..., 9, 0 -- according to Alt+N hotkeys.
|
||||||
@ -5526,16 +5530,25 @@ procedure TSourceNotebook.UpdatePageNames;
|
|||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
begin
|
begin
|
||||||
if FUpdateLock > 0 then exit;
|
if FUpdateLock > 0 then begin
|
||||||
|
include(FUpdateFlags, ufPageNames);
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
for i:=0 to PageCount-1 do
|
for i:=0 to PageCount-1 do
|
||||||
FindSourceEditorWithPageIndex(i).UpdatePageName;
|
FindSourceEditorWithPageIndex(i).UpdatePageName;
|
||||||
UpdateTabsAndPageTitle;
|
UpdateTabsAndPageTitle;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSourceNotebook.UpdateProjectFiles;
|
procedure TSourceNotebook.UpdateProjectFiles(ACurrentEditor: TSourceEditor = nil);
|
||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
begin
|
begin
|
||||||
|
if FUpdateLock > 0 then begin
|
||||||
|
if ACurrentEditor <> nil then
|
||||||
|
ACurrentEditor.UpdateProjectFile;
|
||||||
|
include(FUpdateFlags, ufProjectFiles);
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
for i := 0 to EditorCount - 1 do
|
for i := 0 to EditorCount - 1 do
|
||||||
Editors[i].UpdateProjectFile;
|
Editors[i].UpdateProjectFile;
|
||||||
end;
|
end;
|
||||||
@ -5838,6 +5851,8 @@ end;
|
|||||||
|
|
||||||
procedure TSourceNotebook.IncUpdateLock;
|
procedure TSourceNotebook.IncUpdateLock;
|
||||||
begin
|
begin
|
||||||
|
if FUpdateLock = 0 then
|
||||||
|
FUpdateFlags := [];
|
||||||
inc(FUpdateLock);
|
inc(FUpdateLock);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -5846,8 +5861,11 @@ begin
|
|||||||
dec(FUpdateLock);
|
dec(FUpdateLock);
|
||||||
if FUpdateLock = 0 then begin
|
if FUpdateLock = 0 then begin
|
||||||
PageIndex := FPageIndex;
|
PageIndex := FPageIndex;
|
||||||
UpdatePageNames;
|
if (ufPageNames in FUpdateFlags) then UpdatePageNames;
|
||||||
UpdateStatusBar;
|
if (ufTabsAndPage in FUpdateFlags) then UpdateTabsAndPageTitle;
|
||||||
|
if (ufStatusBar in FUpdateFlags) then UpdateStatusBar;
|
||||||
|
if (ufProjectFiles in FUpdateFlags) then UpdateProjectFiles;
|
||||||
|
FUpdateFlags := [];
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -5893,7 +5911,10 @@ end;
|
|||||||
|
|
||||||
procedure TSourceNotebook.UpdateTabsAndPageTitle;
|
procedure TSourceNotebook.UpdateTabsAndPageTitle;
|
||||||
begin
|
begin
|
||||||
if FUpdateLock > 0 then exit;
|
if FUpdateLock > 0 then begin
|
||||||
|
include(FUpdateFlags, ufTabsAndPage);
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
if (PageCount = 1) and (EditorOpts.HideSingleTabInWindow) then begin
|
if (PageCount = 1) and (EditorOpts.HideSingleTabInWindow) then begin
|
||||||
Caption := FBaseCaption + ': ' + NotebookPages[0];
|
Caption := FBaseCaption + ': ' + NotebookPages[0];
|
||||||
FNotebook.ShowTabs := False;
|
FNotebook.ShowTabs := False;
|
||||||
@ -6166,7 +6187,7 @@ begin
|
|||||||
UpdatePageNames;
|
UpdatePageNames;
|
||||||
UpdateProjectFiles;
|
UpdateProjectFiles;
|
||||||
DestWin.UpdatePageNames;
|
DestWin.UpdatePageNames;
|
||||||
DestWin.UpdateProjectFiles;
|
DestWin.UpdateProjectFiles(Edit);
|
||||||
DestWin.UpdateActiveEditColors(Edit.EditorComponent);
|
DestWin.UpdateActiveEditColors(Edit.EditorComponent);
|
||||||
DestWin.UpdateStatusBar;
|
DestWin.UpdateStatusBar;
|
||||||
|
|
||||||
@ -6201,7 +6222,7 @@ begin
|
|||||||
|
|
||||||
UpdatePageNames;
|
UpdatePageNames;
|
||||||
UpdateProjectFiles;
|
UpdateProjectFiles;
|
||||||
DestWin.UpdateProjectFiles;
|
DestWin.UpdateProjectFiles(NewEdit);
|
||||||
// Update IsVisibleTab; needs UnitEditorInfo created in DestWin.UpdateProjectFiles
|
// Update IsVisibleTab; needs UnitEditorInfo created in DestWin.UpdateProjectFiles
|
||||||
if Focus then begin
|
if Focus then begin
|
||||||
Manager.ActiveEditor := NewEdit;
|
Manager.ActiveEditor := NewEdit;
|
||||||
@ -6458,7 +6479,7 @@ Begin
|
|||||||
//debugln(['TSourceNotebook.NewFile ',NewShortName,' ',ASource.Filename]);
|
//debugln(['TSourceNotebook.NewFile ',NewShortName,' ',ASource.Filename]);
|
||||||
Result.PageName:= s;
|
Result.PageName:= s;
|
||||||
UpdatePageNames;
|
UpdatePageNames;
|
||||||
Editors[EditorCount-1].UpdateProjectFile;
|
UpdateProjectFiles(Result);
|
||||||
UpdateStatusBar;
|
UpdateStatusBar;
|
||||||
finally
|
finally
|
||||||
EnableAutoSizing{$IFDEF DebugDisableAutoSizing}('TSourceNotebook.NewFile'){$ENDIF};
|
EnableAutoSizing{$IFDEF DebugDisableAutoSizing}('TSourceNotebook.NewFile'){$ENDIF};
|
||||||
@ -6494,6 +6515,7 @@ begin
|
|||||||
//writeln('TSourceNotebook.CloseFile B APageIndex=',APageIndex,' PageCount=',PageCount,' NoteBook.APageIndex=',Notebook.APageIndex);
|
//writeln('TSourceNotebook.CloseFile B APageIndex=',APageIndex,' PageCount=',PageCount,' NoteBook.APageIndex=',Notebook.APageIndex);
|
||||||
NoteBookDeletePage(APageIndex);
|
NoteBookDeletePage(APageIndex);
|
||||||
//writeln('TSourceNotebook.CloseFile C APageIndex=',APageIndex,' PageCount=',PageCount,' NoteBook.APageIndex=',Notebook.APageIndex);
|
//writeln('TSourceNotebook.CloseFile C APageIndex=',APageIndex,' PageCount=',PageCount,' NoteBook.APageIndex=',Notebook.APageIndex);
|
||||||
|
UpdateProjectFiles;
|
||||||
UpdatePageNames;
|
UpdatePageNames;
|
||||||
if WasSelected then
|
if WasSelected then
|
||||||
UpdateStatusBar;
|
UpdateStatusBar;
|
||||||
@ -6651,7 +6673,10 @@ var
|
|||||||
PanelFileMode: string;
|
PanelFileMode: string;
|
||||||
CurEditor: TSynEdit;
|
CurEditor: TSynEdit;
|
||||||
begin
|
begin
|
||||||
if FUpdateLock > 0 then exit;
|
if FUpdateLock > 0 then begin
|
||||||
|
include(FUpdateFlags, ufStatusBar);
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
if (not IsVisible) or (FUpdateLock > 0) then
|
if (not IsVisible) or (FUpdateLock > 0) then
|
||||||
begin
|
begin
|
||||||
Include(States,snUpdateStatusBarNeeded);
|
Include(States,snUpdateStatusBarNeeded);
|
||||||
|
Loading…
Reference in New Issue
Block a user