📄 tcvsrootframeunit.pas
字号:
(* $Id: TCvsrootFrameunit.pas,v 1.2 2002/12/27 16:22:43 turbo Exp $
*
* Frame for setting the CVSROOT directory
*
* Copyright 2001 by Thomas Bleier
* For license details see LICENSE.txt
*)
unit TCvsrootFrameunit;
{$I BORCVS.inc}
interface
//---------------------------------------------------------------------------
uses Classes,
Controls,
StdCtrls,
Forms,
ExtCtrls,
TRunCvsFrmunit;
//---------------------------------------------------------------------------
type
TCvsrootFrame = class(TFrame)
PCvsRootGrp: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
PRepository: TEdit;
PServer: TEdit;
PUser: TEdit;
PRepositoryBtn: TButton;
PMethod: TComboBox;
Label4: TLabel;
PSelUsed: TRadioButton;
PUsed: TComboBox;
PSelCustom: TRadioButton;
PSelSpecify: TRadioButton;
PCustom: TEdit;
procedure PRepositoryBtnClick(Sender: TObject);
procedure PMethodChanged(Sender: TObject);
procedure CvsrootChanged(Sender: TObject);
procedure SelChanged(Sender: TObject);
private // Anwender-Deklarationen
protected
function GetCvsrootString: string;
function GetSelNr: integer;
public // Anwender-Deklarationen
procedure ApplyParameters(runcvs: TRunCvsFrm);
function IsValid: boolean;
procedure LoadSettings; virtual;
procedure SaveSettings; virtual;
end;
//---------------------------------------------------------------------------
var
CvsrootFrame: TCvsrootFrame;
//---------------------------------------------------------------------------
implementation
{$R *.dfm}
//# include < cassert >
uses
SettingsStorage,
FileCtrl,
SysUtils,
Utilityunit,
TPreferencesFrmunit;
//---------------------------------------------------------------------------
procedure TCvsrootFrame.PRepositoryBtnClick(Sender: TObject);
var
dir: string;
begin
dir := PRepository.Text;
if (SelectDirectory('Select local Repository', '', dir)) then
begin
PRepository.Text := dir;
end;
end;
//---------------------------------------------------------------------------
function TCvsrootFrame.GetSelNr: integer;
begin
result := -1;
if PSelSpecify.Checked then
result := 0
else
if PSelCustom.Checked then
result := 1
else
if PSelUsed.Checked then
result := 2;
end;
//---------------------------------------------------------------------------
procedure TCvsrootFrame.SelChanged(Sender: TObject);
var
fspec: boolean;
fcust: boolean;
fused: boolean;
begin
fspec := PSelSpecify.Checked;
fcust := PSelCustom.Checked;
fused := PSelUsed.Checked;
PMethod.Enabled := fspec;
PCustom.Enabled := fcust;
PUsed.Enabled := fused;
if (not fspec) then
begin
PMethod.ItemIndex := -1;
PServer.Text := '';
PUser.Text := '';
PRepository.Text := '';
end
else
begin
PMethodChanged(self);
end;
if (not fused) then
begin
PUsed.ItemIndex := -1;
end;
end;
//---------------------------------------------------------------------------
procedure TCvsrootFrame.PMethodChanged(Sender: TObject);
begin
if (PSelSpecify.Checked) then
begin
case PMethod.ItemIndex of
0:
begin
PServer.Enabled := false;
PUser.Enabled := false;
PRepository.Enabled := true;
PRepositoryBtn.Enabled := true;
end;
1:
begin
PServer.Enabled := true;
PUser.Enabled := true;
PRepository.Enabled := true;
PRepositoryBtn.Enabled := false;
end;
2:
begin
PServer.Enabled := true;
PUser.Enabled := true;
PRepository.Enabled := true;
PRepositoryBtn.Enabled := false;
end;
3:
begin
PServer.Enabled := true;
PUser.Enabled := false;
PRepository.Enabled := true;
PRepositoryBtn.Enabled := false;
end;
4:
begin
PServer.Enabled := true;
PUser.Enabled := true;
PRepository.Enabled := true;
PRepositoryBtn.Enabled := false;
end;
-1:
begin
PServer.Enabled := false;
PUser.Enabled := false;
PRepository.Enabled := false;
PRepositoryBtn.Enabled := false;
end;
else
assert(false);
end;
CvsrootChanged(self);
end;
end;
//---------------------------------------------------------------------------
procedure TCvsrootFrame.CvsrootChanged(Sender: TObject);
begin
PCustom.Text := GetCvsrootString;
end;
//---------------------------------------------------------------------------
function TCvsrootFrame.GetCvsrootString: string;
begin
case GetSelNr of
0:
begin
case PMethod.ItemIndex of
0:
result := ':local:' + PRepository.Text;
1:
begin
result := ':pserver:';
if (PUser.Text <> '') then
result := result + PUser.Text + '@';
result := result + PServer.Text + ':' + PRepository.Text;
end;
2:
begin
result := ':ext:';
if (PUser.Text <> '') then
result := result + PUser.Text + '@';
result := result + PServer.Text + '/' + PRepository.Text;
end;
3:
begin
result := ':ntserver:';
result := result + PServer.Text + ':' + PRepository.Text;
end;
4:
begin
result := ':sspi:';
if (PUser.Text <> '') then
result := result + PUser.Text + '@';
result := result + PServer.Text + ':' + PRepository.Text;
end;
-1:
result := '';
else
assert(false);
end;
end;
1:
result := PCustom.Text;
2:
result := PUsed.Text;
else
assert(false);
end;
end;
//---------------------------------------------------------------------------
procedure TCvsrootFrame.ApplyParameters(runcvs: TRunCvsFrm);
begin
runcvs.GlobalOptions.Add(' -d ' +
GetOptQuotedString(GetCvsrootString));
end;
//---------------------------------------------------------------------------
function TCvsrootFrame.IsValid: boolean;
begin
result := true;
case (GetSelNr) of
0:
case (PMethod.ItemIndex) of
0:
if (Trim(PRepository.Text) = '') then
result := false;
1, 2, 3, 4:
if (Trim(PServer.Text) = '') or (Trim(PRepository.Text) = '') then
result := false;
-1:
result := false;
else
assert(false);
end;
1:
result := PCustom.Text <> '';
2:
result := PUsed.Text <> '';
else
assert(false);
end;
end;
//---------------------------------------------------------------------------
procedure TCvsrootFrame.LoadSettings;
begin
PMethod.Items.Clear;
PMethod.Items.Add('Local');
PMethod.Items.Add('pserver');
PMethod.Items.Add('ext');
if (PreferencesFrm.IsNtCvs) then
begin
PMethod.Items.Add('ntserver');
PMethod.Items.Add('sspi');
end;
PMethod.ItemIndex := -1;
try
BEGIN_LOAD_SETTINGS('CVSROOT');
LOAD_COMBOLIST_SETTING('CVSROOT', PUsed, '');
END_LOAD_SETTINGS;
except
end;
if (PUsed.Items.Count > 0) then
begin
PSelUsed.Checked := true;
end;
SelChanged(self);
PMethodChanged(self);
CvsrootChanged(self);
end;
//---------------------------------------------------------------------------
procedure TCvsrootFrame.SaveSettings;
begin
ADD_COMBO_TEXT_ENTRY_MAX(PUsed, GetCvsrootString, DEFAULT_MRU_ENTRIES);
BEGIN_SAVE_SETTINGS('CVSROOT');
SAVE_COMBOLIST_SETTING('CVSROOT', PUsed);
END_SAVE_SETTINGS;
end;
//---------------------------------------------------------------------------
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -