mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-16 13:19:19 +02:00
project groups: reload button as workaround for missing sync
git-svn-id: trunk@50452 -
This commit is contained in:
parent
0c78058cbb
commit
e2b4acb980
@ -1,7 +1,5 @@
|
|||||||
{
|
{
|
||||||
ToDo:
|
ToDo:
|
||||||
- save/restore Active target
|
|
||||||
- run external tool
|
|
||||||
- update files when project/package changes in IDE
|
- update files when project/package changes in IDE
|
||||||
- update dependencies when changed in IDE
|
- update dependencies when changed in IDE
|
||||||
- re-add removed targets
|
- re-add removed targets
|
||||||
@ -111,6 +109,7 @@ type
|
|||||||
public
|
public
|
||||||
constructor Create(aCompileTarget: TIDECompileTarget);
|
constructor Create(aCompileTarget: TIDECompileTarget);
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
|
procedure Clear;
|
||||||
function IndexOfTarget(const Target: TPGCompileTarget): Integer; override;
|
function IndexOfTarget(const Target: TPGCompileTarget): Integer; override;
|
||||||
function IndexOfRemovedTarget(const Target: TPGCompileTarget): Integer; override;
|
function IndexOfRemovedTarget(const Target: TPGCompileTarget): Integer; override;
|
||||||
function AddTarget(Const AFileName: String): TPGCompileTarget; override;
|
function AddTarget(Const AFileName: String): TPGCompileTarget; override;
|
||||||
@ -658,11 +657,15 @@ destructor TIDEProjectGroup.Destroy;
|
|||||||
begin
|
begin
|
||||||
FreeAndNil(FTargets);
|
FreeAndNil(FTargets);
|
||||||
FreeAndNil(FRemovedTargets);
|
FreeAndNil(FRemovedTargets);
|
||||||
if FParent=nil then
|
|
||||||
FreeAndNil(FCompileTarget);
|
|
||||||
inherited Destroy;
|
inherited Destroy;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TIDEProjectGroup.Clear;
|
||||||
|
begin
|
||||||
|
FTargets.Clear;
|
||||||
|
FRemovedTargets.Clear;
|
||||||
|
end;
|
||||||
|
|
||||||
function TIDEProjectGroup.IndexOfTarget(const Target: TPGCompileTarget): Integer;
|
function TIDEProjectGroup.IndexOfTarget(const Target: TPGCompileTarget): Integer;
|
||||||
begin
|
begin
|
||||||
Result:=FTargets.IndexOf(Target);
|
Result:=FTargets.IndexOf(Target);
|
||||||
@ -740,6 +743,8 @@ begin
|
|||||||
if not FilenameIsAbsolute(FileName) then exit;
|
if not FilenameIsAbsolute(FileName) then exit;
|
||||||
if not FileExistsCached(Filename) then exit;
|
if not FileExistsCached(Filename) then exit;
|
||||||
|
|
||||||
|
Clear;
|
||||||
|
|
||||||
aGroup:=Parent;
|
aGroup:=Parent;
|
||||||
while aGroup<>nil do begin
|
while aGroup<>nil do begin
|
||||||
if CompareFilenames(aGroup.FileName,Filename)=0 then
|
if CompareFilenames(aGroup.FileName,Filename)=0 then
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
object ProjectGroupEditorForm: TProjectGroupEditorForm
|
object ProjectGroupEditorForm: TProjectGroupEditorForm
|
||||||
Left = 655
|
Left = 383
|
||||||
Height = 358
|
Height = 358
|
||||||
Top = 177
|
Top = 187
|
||||||
Width = 646
|
Width = 646
|
||||||
Caption = 'ProjectGroupEditorForm'
|
Caption = 'ProjectGroupEditorForm'
|
||||||
ClientHeight = 358
|
ClientHeight = 358
|
||||||
@ -70,7 +70,7 @@ object ProjectGroupEditorForm: TProjectGroupEditorForm
|
|||||||
Action = ATargetLater
|
Action = ATargetLater
|
||||||
end
|
end
|
||||||
object TBMore: TToolButton
|
object TBMore: TToolButton
|
||||||
Left = 523
|
Left = 574
|
||||||
Top = 2
|
Top = 2
|
||||||
Caption = 'More...'
|
Caption = 'More...'
|
||||||
DropdownMenu = PopupMenuMore
|
DropdownMenu = PopupMenuMore
|
||||||
@ -82,6 +82,11 @@ object ProjectGroupEditorForm: TProjectGroupEditorForm
|
|||||||
Action = ATargetActivate
|
Action = ATargetActivate
|
||||||
Visible = False
|
Visible = False
|
||||||
end
|
end
|
||||||
|
object TBReload: TToolButton
|
||||||
|
Left = 523
|
||||||
|
Top = 2
|
||||||
|
Action = AProjectGroupReload
|
||||||
|
end
|
||||||
end
|
end
|
||||||
object TVPG: TTreeView
|
object TVPG: TTreeView
|
||||||
Left = 0
|
Left = 0
|
||||||
@ -122,7 +127,7 @@ object ProjectGroupEditorForm: TProjectGroupEditorForm
|
|||||||
left = 128
|
left = 128
|
||||||
top = 184
|
top = 184
|
||||||
Bitmap = {
|
Bitmap = {
|
||||||
4C69190000001000000010000000FFFFFF009E6E4D2B9D6D4CD69D6D4BC59D6C
|
4C691A0000001000000010000000FFFFFF009E6E4D2B9D6D4CD69D6D4BC59D6C
|
||||||
4BFF9C6C4AFF9C6B49FF9B6A49FF9B6A48FF9A6947FF996846FF986745FF9364
|
4BFF9C6C4AFF9C6B49FF9B6A49FF9B6A48FF9A6947FF996846FF986745FF9364
|
||||||
43FF845D3EDEFFFFFF00FFFFFF00FFFFFF009D6D4C919D6D4BFEBB9778FFAC82
|
43FF845D3EDEFFFFFF00FFFFFF00FFFFFF009D6D4C919D6D4BFEBB9778FFAC82
|
||||||
62FFAC8161FFAB8060FFAB7F5FFFAA7F5EFFA87E5DFFA87C5CFF9D6D4CFF9766
|
62FFAC8161FFAB8060FFAB7F5FFFAA7F5EFFA87E5DFFA87C5CFF9D6D4CFF9766
|
||||||
@ -922,7 +927,39 @@ object ProjectGroupEditorForm: TProjectGroupEditorForm
|
|||||||
ED66FEFEFE00848484FFBDBDBDFFB2B2B2FF656565FFFEFEFE00ECECEC88CCCC
|
ED66FEFEFE00848484FFBDBDBDFFB2B2B2FF656565FFFEFEFE00ECECEC88CCCC
|
||||||
CCFFCCCCCCFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
CCFFCCCCCCFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
FF00FFFFFF00A4A4A4FF747474FF707070FF9C9C9CFFFFFFFF00FFFFFF00FFFF
|
FF00FFFFFF00A4A4A4FF747474FF707070FF9C9C9CFFFFFFFF00FFFFFF00FFFF
|
||||||
FF00FFFFFF00FFFFFF00FFFFFF00
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00A465341DA769
|
||||||
|
3A9FA76A3ADEA56736F6A76939E5A76A3ABCA4653453A4653405FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00A4653479A4653410FFFFFF00FFFFFF00A4653550A66838F6C090
|
||||||
|
68FAD3B08FFFDFC2A8FFDEC1A8FFD4B193FFB9875FF4A56737F0A4653458FFFF
|
||||||
|
FF00A4663566A46534FFA465340FFFFFFF00A4653429A66939F5D3AD8CFFDCBD
|
||||||
|
9DFFDDBEA1FFE5CBB4FFE9D3BFFFEEDDCCFFF0E2D5FFE7D2BFFFAF774BF5A567
|
||||||
|
36C0AB7143F7A46635FCA465340EFFFFFF00A769399BC09069FDC59872FFA86B
|
||||||
|
3CFFA46635FFA76A3AFCB7855DF3D9BBA1FEF1E4D8FFF2E6DBFFF3E8DDFFCEA7
|
||||||
|
88FDEAD8C8FFA76A3AF9A465340DFFFFFF00A66838F3AB7041FFA96C3CFEA76A
|
||||||
|
3AF5A4653475A4653419A4653445A66938CDB98861F5EBDBCDFFF5EBE2FFF6EE
|
||||||
|
E6FFF6EEE6FFA76A3AFAA465340BFFFFFF00A46535FEA76A3AFBC791689DA567
|
||||||
|
37E6A4653423FFFFFF00FFFFFF00FFFFFF00A4653460A46635FFE9D7C7FFEBD8
|
||||||
|
C6FFF5ECE3FFA66A3AFAA465340AFFFFFF00A46534FCB3794C7ECF9D762BBB83
|
||||||
|
5713A4653402FFFFFF00FFFFFF00A4653404A66838C4D0AC8FFAF6EEE7FFF2E6
|
||||||
|
DBFFF6EEE6FFA66A3AFBA4653409FFFFFF00A465340DFFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00A46534A0A46534FFAD7447F8AF774CF7AF77
|
||||||
|
4CF7AF784CF7A46534FFA4653408FFFFFF00A46534F9A46534FEA46534FEA465
|
||||||
|
34FDA46534FCA46534FBA46534B9A465341DA4653418A4653418A4653418A465
|
||||||
|
3418A4653418A465341CFFFFFF00FFFFFF00A46534FCF5EDE5FFF6EDE5FFF5EC
|
||||||
|
E4FFD7B79CFDA66837E0A4653410FFFFFF00FFFFFF00FFFFFF00FFFFFF00D5A4
|
||||||
|
7E1ACD997239A46534FCA465340CFFFFFF00A46635FCF6EEE6FFEBD7C4FFEAD9
|
||||||
|
C9FFA46534FEA465346AFFFFFF00FFFFFF00FFFFFF00A465340BA56635E9C995
|
||||||
|
6C8DB77F53C2A46534FFA4653405FFFFFF00A56737FDF6EEE6FFF5ECE3FFF5ED
|
||||||
|
E4FFE6D2C1FFB0794DF5A66938CAA4653436FFFFFF00A465346AA96B3CEDB67C
|
||||||
|
4FFFA76A3AFEA56837FAFFFFFF00FFFFFF00A66838FDF1E4D8FFD4B295FEF4E9
|
||||||
|
E0FFF3E8DDFFEDDCCCFFD2AD8FFEB0784CF5A56635FBA66939FFA66939FEA96D
|
||||||
|
3DFFB0784CFFA76A3AA8FFFFFF00FFFFFF00A56737FEB7845BF7A56736D4B17A
|
||||||
|
4EF4E3CAB4FFECDAC9FFE7D1BCFFE3C9B0FFDEBEA0FFD2AB88FFCEA582FFD3AE
|
||||||
|
8EFFA66838F5A465342AFFFFFF00FFFFFF00A46534FFA5673693FFFFFF00A465
|
||||||
|
3454A66737EEB58055F3CEA684FFD8B697FFDBB999FFD3AC8AFFC2946DFCA668
|
||||||
|
38F6A466355BFFFFFF00FFFFFF00FFFFFF00A46534A2A4653401FFFFFF00FFFF
|
||||||
|
FF00A4653405A4653453A76A3ABEA66938E9A46635FAA76A3AE4A76B3BAAA465
|
||||||
|
3424FFFFFF00FFFFFF00FFFFFF00
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
object PopupMenuMore: TPopupMenu
|
object PopupMenuMore: TPopupMenu
|
||||||
@ -1084,6 +1121,12 @@ object ProjectGroupEditorForm: TProjectGroupEditorForm
|
|||||||
OnExecute = ATargetCopyFilenameExecute
|
OnExecute = ATargetCopyFilenameExecute
|
||||||
OnUpdate = ATargetCopyFilenameUpdate
|
OnUpdate = ATargetCopyFilenameUpdate
|
||||||
end
|
end
|
||||||
|
object AProjectGroupReload: TAction
|
||||||
|
Category = 'ProjectGroupActions'
|
||||||
|
Caption = 'Reload'
|
||||||
|
ImageIndex = 25
|
||||||
|
OnExecute = AProjectGroupReloadExecute
|
||||||
|
end
|
||||||
end
|
end
|
||||||
object PopupMenuTree: TPopupMenu
|
object PopupMenuTree: TPopupMenu
|
||||||
Images = ImageListMain
|
Images = ImageListMain
|
||||||
|
@ -14,7 +14,7 @@ uses
|
|||||||
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ComCtrls, Menus,
|
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ComCtrls, Menus,
|
||||||
ActnList, LCLProc, Clipbrd, LazIDEIntf, PackageIntf, ProjectIntf,
|
ActnList, LCLProc, Clipbrd, LazIDEIntf, PackageIntf, ProjectIntf,
|
||||||
ProjectGroupIntf, MenuIntf, IDEDialogs, IDEWindowIntf, LazFileUtils,
|
ProjectGroupIntf, MenuIntf, IDEDialogs, IDEWindowIntf, LazFileUtils,
|
||||||
LazLogger, ProjectGroupStrConst, ProjectGroup;
|
LazLogger, LazFileCache, ProjectGroupStrConst, ProjectGroup;
|
||||||
|
|
||||||
type
|
type
|
||||||
TNodeType = (
|
TNodeType = (
|
||||||
@ -46,6 +46,7 @@ type
|
|||||||
{ TProjectGroupEditorForm }
|
{ TProjectGroupEditorForm }
|
||||||
|
|
||||||
TProjectGroupEditorForm = class(TForm)
|
TProjectGroupEditorForm = class(TForm)
|
||||||
|
AProjectGroupReload: TAction;
|
||||||
ATargetCompileFromHere: TAction;
|
ATargetCompileFromHere: TAction;
|
||||||
ATargetCopyFilename: TAction;
|
ATargetCopyFilename: TAction;
|
||||||
AProjectGroupAddExisting: TAction;
|
AProjectGroupAddExisting: TAction;
|
||||||
@ -93,7 +94,9 @@ type
|
|||||||
TBTargetLater: TToolButton;
|
TBTargetLater: TToolButton;
|
||||||
TBMore: TToolButton;
|
TBMore: TToolButton;
|
||||||
TBActivate: TToolButton;
|
TBActivate: TToolButton;
|
||||||
|
TBReload: TToolButton;
|
||||||
TVPG: TTreeView;
|
TVPG: TTreeView;
|
||||||
|
procedure AProjectGroupReloadExecute(Sender: TObject);
|
||||||
procedure ATargetActivateExecute(Sender: TObject);
|
procedure ATargetActivateExecute(Sender: TObject);
|
||||||
procedure ATargetActivateUpdate(Sender: TObject);
|
procedure ATargetActivateUpdate(Sender: TObject);
|
||||||
procedure AProjectGroupAddExistingExecute(Sender: TObject);
|
procedure AProjectGroupAddExistingExecute(Sender: TObject);
|
||||||
@ -755,6 +758,25 @@ begin
|
|||||||
ND.Target.Activate;
|
ND.Target.Activate;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TProjectGroupEditorForm.AProjectGroupReloadExecute(Sender: TObject);
|
||||||
|
var
|
||||||
|
PG: TIDEProjectGroup;
|
||||||
|
begin
|
||||||
|
if ProjectGroup=nil then exit;
|
||||||
|
if FileExistsCached(ProjectGroup.FileName) then
|
||||||
|
begin
|
||||||
|
PG:=TIDEProjectGroup(ProjectGroup);
|
||||||
|
if PG.Modified then begin
|
||||||
|
IDEMessageDialog('Need save','Please save your changes before reloading the project group.',
|
||||||
|
mtError,[mbOK]);
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
ProjectGroup:=nil;
|
||||||
|
PG.LoadFromFile([pgloLoadRecursively]);
|
||||||
|
ProjectGroup:=PG;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TProjectGroupEditorForm.ATargetCompileCleanExecute(Sender: TObject);
|
procedure TProjectGroupEditorForm.ATargetCompileCleanExecute(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
Perform(taCompileClean);
|
Perform(taCompileClean);
|
||||||
|
Loading…
Reference in New Issue
Block a user