mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-20 11:39:23 +02:00
IDE: EditorOptions, Color, fix "reset all". Issue #39388
(cherry picked from commit ff2da4d6be
)
This commit is contained in:
parent
0396183892
commit
23ef8ab3ca
@ -6431,22 +6431,36 @@ end;
|
|||||||
|
|
||||||
procedure TColorSchemeLanguage.Assign(Src: TColorSchemeLanguage);
|
procedure TColorSchemeLanguage.Assign(Src: TColorSchemeLanguage);
|
||||||
var
|
var
|
||||||
i: Integer;
|
i, j: Integer;
|
||||||
Attr, SrcAttr: TColorSchemeAttribute;
|
Attr, SrcAttr: TColorSchemeAttribute;
|
||||||
|
NewList: TQuickStringlist;
|
||||||
begin
|
begin
|
||||||
Clear;
|
// Do not clear old list => external references to Attributes may exist
|
||||||
FAttributes.Sorted := false;
|
|
||||||
FLanguage := Src.FLanguage;
|
FLanguage := Src.FLanguage;
|
||||||
FLanguageName := Src.FLanguageName;
|
FLanguageName := Src.FLanguageName;
|
||||||
|
//FDefaultAttribute.Assign(Src.FDefaultAttribute);
|
||||||
FDefaultAttribute := nil;
|
FDefaultAttribute := nil;
|
||||||
|
NewList := TQuickStringlist.Create;
|
||||||
for i := 0 to Src.AttributeCount - 1 do begin
|
for i := 0 to Src.AttributeCount - 1 do begin
|
||||||
SrcAttr := Src.AttributeAtPos[i];
|
SrcAttr := Src.AttributeAtPos[i];
|
||||||
Attr := TColorSchemeAttribute.Create(Self, SrcAttr.Caption, SrcAttr.StoredName);
|
// Reuse existing Attribute if possible.
|
||||||
|
j := FAttributes.IndexOf(UpperCase(SrcAttr.StoredName));
|
||||||
|
if j >= 0 then begin
|
||||||
|
Attr := TColorSchemeAttribute(FAttributes.Objects[j]);
|
||||||
|
DebugLn([' Use existing attr ', Attr.StoredName]);
|
||||||
|
FAttributes.Delete(j);
|
||||||
|
end
|
||||||
|
else begin
|
||||||
|
Attr := TColorSchemeAttribute.Create(Self, SrcAttr.Caption, SrcAttr.StoredName);
|
||||||
|
end;
|
||||||
Attr.Assign(SrcAttr);
|
Attr.Assign(SrcAttr);
|
||||||
FAttributes.AddObject(Attr.StoredName, Attr);
|
NewList.AddObject(UpperCase(Attr.StoredName), Attr);
|
||||||
if SrcAttr = Src.DefaultAttribute then
|
if SrcAttr = Src.DefaultAttribute then
|
||||||
FDefaultAttribute := Attr;
|
FDefaultAttribute := Attr;
|
||||||
end;
|
end;
|
||||||
|
Clear;
|
||||||
|
FreeAndNil(FAttributes);
|
||||||
|
FAttributes := NewList;
|
||||||
FAttributes.Sorted := true;
|
FAttributes.Sorted := true;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -1213,7 +1213,9 @@ begin
|
|||||||
DefaultSchemeGrp := ColorSchemeFactory.ColorSchemeGroup[ColorSchemeButton.Caption];
|
DefaultSchemeGrp := ColorSchemeFactory.ColorSchemeGroup[ColorSchemeButton.Caption];
|
||||||
if DefaultSchemeGrp = nil then
|
if DefaultSchemeGrp = nil then
|
||||||
exit;
|
exit;
|
||||||
if FIsEditingDefaults or FCurHighlightElement.IsUsingSchemeGlobals then
|
if FIsEditingDefaults or
|
||||||
|
(OnlySelected and FCurHighlightElement.IsUsingSchemeGlobals)
|
||||||
|
then
|
||||||
DefaultColorScheme := DefaultSchemeGrp.DefaultColors
|
DefaultColorScheme := DefaultSchemeGrp.DefaultColors
|
||||||
else
|
else
|
||||||
DefaultColorScheme := DefaultSchemeGrp.ColorScheme[FCurrentColorScheme.Language];
|
DefaultColorScheme := DefaultSchemeGrp.ColorScheme[FCurrentColorScheme.Language];
|
||||||
|
Loading…
Reference in New Issue
Block a user