IDE: New "Example Projects" feature.

git-svn-id: trunk@32808 -
This commit is contained in:
juha 2011-10-10 20:35:59 +00:00
parent d7d7637619
commit 9897814795
7 changed files with 46 additions and 19 deletions

View File

@ -593,6 +593,7 @@ begin
// tools menu
ecExtToolSettings: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[]);
ecManageExamples: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[]);
ecBuildLazarus: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[]);
ecConfigBuildLazarus: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[]);
ecMakeResourceString: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[]);
@ -1045,6 +1046,7 @@ begin
// tools menu
ecExtToolSettings: SetSingle(VK_UNKNOWN,[],VK_UNKNOWN,[]);
ecManageExamples: SetSingle(VK_UNKNOWN,[],VK_UNKNOWN,[]);
ecBuildLazarus: SetSingle(VK_UNKNOWN,[],VK_UNKNOWN,[]);
ecConfigBuildLazarus: SetSingle(VK_UNKNOWN,[],VK_UNKNOWN,[]);
ecMakeResourceString: SetSingle(VK_UNKNOWN,[],VK_UNKNOWN,[]);
@ -1680,6 +1682,7 @@ begin
// tools menu
ecExtToolSettings: SetSingle(VK_UNKNOWN,[],VK_UNKNOWN,[]);
ecManageExamples: SetSingle(VK_UNKNOWN,[],VK_UNKNOWN,[]);
ecBuildLazarus: SetSingle(VK_UNKNOWN,[],VK_UNKNOWN,[]);
ecConfigBuildLazarus: SetSingle(VK_UNKNOWN,[],VK_UNKNOWN,[]);
ecMakeResourceString: SetSingle(VK_UNKNOWN,[],VK_UNKNOWN,[]);
@ -2229,6 +2232,7 @@ begin
// tools menu
ecExtToolSettings : Result:= srkmecExtToolSettings;
ecManageExamples : Result:= lisMenuExampleProjects;
ecConfigBuildLazarus : Result:= lismenuconfigurebuildlazarus;
ecBuildLazarus : Result:= srkmecBuildLazarus;
ecExtToolFirst
@ -2887,6 +2891,7 @@ begin
// tools menu
C:=Categories[AddCategory(CommandCategoryToolMenuName,srkmCatToolMenu,nil)];
AddDefault(C, 'External Tools settings', lisKMExternalToolsSettings, ecExtToolSettings);
AddDefault(C, 'Example Projects', lisKMExampleProjects, ecManageExamples);
AddDefault(C, 'Build Lazarus', lisMenuBuildLazarus, ecBuildLazarus);
AddDefault(C, 'Configure "Build Lazarus"',
Format(lisConfigureBuildLazarus, ['"', '"']), ecConfigBuildLazarus);

View File

@ -414,10 +414,12 @@ resourcestring
lisMenuConvertDelphiProject = 'Convert Delphi project to Lazarus project ...';
lisMenuConvertDelphiPackage = 'Convert Delphi package to Lazarus package ...';
lisMenuConvertEncoding = 'Convert encoding of projects/packages ...';
lisMenuExampleProjects = 'Example Projects ...';
lisKMExampleProjects = 'Example Projects';
lisMenuBuildLazarus = 'Build Lazarus with current profile';
lisMenuBuildLazarusProf = 'Build Lazarus with profile: %s';
lisMenuConfigureBuildLazarus = 'Configure "Build Lazarus" ...';
lisMenuGeneralOptions = 'Options ...';
lisMenuEditCodeTemplates = 'Code Templates ...';
lisMenuCodeToolsDefinesEditor = 'CodeTools defines editor ...';
@ -2914,6 +2916,9 @@ resourcestring
+'want to delete this build profile?';
lisLazBuildSelectProfilesToBuild = 'Select profiles to build';
lisExamplesOpenFirstSelected = 'Open first selected';
lisExamplesBuildAllSelected = 'Build all selected';
// compiler
lisCompilerErrorInvalidCompiler = 'Error: invalid compiler: %s';
listCompilerInternalError = 'Internal compiler error! (%d)';

View File

@ -140,7 +140,7 @@ uses
CodeTemplatesDlg, CodeBrowser, FindUnitDlg, InspectChksumChangedDlg,
IdeOptionsDlg, EditDefineTree, PublishModule, EnvironmentOpts, TransferMacros,
KeyMapping, IDETranslations, IDEProcs, ExtToolDialog, ExtToolEditDlg,
OutputFilter, JumpHistoryView,
OutputFilter, JumpHistoryView, ManageExamples,
BuildLazDialog, BuildProfileManager, BuildManager, CheckCompOptsForNewUnitDlg,
MiscOptions, InputHistory, UnitDependencies, ClipBoardHistory,
IDEFPCInfo, IDEInfoDlg, ProcessList, InitialSetupDlgs, NewDialog,
@ -355,6 +355,7 @@ type
procedure mnuToolConvertDelphiProjectClicked(Sender: TObject);
procedure mnuToolConvertDelphiPackageClicked(Sender: TObject);
procedure mnuToolConvertEncodingClicked(Sender: TObject);
procedure mnuToolManageExamplesClicked(Sender: TObject);
procedure mnuToolBuildLazarusClicked(Sender: TObject);
procedure mnuToolBuildAdvancedLazarusClicked(Sender: TObject);
procedure mnuToolConfigBuildLazClicked(Sender: TObject);
@ -921,6 +922,7 @@ type
function OnRunExternalTool(Tool: TIDEExternalToolOptions): TModalResult;
function DoRunExternalTool(Index: integer; ShowAbort: Boolean): TModalResult;
function DoSaveBuildIDEConfigs(Flags: TBuildLazarusFlags): TModalResult; override;
function DoManageExamples(): TModalResult; override;
function DoBuildLazarus(Flags: TBuildLazarusFlags): TModalResult; override;
function DoBuildAdvancedLazarus(ProfileNames: TStringList): TModalResult;
function DoBuildFile(ShowAbort: Boolean): TModalResult;
@ -2666,6 +2668,7 @@ begin
itmToolConvertDelphiProject.OnClick := @mnuToolConvertDelphiProjectClicked;
itmToolConvertDelphiPackage.OnClick := @mnuToolConvertDelphiPackageClicked;
itmToolConvertEncoding.OnClick := @mnuToolConvertEncodingClicked;
itmToolManageExamples.OnClick := @mnuToolManageExamplesClicked;
itmToolBuildLazarus.OnClick := @mnuToolBuildLazarusClicked;
itmToolConfigureBuildLazarus.OnClick := @mnuToolConfigBuildLazClicked;
// Set initial caption for Build Lazarus item. Will be changed in BuildLazDialog.
@ -3375,6 +3378,9 @@ begin
ecConvertDFM2LFM:
DoConvertDFMtoLFM;
ecManageExamples:
mnuToolManageExamplesClicked(Self);
ecBuildLazarus:
mnuToolBuildLazarusClicked(Self);
@ -4664,6 +4670,11 @@ begin
ShowConvertEncodingDlg;
end;
procedure TMainIDE.mnuToolManageExamplesClicked(Sender: TObject);
begin
DoManageExamples();
end;
procedure TMainIDE.mnuToolBuildLazarusClicked(Sender: TObject);
begin
with MiscellaneousOptions do
@ -12150,6 +12161,11 @@ begin
if Result<>mrOk then exit;
end;
function TMainIDE.DoManageExamples: TModalResult;
begin
ShowManageExamplesDlg;
end;
function TMainIDE.DoBuildLazarusSub(Flags: TBuildLazarusFlags): TModalResult;
var
PkgOptions: string;

View File

@ -340,6 +340,7 @@ type
itmToolConvertDFMtoLFM: TIDEMenuCommand;
itmToolConvertEncoding: TIDEMenuCommand;
//itmBuildingLazarus: TIDEMenuSection;
itmToolManageExamples: TIDEMenuCommand;
itmToolBuildLazarus: TIDEMenuCommand;
itmToolConfigureBuildLazarus: TIDEMenuCommand;

View File

@ -775,6 +775,7 @@ begin
CreateMenuSeparatorSection(mnuTools,itmBuildingLazarus,'itmBuildingLazarus');
ParentMI:=itmBuildingLazarus;
CreateMenuItem(ParentMI,itmToolManageExamples,'itmToolManageExamples',lisMenuExampleProjects, 'camera');
CreateMenuItem(ParentMI,itmToolBuildLazarus,'itmToolBuildLazarus',lisMenuBuildLazarus,'menu_build_lazarus');
CreateMenuItem(ParentMI,itmToolConfigureBuildLazarus,'itmToolConfigureBuildLazarus',
lisMenuConfigureBuildLazarus, 'menu_configure_build_lazarus');
@ -1020,6 +1021,7 @@ begin
itmToolConvertDelphiProject.Command:=GetCommand(ecConvertDelphiProject);
itmToolConvertDelphiPackage.Command:=GetCommand(ecConvertDelphiPackage);
itmToolConvertEncoding.Command:=GetCommand(ecConvertEncoding);
itmToolManageExamples.Command:=GetCommand(ecManageExamples);
itmToolBuildLazarus.Command:=GetCommand(ecBuildLazarus);
itmToolConfigureBuildLazarus.Command:=GetCommand(ecConfigBuildLazarus);

View File

@ -172,6 +172,7 @@ type
function PrepareForCompile: TModalResult; virtual; abstract; // stop things that interfere with compilation, like debugging
function DoSaveBuildIDEConfigs(Flags: TBuildLazarusFlags): TModalResult; virtual; abstract;
function DoManageExamples(): TModalResult; virtual; abstract;
function DoBuildLazarus(Flags: TBuildLazarusFlags): TModalResult; virtual; abstract;
function DoSaveForBuild(AReason: TCompileReason): TModalResult; virtual; abstract;
function DoPublishModule(Options: TPublishModuleOptions;

View File

@ -230,7 +230,7 @@ const
ecPrevBookmark = ecFirstLazarus + 382;
ecNextBookmark = ecFirstLazarus + 383;
// compile menu
// run menu
ecCompile = ecFirstLazarus + 400;
ecBuild = ecFirstLazarus + 401;
ecQuickCompile = ecFirstLazarus + 402;
@ -243,8 +243,7 @@ const
ecRunToCursor = ecFirstLazarus + 414;
ecStopProgram = ecFirstLazarus + 415;
ecResetDebugger = ecFirstLazarus + 416;
ecBuildLazarus = ecFirstLazarus + 420;
ecBuildAdvancedLazarus = ecFirstLazarus + 421;
ecRunParameters = ecFirstLazarus + 417;
ecBuildFile = ecFirstLazarus + 431;
ecRunFile = ecFirstLazarus + 432;
ecConfigBuildFile = ecFirstLazarus + 433;
@ -279,12 +278,12 @@ const
ecViewProjectSource = ecFirstLazarus + 512;
ecProjectOptions = ecFirstLazarus + 513;
// components menu
// package menu
ecOpenPackage = ecFirstLazarus + 600;
ecOpenPackageFile = ecFirstLazarus + 601;
ecOpenPackageOfCurUnit = ecFirstLazarus + 602;
ecAddCurFileToPkg = ecFirstLazarus + 603;
ecAddCurUnitToPkg = ecAddCurFileToPkg deprecated;
// ecAddCurUnitToPkg = ecAddCurFileToPkg deprecated;
ecPackageGraph = ecFirstLazarus + 604;
ecEditInstallPkgs = ecFirstLazarus + 605;
ecConfigCustomComps = ecFirstLazarus + 606;
@ -294,22 +293,20 @@ const
ecExtToolFirst = ecFirstLazarus + 700;
ecExtToolLast = ecFirstLazarus + 799;
// option commmands
ecRunParameters = ecFirstLazarus + 800;
ecReserved0 = ecFirstLazarus + 801; // reserved
ecExtToolSettings = ecFirstLazarus + 802;
ecConfigBuildLazarus = ecFirstLazarus + 803;
ecEnvironmentOptions = ecFirstLazarus + 804;
ecReserved1 = ecFirstLazarus + 805; // reserved
ecEditCodeTemplates = ecFirstLazarus + 806;
ecReserved2 = ecFirstLazarus + 807; // reserved
ecCodeToolsDefinesEd = ecFirstLazarus + 808;
ecRescanFPCSrcDir = ecFirstLazarus + 809;
// tools menu
ecExtToolSettings = ecFirstLazarus + 820;
ecEnvironmentOptions = ecFirstLazarus + 821;
ecEditCodeTemplates = ecFirstLazarus + 822;
ecCodeToolsDefinesEd = ecFirstLazarus + 823;
ecRescanFPCSrcDir = ecFirstLazarus + 824;
ecManageExamples = ecFirstLazarus + 825;
ecConfigBuildLazarus = ecFirstLazarus + 830;
ecBuildLazarus = ecFirstLazarus + 831;
ecBuildAdvancedLazarus = ecFirstLazarus + 832;
// help menu
ecAboutLazarus = ecFirstLazarus + 900;
ecOnlineHelp = ecFirstLazarus + 901;
ecReserved3 = ecFirstLazarus + 902; // reserved
ecContextHelp = ecFirstLazarus + 903;
ecEditContextHelp = ecFirstLazarus + 904;
ecReportingBug = ecFirstLazarus + 905;