mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-15 21:29:50 +02:00
IDE: Option for code fold pop up menu order
git-svn-id: trunk@26831 -
This commit is contained in:
parent
3308c03211
commit
67006b2d8e
@ -1001,10 +1001,13 @@ type
|
||||
|
||||
// Code Folding
|
||||
FUseCodeFolding: Boolean;
|
||||
FReverseFoldPopUpOrder: Boolean;
|
||||
|
||||
// Multi window
|
||||
FMultiWinEditAccessOrder: TEditorOptionsEditAccessOrderList;
|
||||
|
||||
FDefaultValues: TEditorOptions;
|
||||
|
||||
function OldAdditionalAttributeName(NewAha:String): string;
|
||||
public
|
||||
class function GetGroupCaption:string; override;
|
||||
@ -1012,7 +1015,9 @@ type
|
||||
procedure DoAfterWrite; override;
|
||||
public
|
||||
constructor Create;
|
||||
constructor CreateDefaultOnly;
|
||||
destructor Destroy; override;
|
||||
procedure Init;
|
||||
procedure Load;
|
||||
procedure Save;
|
||||
function GetAdditionalAttributeName(aha:TAdditionalHilightAttribute): string;
|
||||
@ -1046,7 +1051,7 @@ type
|
||||
AddHilightAttr: TAdditionalHilightAttribute;
|
||||
aMarkup: TSynSelectedColor);
|
||||
procedure SetMarkupColors(aSynEd: TSynEdit);
|
||||
published
|
||||
public
|
||||
// general options
|
||||
property SynEditOptions: TSynEditorOptions
|
||||
read fSynEditOptions write fSynEditOptions default SynEditDefaultOptions;
|
||||
@ -1163,6 +1168,12 @@ type
|
||||
// Multi window
|
||||
property MultiWinEditAccessOrder: TEditorOptionsEditAccessOrderList
|
||||
read FMultiWinEditAccessOrder write FMultiWinEditAccessOrder;
|
||||
|
||||
published { use RTTIConf}
|
||||
// Code Folding
|
||||
property ReverseFoldPopUpOrder: Boolean
|
||||
read FReverseFoldPopUpOrder write FReverseFoldPopUpOrder default True;
|
||||
|
||||
end;
|
||||
|
||||
const
|
||||
@ -3188,7 +3199,57 @@ begin
|
||||
end;
|
||||
|
||||
// set defaults
|
||||
Init;
|
||||
|
||||
// code templates (dci file)
|
||||
fCodeTemplateFileName :=
|
||||
TrimFilename(GetPrimaryConfigPath+PathDelim+DefaultCodeTemplatesFilename);
|
||||
CopySecondaryConfigFile(DefaultCodeTemplatesFilename);
|
||||
if not FileExistsUTF8(CodeTemplateFileName) then
|
||||
begin
|
||||
res := LazarusResources.Find('lazarus_dci_file');
|
||||
if (res <> Nil) and (res.Value <> '') and (res.ValueType = 'DCI') then
|
||||
try
|
||||
InvalidateFileStateCache;
|
||||
fs := TFileStream.Create(UTF8ToSys(CodeTemplateFileName), fmCreate);
|
||||
try
|
||||
fs.Write(res.Value[1], length(res.Value));
|
||||
finally
|
||||
fs.Free;
|
||||
end;
|
||||
except
|
||||
DebugLn('WARNING: unable to write code template file "',
|
||||
CodeTemplateFileName, '"');
|
||||
end;
|
||||
end;
|
||||
|
||||
FMultiWinEditAccessOrder := TEditorOptionsEditAccessOrderList.Create;
|
||||
FMultiWinEditAccessOrder.InitDefaults;
|
||||
|
||||
FDefaultValues := TEditorOptions.CreateDefaultOnly;
|
||||
end;
|
||||
|
||||
constructor TEditorOptions.CreateDefaultOnly;
|
||||
begin
|
||||
inherited Create;
|
||||
Init;
|
||||
FDefaultValues := nil;
|
||||
end;
|
||||
|
||||
destructor TEditorOptions.Destroy;
|
||||
begin
|
||||
FreeAndNil(FUserColorSchemeSettings);
|
||||
fKeyMap.Free;
|
||||
FreeAndNil(FMultiWinEditAccessOrder);
|
||||
XMLConfig.Free;
|
||||
FUserMouseSettings.Free;
|
||||
FTempMouseSettings.Free;
|
||||
FreeAndNil(FDefaultValues);
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
||||
procedure TEditorOptions.Init;
|
||||
begin
|
||||
// General options
|
||||
fShowTabCloseButtons := True;
|
||||
FHideSingleTabInWindow := False;
|
||||
@ -3231,41 +3292,8 @@ begin
|
||||
// Code Tools options
|
||||
FCompletionLongLineHintType := sclpExtendRightOnly;
|
||||
|
||||
// code templates (dci file)
|
||||
fCodeTemplateFileName :=
|
||||
TrimFilename(GetPrimaryConfigPath+PathDelim+DefaultCodeTemplatesFilename);
|
||||
CopySecondaryConfigFile(DefaultCodeTemplatesFilename);
|
||||
if not FileExistsUTF8(CodeTemplateFileName) then
|
||||
begin
|
||||
res := LazarusResources.Find('lazarus_dci_file');
|
||||
if (res <> Nil) and (res.Value <> '') and (res.ValueType = 'DCI') then
|
||||
try
|
||||
InvalidateFileStateCache;
|
||||
fs := TFileStream.Create(UTF8ToSys(CodeTemplateFileName), fmCreate);
|
||||
try
|
||||
fs.Write(res.Value[1], length(res.Value));
|
||||
finally
|
||||
fs.Free;
|
||||
end;
|
||||
except
|
||||
DebugLn('WARNING: unable to write code template file "',
|
||||
CodeTemplateFileName, '"');
|
||||
end;
|
||||
end;
|
||||
|
||||
FMultiWinEditAccessOrder := TEditorOptionsEditAccessOrderList.Create;
|
||||
FMultiWinEditAccessOrder.InitDefaults;
|
||||
end;
|
||||
|
||||
destructor TEditorOptions.Destroy;
|
||||
begin
|
||||
FreeAndNil(FUserColorSchemeSettings);
|
||||
fKeyMap.Free;
|
||||
FreeAndNil(FMultiWinEditAccessOrder);
|
||||
XMLConfig.Free;
|
||||
FUserMouseSettings.Free;
|
||||
FTempMouseSettings.Free;
|
||||
inherited Destroy;
|
||||
// Code folding
|
||||
FReverseFoldPopUpOrder := True;
|
||||
end;
|
||||
|
||||
type
|
||||
@ -3284,6 +3312,8 @@ begin
|
||||
try
|
||||
FileVersion:=XMLConfig.GetValue('EditorOptions/Version', 0);
|
||||
|
||||
XMLConfig.ReadObject('EditorOptions/Misc/', Self, FDefaultValues);
|
||||
|
||||
// general options
|
||||
for SynEditOpt := Low(TSynEditorOption) to High(TSynEditorOption) do
|
||||
begin
|
||||
@ -3491,6 +3521,8 @@ begin
|
||||
try
|
||||
XMLConfig.SetValue('EditorOptions/Version', EditorOptsFormatVersion);
|
||||
|
||||
XMLConfig.WriteObject('EditorOptions/Misc/', Self, FDefaultValues);
|
||||
|
||||
// general options
|
||||
for SynEditOpt := Low(TSynEditorOption) to High(TSynEditorOption) do
|
||||
begin
|
||||
@ -4135,6 +4167,7 @@ begin
|
||||
ASynEdit.Gutter.CodeFoldPart.Visible := FUseCodeFolding;
|
||||
if not FUseCodeFolding then
|
||||
ASynEdit.UnfoldAll;
|
||||
ASynEdit.Gutter.CodeFoldPart.ReversePopMenuOrder := ReverseFoldPopUpOrder;
|
||||
|
||||
ASynEdit.Gutter.Width := fGutterWidth;
|
||||
ASynEdit.Gutter.SeparatorPart.Visible := FGutterSeparatorIndex <> -1;
|
||||
|
@ -139,4 +139,16 @@ inherited EditorCodefoldingOptionsFrame: TEditorCodefoldingOptionsFrame
|
||||
end
|
||||
end
|
||||
end
|
||||
object chkPopOrder: TCheckBox[5]
|
||||
AnchorSideTop.Control = Owner
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 421
|
||||
Height = 19
|
||||
Top = 0
|
||||
Width = 90
|
||||
Anchors = [akTop, akRight]
|
||||
Caption = 'chkPopOrder'
|
||||
TabOrder = 3
|
||||
end
|
||||
end
|
||||
|
@ -35,6 +35,7 @@ type
|
||||
|
||||
TEditorCodefoldingOptionsFrame = class(TAbstractIDEOptionsEditor)
|
||||
Bevel1: TBevel;
|
||||
chkPopOrder: TCheckBox;
|
||||
FoldConfigCheckListBox: TCheckListBox;
|
||||
FoldConfPanel: TPanel;
|
||||
chkCodeFoldingEnabled: TCheckBox;
|
||||
@ -225,6 +226,7 @@ begin
|
||||
chkFold.Caption := dlgCodeFoldEnableFold;
|
||||
chkHide.Caption := dlgCodeFoldEnableHide;
|
||||
chkBoth.Caption := dlgCodeFoldEnableBoth;
|
||||
chkPopOrder.Caption := dlgCodeFoldPopUpOrder;
|
||||
LanguageLabel.Caption := dlgLang;
|
||||
FModeLock := False;
|
||||
end;
|
||||
@ -251,6 +253,7 @@ begin
|
||||
end;
|
||||
LanguageComboBox.ItemIndex := 0;
|
||||
LanguageComboBoxExit(LanguageComboBox);
|
||||
chkPopOrder.Checked := ReverseFoldPopUpOrder;
|
||||
end;
|
||||
UpdateFoldHideRadio;
|
||||
end;
|
||||
@ -267,6 +270,7 @@ begin
|
||||
if assigned(FHighlighters[i]) then
|
||||
WriteHighlighterFoldSettings(FHighlighters[i]);
|
||||
end;
|
||||
ReverseFoldPopUpOrder := chkPopOrder.Checked;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
@ -1273,6 +1273,7 @@ resourcestring
|
||||
dlgCodeFoldEnableFold = 'Fold';
|
||||
dlgCodeFoldEnableHide = 'Hide';
|
||||
dlgCodeFoldEnableBoth = 'Both';
|
||||
dlgCodeFoldPopUpOrder = 'Reverse fold-order in Popup';
|
||||
dlgCodeFoldingMouse = 'Mouse';
|
||||
dlfMousePredefinedScheme = 'Use predefined scheme';
|
||||
dlfNoPredefinedScheme = '< None >';
|
||||
|
Loading…
Reference in New Issue
Block a user