📄 tcontrollerunit.pas
字号:
PMenuCommitFile := NewMenuItem(PFileMenu, 'Commit...', 'CvsCommitFile',
MenuCommitFileClick, true);
PMenuDiffFile := NewMenuItem(PFileMenu, 'Diff...', 'CvsDiff',
MenuDiffFileClick, true);
PMenuLogFile := NewMenuItem(PFileMenu, 'Log for...', 'CvsLog',
MenuLogFileClick, true);
end;
//---------------------------------------------------------------------------
procedure TController.SetMenuState;
var
Module: IOTAModule;
Project: IOTAProject;
FModule,
FProject: Boolean;
fInCvs: boolean;
begin
Project := ToolsApiHelper.GetCurrentProject;
FProject := assigned(Project);
Module := ToolsApiHelper.GetCurrentModule;
fModule := assigned(module);
fInCvs := FProject and IsProjectInCvs(Project.FileName);
PMenuNewModule.Enabled := not fInCvs;
PMenuAddFile.Enabled := fInCvs;
PProjectGroupMenu.Enabled :=ToolsApiHelper.HasProjectGroup;
if PProjectGroupMenu.Enabled then
begin
PProjectGroupMenu.Caption := 'Project Group <'+
ChangeFileExt(ExtractFileName(ToolsApiHelper.GetCurrentProjectGroup.FileName), '')
+ '>...';
end
else
begin
PProjectGroupMenu.Caption := 'Project Group ...';
end;
PProjectMenu.Enabled := FProject;
if FProject then
begin
PProjectMenu.Caption := 'Project <' + ChangeFileExt(ExtractFileName(Project.FileName), '') + '>...';
end
else
begin
PProjectMenu.Caption := 'Project ...';
end;
PFileMenu.Enabled := fModule;
if fModule then
begin
// PFileMenu.Caption := 'File <' + ChangeFileExt(ExtractFileName(module.FileName), '') + '> ...';
PFileMenu.Caption := 'File <' + ExtractFileName(module.FileName) + '> ...';
end
else
begin
PFileMenu.Caption := 'File ...';
end;
end;
//---------------------------------------------------------------------------
procedure TController.MenuDropdown(Sender: TObject);
begin
SetMenuState;
end;
//---------------------------------------------------------------------------
function TController.IsProjectInCvs(projectfile: string): boolean;
var
path: string;
begin
path := ExtractFilePath(projectfile);
if (path <> '') then
begin
result := FileExists(path + 'CVS\Entries');
exit;
end
else
result := false;
end;
//---------------------------------------------------------------------------
procedure TController.MenuNewModuleClick(Sender: TObject);
begin
if (PreferencesFrm.AutoSaveAll) then
ToolsApiHelper.SaveAll;
NewModuleFrm.Exec;
end;
//---------------------------------------------------------------------------
procedure TController.MenuCheckoutClick(Sender: TObject);
begin
CheckoutFrm.Exec;
end;
//---------------------------------------------------------------------------
procedure TController.MenuUpdateProjClick(Sender: TObject);
begin
if (PreferencesFrm.AutoSaveAll) then
ToolsApiHelper.SaveAll;
UpdateFrm.WhichFiles := wfmProject;
UpdateFrm.Exec;
end;
//---------------------------------------------------------------------------
procedure TController.MenuCommitProjClick(Sender: TObject);
begin
if (PreferencesFrm.AutoSaveAll) then
ToolsApiHelper.SaveAll;
CommitFrm.WhichFiles := wfmProject;
CommitFrm.Exec;
end;
//---------------------------------------------------------------------------
procedure TController.MenuTagBranchProjClick(Sender: TObject);
begin
if (PreferencesFrm.AutoSaveAll) then
ToolsApiHelper.SaveAll;
TagBranchFrm.Exec;
end;
//---------------------------------------------------------------------------
procedure TController.MenuStatusProjClick(Sender: TObject);
begin
if (PreferencesFrm.AutoSaveAll) then
ToolsApiHelper.SaveAll;
StatusFrm.Exec;
end;
//---------------------------------------------------------------------------
procedure TController.MenuCommitProjGroupClick(Sender: TObject);
begin
if (PreferencesFrm.AutoSaveAll) then
ToolsApiHelper.SaveAll;
CommitFrm.WhichFiles := wfmProjectGroup;
CommitFrm.Exec;
end;
//---------------------------------------------------------------------------
procedure TController.MenuStatusProjGroupClick(Sender: TObject);
begin
if (PreferencesFrm.AutoSaveAll) then
ToolsApiHelper.SaveAll;
StatusFrm.Exec;
end;
//---------------------------------------------------------------------------
procedure TController.MenuTagBranchProjGroupClick(Sender: TObject);
begin
if (PreferencesFrm.AutoSaveAll) then
ToolsApiHelper.SaveAll;
TagBranchFrm.Exec;
end;
//---------------------------------------------------------------------------
procedure TController.MenuUpdateProjGroupClick(Sender: TObject);
begin
if (PreferencesFrm.AutoSaveAll) then
ToolsApiHelper.SaveAll;
UpdateFrm.WhichFiles := wfmProjectGroup;
UpdateFrm.Exec;
end;
//---------------------------------------------------------------------------
procedure TController.MenuAddFileClick(Sender: TObject);
begin
if (PreferencesFrm.AutoSaveAll) then
ToolsApiHelper.SaveAll;
AddFrm.WhichFiles := wfmCustom;
AddFrm.Exec;
end;
//---------------------------------------------------------------------------
procedure TController.MenuAddProjClick(Sender: TObject);
begin
if (PreferencesFrm.AutoSaveAll) then
ToolsApiHelper.SaveAll;
AddFrm.WhichFiles := wfmProject;
AddFrm.Exec;
end;
//---------------------------------------------------------------------------
procedure TController.MenuAddProjGroupClick(Sender: TObject);
begin
if (PreferencesFrm.AutoSaveAll) then
ToolsApiHelper.SaveAll;
AddFrm.WhichFiles := wfmProjectGroup;
AddFrm.Exec;
end;
//---------------------------------------------------------------------------
procedure TController.MenuRemoveFileClick(Sender: TObject);
begin
if (PreferencesFrm.AutoSaveAll) then
ToolsApiHelper.SaveAll;
RemoveFrm.Exec;
end;
//---------------------------------------------------------------------------
procedure TController.MenuUpdateFileClick(Sender: TObject);
begin
if (PreferencesFrm.AutoSaveAll) then
ToolsApiHelper.SaveAll;
UpdateFrm.WhichFiles := wfmModule;
UpdateFrm.Exec;
end;
//---------------------------------------------------------------------------
procedure TController.MenuCommitFileClick(Sender: TObject);
begin
if (PreferencesFrm.AutoSaveAll) then
ToolsApiHelper.SaveAll;
CommitFrm.WhichFiles := wfmModule;
CommitFrm.Exec;
end;
//---------------------------------------------------------------------------
procedure TController.MenuDiffFileClick(Sender: TObject);
begin
if (PreferencesFrm.AutoSaveAll) then
ToolsApiHelper.SaveAll;
DiffFrm.FileNames.Clear;
ToolsApiHelper.GetCurrentModuleFiles(DiffFrm.FileNames);
DiffFrm.Exec;
end;
//---------------------------------------------------------------------------
procedure TController.MenuLogFileClick(Sender: TObject);
begin
if (PreferencesFrm.AutoSaveAll) then
ToolsApiHelper.SaveAll;
LogFrm.FileNames.Clear;
ToolsApiHelper.GetCurrentModuleFiles(LogFrm.FileNames);
LogFrm.Exec;
end;
//---------------------------------------------------------------------------
procedure TController.MenuCommandClick(Sender: TObject);
begin
if (PreferencesFrm.AutoSaveAll) then
ToolsApiHelper.SaveAll;
CvsCmdFrm.Exec;
end;
//---------------------------------------------------------------------------
procedure TController.MenuPreferencesClick(Sender: TObject);
begin
PreferencesFrm.ShowModal;
end;
//---------------------------------------------------------------------------
procedure TController.MenuAboutClick(Sender: TObject);
// OK !
var
frm: TAboutFrm;
begin
frm := TAboutFrm.Create(nil);
try
frm.ShowModal;
finally
frm.Free;
end;
end;
//---------------------------------------------------------------------------
function IsStandAlone: Boolean;
begin
Result := (BorlandIDEServices = nil);
end;
const
CompilerDefinedProductRegistryKey = 'Software\BorCVS';
function GetIdeBaseRegistryKey: string;
var
IServices: IOTAServices;
begin
if IsStandAlone then
Result := CompilerDefinedProductRegistryKey
else
begin
Assert(BorlandIDEServices <> nil);
IServices := (BorlandIDEServices as IOTAServices);
Assert(IServices <> nil);
Result := IServices.GetBaseRegistryKey;
end;
if Length(Result) > 0 then
begin
// Windows 2000 is allergic to a leading backslash
// in the registry key - NT4, for instance, is not.
if Result[1] = '\' then
Delete(Result, 1, 1);
Assert(Result[Length(Result)] <> '\');
end;
end;
initialization
//---------------------------------------------------------------------------
begin
SAVE_SETTINGS_BASEKEY := GetIdeBaseRegistryKey + '\BorCVS';
RegistrySettingsRoot := HKEY_CURRENT_USER;
end;
//---------------------------------------------------------------------------
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -