{ Double Commander ------------------------------------------------------------------------- Files views complement options page Copyright (C) 2018-2022 Alexander Koblov (alexx2000@mail.ru) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . } unit fOptionsFilesViewsComplement; {$mode objfpc}{$H+} interface uses Classes, SysUtils, StdCtrls, Graphics, ExtCtrls, KASButtonPanel, fOptionsFrame; type { TfrmOptionsFilesViewsComplement } TfrmOptionsFilesViewsComplement = class(TOptionsEditor) btnAddAttribute: TButton; btnAttrsHelp: TButton; cbDblClickToParent: TCheckBox; cbHighlightUpdatedFiles: TCheckBox; cbDirBrackets: TCheckBox; cbListFilesInThread: TCheckBox; cbLoadIconsSeparately: TCheckBox; cbDelayLoadingTabs: TCheckBox; cbShowSystemFiles: TCheckBox; cbSpaceMovesDown: TCheckBox; cbInplaceRename: TCheckBox; gbMisc: TGroupBox; pnlDefaultAttribute: TKASButtonPanel; chkMarkMaskFilterWindows: TCheckBox; gbMarking: TGroupBox; lbAttributeMask: TLabel; edtDefaultAttribute: TEdit; chkMarkMaskShowAttribute: TCheckBox; procedure btnAddAttributeClick(Sender: TObject); procedure btnAttrsHelpClick(Sender: TObject); private procedure OnAddAttribute(Sender: TObject); protected procedure Load; override; function Save: TOptionsEditorSaveFlags; override; public class function GetIconIndex: Integer; override; class function GetTitle: String; override; end; implementation {$R *.lfm} uses HelpIntfs, fAttributesEdit, uGlobs, uLng; { TfrmOptionsFilesViewsComplement } procedure TfrmOptionsFilesViewsComplement.Load; begin cbSpaceMovesDown.Checked := gSpaceMovesDown; cbDirBrackets.Checked := gDirBrackets; cbShowSystemFiles.Checked:= gShowSystemFiles; {$IFDEF LCLCARBON} // Under Mac OS X loading file list in separate thread are very very slow // so disable and hide this option under Mac OS X Carbon cbListFilesInThread.Visible:= False; {$ELSE} cbListFilesInThread.Checked:= gListFilesInThread; {$ENDIF} cbLoadIconsSeparately.Checked:= gLoadIconsSeparately; cbDelayLoadingTabs.Checked:= gDelayLoadingTabs; cbHighlightUpdatedFiles.Checked:= gHighlightUpdatedFiles; cbInplaceRename.Checked := gInplaceRename; cbDblClickToParent.Checked := gDblClickToParent; chkMarkMaskFilterWindows.Checked := gMarkMaskFilterWindows; chkMarkMaskShowAttribute.Checked := gMarkShowWantedAttribute; edtDefaultAttribute.Text := gMarkDefaultWantedAttribute; end; function TfrmOptionsFilesViewsComplement.Save: TOptionsEditorSaveFlags; begin gSpaceMovesDown := cbSpaceMovesDown.Checked; gDirBrackets := cbDirBrackets.Checked; gShowSystemFiles:= cbShowSystemFiles.Checked; gListFilesInThread:= cbListFilesInThread.Checked; gLoadIconsSeparately:= cbLoadIconsSeparately.Checked; gDelayLoadingTabs := cbDelayLoadingTabs.Checked; gHighlightUpdatedFiles := cbHighlightUpdatedFiles.Checked; gInplaceRename := cbInplaceRename.Checked; gDblClickToParent := cbDblClickToParent.Checked; gMarkMaskFilterWindows := chkMarkMaskFilterWindows.Checked; gMarkShowWantedAttribute := chkMarkMaskShowAttribute.Checked; gMarkDefaultWantedAttribute := edtDefaultAttribute.Text; Result := []; end; class function TfrmOptionsFilesViewsComplement.GetIconIndex: Integer; begin Result := 29; end; class function TfrmOptionsFilesViewsComplement.GetTitle: String; begin Result := rsOptionsEditorFilesViewsComplement; end; procedure TfrmOptionsFilesViewsComplement.btnAddAttributeClick(Sender: TObject); var FFrmAttributesEdit: TfrmAttributesEdit; begin FFrmAttributesEdit := TfrmAttributesEdit.Create(Owner); try FFrmAttributesEdit.OnOk := @OnAddAttribute; FFrmAttributesEdit.Reset; FFrmAttributesEdit.ShowModal; finally FFrmAttributesEdit.Free; end; end; procedure TfrmOptionsFilesViewsComplement.btnAttrsHelpClick(Sender: TObject); begin ShowHelpOrErrorForKeyword('', edtDefaultAttribute.HelpKeyword); end; procedure TfrmOptionsFilesViewsComplement.OnAddAttribute(Sender: TObject); var sAttr: String; begin sAttr := edtDefaultAttribute.Text; if edtDefaultAttribute.SelStart > 0 then Insert((Sender as TfrmAttributesEdit).AttrsAsText, sAttr, edtDefaultAttribute.SelStart + 1) // Insert at caret position. else sAttr := sAttr + (Sender as TfrmAttributesEdit).AttrsAsText; edtDefaultAttribute.Text := sAttr; end; end.