-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
TemplateSettingsForm.pas
114 lines (95 loc) · 3.06 KB
/
TemplateSettingsForm.pas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
{-------------------------------------------------------------------------------
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/.
-------------------------------------------------------------------------------}
unit TemplateSettingsForm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls,
DepsTracker_Manager;
type
TfTemplateSettingsForm = class(TForm)
leRepositioryURL: TLabeledEdit;
leProjectDirectory: TLabeledEdit;
btnBrowseProjectDir: TButton;
btnOK: TButton;
btnCancel: TButton;
procedure FormShow(Sender: TObject);
procedure btnBrowseProjectDirClick(Sender: TObject);
procedure btnOKClick(Sender: TObject);
procedure btnCancelClick(Sender: TObject);
private
{ Private declarations }
protected
fManager: TDTManager;
public
procedure Initialize(Manager: TDTManager);
end;
var
fTemplateSettingsForm: TfTemplateSettingsForm;
implementation
{$R *.dfm}
uses
{$WARN UNIT_PLATFORM OFF}FileCtrl,{$WARN UNIT_PLATFORM ON}
StrRect;
procedure TfTemplateSettingsForm.Initialize(Manager: TDTManager);
begin
fManager := Manager;
end;
//==============================================================================
procedure TfTemplateSettingsForm.FormShow(Sender: TObject);
begin
leRepositioryURL.Text := fManager.ProjectTemplate.RepositoryURL;
leProjectDirectory.Text := fManager.ProjectTemplate.ProjectDirectory;
btnCancel.SetFocus;
end;
//------------------------------------------------------------------------------
procedure TfTemplateSettingsForm.btnBrowseProjectDirClick(Sender: TObject);
var
DirPath: String;
begin
If Length(leProjectDirectory.Text) > 0 then
DirPath := leProjectDirectory.Text
else
DirPath := ExtractFileDir(ParamStr(0));
If SelectDirectory(StrToWide('Select directory'),StrToWide(''),DirPath) then
leProjectDirectory.Text := IncludeTrailingPathDelimiter(DirPath) + '%s';
end;
//------------------------------------------------------------------------------
procedure TfTemplateSettingsForm.btnOKClick(Sender: TObject);
var
TempSettings: TDTPRojectTemplateSettings;
begin
try
Format(leRepositioryURL.Text,['test']);
except
on E: Exception do
begin
MessageDlg(Format('Error while testing repository URL (%s).',[E.Message]),mtError,[mbOK],0);
leRepositioryURL.SetFocus;
Exit;
end;
end;
try
Format(leProjectDirectory.Text,['test']);
except
on E: Exception do
begin
MessageDlg(Format('Error while testing project directory (%s).',[E.Message]),mtError,[mbOK],0);
leProjectDirectory.SetFocus;
Exit;
end;
end;
TempSettings.RepositoryURL := leRepositioryURL.Text;
TempSettings.ProjectDirectory := leProjectDirectory.Text;
fManager.ProjectTemplate := TempSettings;
Close;
end;
//------------------------------------------------------------------------------
procedure TfTemplateSettingsForm.btnCancelClick(Sender: TObject);
begin
Close;
end;
end.