mirror of
				https://gitlab.com/freepascal.org/lazarus/lazarus.git
				synced 2025-10-31 22:49:30 +01: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
	 mattias
						mattias