mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-02 12:40:33 +02:00
IDE, EditorOptions: New ColorSchemFactory; fixed slow down issue
git-svn-id: trunk@25642 -
This commit is contained in:
parent
cda968f496
commit
c2d78fb927
@ -985,7 +985,6 @@ type
|
||||
procedure WriteColorScheme(const LanguageName, SynColorScheme: String);
|
||||
procedure ReadHighlighterSettings(Syn: TSrcIDEHighlighter;
|
||||
SynColorScheme: String);
|
||||
procedure WriteHighlighterSettings;
|
||||
|
||||
procedure ReadHighlighterFoldSettings(Syn: TSrcIDEHighlighter);
|
||||
procedure ReadDefaultsForHighlighterFoldSettings(Syn: TSrcIDEHighlighter);
|
||||
@ -3137,6 +3136,8 @@ begin
|
||||
end;
|
||||
|
||||
FMultiWinEditAccessOrder.LoadFromXMLConfig(XMLConfig, 'EditorOptions/MultiWin/');
|
||||
UserColorSchemeGroup.LoadFromXml(XMLConfig, 'EditorOptions/Color/',
|
||||
ColorSchemeFactory, 'EditorOptions/Display/');
|
||||
|
||||
except
|
||||
on E: Exception do
|
||||
@ -3349,6 +3350,7 @@ begin
|
||||
end;
|
||||
|
||||
FMultiWinEditAccessOrder.SaveToXMLConfig(XMLConfig, 'EditorOptions/MultiWin/');
|
||||
UserColorSchemeGroup.SaveToXml(XMLConfig, 'EditorOptions/Color/', ColorSchemeFactory);
|
||||
|
||||
InvalidateFileStateCache;
|
||||
XMLConfig.Flush;
|
||||
@ -3545,10 +3547,6 @@ begin
|
||||
if (SynColorScheme = '') or (Syn.LanguageName = '') then
|
||||
exit;
|
||||
|
||||
// reset all to defaults
|
||||
UserColorSchemeGroup.LoadFromXml(XMLConfig, 'EditorOptions/Color/',
|
||||
ColorSchemeFactory, 'EditorOptions/Display/');
|
||||
|
||||
Scheme := UserColorSchemeGroup.ColorSchemeGroup[SynColorScheme];
|
||||
if Scheme = nil then
|
||||
exit;
|
||||
@ -3559,11 +3557,6 @@ begin
|
||||
LangScheme.ApplyTo(Syn);
|
||||
end;
|
||||
|
||||
procedure TEditorOptions.WriteHighlighterSettings;
|
||||
begin
|
||||
UserColorSchemeGroup.SaveToXml(XMLConfig, 'EditorOptions/Color/', ColorSchemeFactory);
|
||||
end;
|
||||
|
||||
procedure TEditorOptions.ReadHighlighterFoldSettings(Syn: TSrcIDEHighlighter);
|
||||
var
|
||||
ConfName: String;
|
||||
@ -3807,8 +3800,6 @@ var
|
||||
i: Integer;
|
||||
j: Integer;
|
||||
begin
|
||||
UserColorSchemeGroup.LoadFromXml(XMLConfig, 'EditorOptions/Color/',
|
||||
ColorSchemeFactory, 'EditorOptions/Display/');
|
||||
// general options
|
||||
ASynEdit.Options := fSynEditOptions;
|
||||
ASynEdit.Options2 := fSynEditOptions2;
|
||||
|
@ -93,6 +93,8 @@ type
|
||||
procedure ComboBoxOnChange(Sender: TObject);
|
||||
procedure ComboBoxOnKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
|
||||
private
|
||||
FTempColorSchemeSettings: TColorSchemeFactory;
|
||||
|
||||
FDialog: TAbstractOptionsEditorDialog;
|
||||
FCurHighlightElement: TColorSchemeAttribute;
|
||||
|
||||
@ -126,6 +128,7 @@ type
|
||||
function DoSynEditMouse(var AnInfo: TSynEditMouseActionInfo;
|
||||
HandleActionProc: TSynEditMouseActionHandler): Boolean;
|
||||
public
|
||||
constructor Create(TheOwner : TComponent); override;
|
||||
destructor Destroy; override;
|
||||
|
||||
function GetTitle: String; override;
|
||||
@ -317,7 +320,7 @@ begin
|
||||
XMLConfig.SetValue('Lazarus/ColorSchemes/Names/Item1/Value', NewName);
|
||||
|
||||
NewScheme := TColorScheme.Create(NewName);
|
||||
NewScheme.Assign(EditorOpts.UserColorSchemeGroup.ColorSchemeGroup[ColorSchemeComboBox.Text]);
|
||||
NewScheme.Assign(FTempColorSchemeSettings.ColorSchemeGroup[ColorSchemeComboBox.Text]);
|
||||
NewScheme.SaveToXml(XMLConfig, 'Lazarus/ColorSchemes/',nil);
|
||||
NewScheme.Free;
|
||||
|
||||
@ -934,7 +937,7 @@ var
|
||||
NewColorScheme: TColorSchemeLanguage;
|
||||
begin
|
||||
// Modfiy directly => will be re-read form XML if canceled
|
||||
SchemeGrp := EditorOpts.UserColorSchemeGroup.ColorSchemeGroup[ColorScheme];
|
||||
SchemeGrp := FTempColorSchemeSettings.ColorSchemeGroup[ColorScheme];
|
||||
if SchemeGrp = nil then
|
||||
exit;
|
||||
|
||||
@ -1022,8 +1025,15 @@ begin
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
constructor TEditorColorOptionsFrame.Create(TheOwner: TComponent);
|
||||
begin
|
||||
inherited Create(TheOwner);
|
||||
FTempColorSchemeSettings := TColorSchemeFactory.Create;
|
||||
end;
|
||||
|
||||
destructor TEditorColorOptionsFrame.Destroy;
|
||||
begin
|
||||
FreeAndNil(FTempColorSchemeSettings);
|
||||
FFileExtensions.Free;
|
||||
FColorSchemes.Free;
|
||||
inherited Destroy;
|
||||
@ -1101,6 +1111,7 @@ begin
|
||||
|
||||
with AOptions as TEditorOptions do
|
||||
begin
|
||||
FTempColorSchemeSettings.Assign(UserColorSchemeGroup);
|
||||
UseSyntaxHighlightCheckBox.Checked := UseSyntaxHighlight;
|
||||
|
||||
with LanguageComboBox do
|
||||
@ -1153,7 +1164,7 @@ begin
|
||||
FColorSchemes.Values[FColorSchemes.Names[i]]);
|
||||
|
||||
// Write from userFactory
|
||||
WriteHighlighterSettings;
|
||||
UserColorSchemeGroup.Assign(FTempColorSchemeSettings);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user