ProjectGroups: open Drop-Down-Button

This commit is contained in:
Ondrej Pokorny 2024-06-10 13:51:55 +02:00
parent 1b1dd07d55
commit c695f895ea
20 changed files with 278 additions and 68 deletions

View File

@ -15,6 +15,9 @@ pg_new_200.png
pg_open.png pg_open.png
pg_open_150.png pg_open_150.png
pg_open_200.png pg_open_200.png
pg_open_simple.png
pg_open_simple_150.png
pg_open_simple_200.png
pg_open_recent.png pg_open_recent.png
pg_open_recent_150.png pg_open_recent_150.png
pg_open_recent_200.png pg_open_recent_200.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 430 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 659 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 699 B

View File

@ -324,6 +324,16 @@ msgctxt "projectgroupstrconst.lisprojectgroupnewhint"
msgid "New project group" msgid "New project group"
msgstr "Neue Projektgruppe" msgstr "Neue Projektgruppe"
#: projectgroupstrconst.lisprojectgroupopencaption
#, fuzzy
msgctxt "projectgroupstrconst.lisprojectgroupopencaption"
msgid "Open"
msgstr "Öffnen"
#: projectgroupstrconst.lisprojectgroupopenhint
msgid "Open project group"
msgstr ""
#: projectgroupstrconst.lisprojectgroupreload #: projectgroupstrconst.lisprojectgroupreload
msgid "Reload" msgid "Reload"
msgstr "Neu laden" msgstr "Neu laden"
@ -499,6 +509,7 @@ msgid "Open Target"
msgstr "Ziel öffnen" msgstr "Ziel öffnen"
#: projectgroupstrconst.listargetopencaption #: projectgroupstrconst.listargetopencaption
msgctxt "projectgroupstrconst.listargetopencaption"
msgid "Open" msgid "Open"
msgstr "Öffnen" msgstr "Öffnen"

View File

@ -311,6 +311,16 @@ msgctxt "projectgroupstrconst.lisprojectgroupnewhint"
msgid "New project group" msgid "New project group"
msgstr "Nouveau groupe de projets" msgstr "Nouveau groupe de projets"
#: projectgroupstrconst.lisprojectgroupopencaption
#, fuzzy
msgctxt "projectgroupstrconst.lisprojectgroupopencaption"
msgid "Open"
msgstr "Ouvrir"
#: projectgroupstrconst.lisprojectgroupopenhint
msgid "Open project group"
msgstr ""
#: projectgroupstrconst.lisprojectgroupreload #: projectgroupstrconst.lisprojectgroupreload
msgid "Reload" msgid "Reload"
msgstr "Recharger" msgstr "Recharger"
@ -484,6 +494,7 @@ msgid "Open Target"
msgstr "Ouvrir la cible" msgstr "Ouvrir la cible"
#: projectgroupstrconst.listargetopencaption #: projectgroupstrconst.listargetopencaption
msgctxt "projectgroupstrconst.listargetopencaption"
msgid "Open" msgid "Open"
msgstr "Ouvrir" msgstr "Ouvrir"

View File

@ -311,6 +311,16 @@ msgctxt "projectgroupstrconst.lisprojectgroupnewhint"
msgid "New project group" msgid "New project group"
msgstr "Új projektcsoport" msgstr "Új projektcsoport"
#: projectgroupstrconst.lisprojectgroupopencaption
#, fuzzy
msgctxt "projectgroupstrconst.lisprojectgroupopencaption"
msgid "Open"
msgstr "Megnyitás"
#: projectgroupstrconst.lisprojectgroupopenhint
msgid "Open project group"
msgstr ""
#: projectgroupstrconst.lisprojectgroupreload #: projectgroupstrconst.lisprojectgroupreload
msgid "Reload" msgid "Reload"
msgstr "Újratöltés" msgstr "Újratöltés"
@ -484,6 +494,7 @@ msgid "Open Target"
msgstr "Cél megnyitása" msgstr "Cél megnyitása"
#: projectgroupstrconst.listargetopencaption #: projectgroupstrconst.listargetopencaption
msgctxt "projectgroupstrconst.listargetopencaption"
msgid "Open" msgid "Open"
msgstr "Megnyitás" msgstr "Megnyitás"

View File

@ -319,6 +319,16 @@ msgctxt "projectgroupstrconst.lisprojectgroupnewhint"
msgid "New project group" msgid "New project group"
msgstr "Nuovo gruppo di progetti" msgstr "Nuovo gruppo di progetti"
#: projectgroupstrconst.lisprojectgroupopencaption
#, fuzzy
msgctxt "projectgroupstrconst.lisprojectgroupopencaption"
msgid "Open"
msgstr "Apri"
#: projectgroupstrconst.lisprojectgroupopenhint
msgid "Open project group"
msgstr ""
#: projectgroupstrconst.lisprojectgroupreload #: projectgroupstrconst.lisprojectgroupreload
msgid "Reload" msgid "Reload"
msgstr "Ricarica" msgstr "Ricarica"
@ -498,6 +508,7 @@ msgid "Open Target"
msgstr "Apri destinazione" msgstr "Apri destinazione"
#: projectgroupstrconst.listargetopencaption #: projectgroupstrconst.listargetopencaption
msgctxt "projectgroupstrconst.listargetopencaption"
msgid "Open" msgid "Open"
msgstr "Apri" msgstr "Apri"

View File

@ -324,6 +324,16 @@ msgctxt "projectgroupstrconst.lisprojectgroupnewhint"
msgid "New project group" msgid "New project group"
msgstr "Nauja projekto grupė" msgstr "Nauja projekto grupė"
#: projectgroupstrconst.lisprojectgroupopencaption
#, fuzzy
msgctxt "projectgroupstrconst.lisprojectgroupopencaption"
msgid "Open"
msgstr "Atverti"
#: projectgroupstrconst.lisprojectgroupopenhint
msgid "Open project group"
msgstr ""
#: projectgroupstrconst.lisprojectgroupreload #: projectgroupstrconst.lisprojectgroupreload
msgid "Reload" msgid "Reload"
msgstr "Įkelti iš naujo" msgstr "Įkelti iš naujo"
@ -499,6 +509,7 @@ msgid "Open Target"
msgstr "Atverti tikslą" msgstr "Atverti tikslą"
#: projectgroupstrconst.listargetopencaption #: projectgroupstrconst.listargetopencaption
msgctxt "projectgroupstrconst.listargetopencaption"
msgid "Open" msgid "Open"
msgstr "Atverti" msgstr "Atverti"

View File

@ -296,6 +296,15 @@ msgctxt "projectgroupstrconst.lisprojectgroupnewhint"
msgid "New project group" msgid "New project group"
msgstr "" msgstr ""
#: projectgroupstrconst.lisprojectgroupopencaption
msgctxt "projectgroupstrconst.lisprojectgroupopencaption"
msgid "Open"
msgstr ""
#: projectgroupstrconst.lisprojectgroupopenhint
msgid "Open project group"
msgstr ""
#: projectgroupstrconst.lisprojectgroupreload #: projectgroupstrconst.lisprojectgroupreload
msgid "Reload" msgid "Reload"
msgstr "" msgstr ""
@ -469,6 +478,7 @@ msgid "Open Target"
msgstr "" msgstr ""
#: projectgroupstrconst.listargetopencaption #: projectgroupstrconst.listargetopencaption
msgctxt "projectgroupstrconst.listargetopencaption"
msgid "Open" msgid "Open"
msgstr "" msgstr ""

View File

@ -311,6 +311,16 @@ msgctxt "projectgroupstrconst.lisprojectgroupnewhint"
msgid "New project group" msgid "New project group"
msgstr "Novo grupo de projeto" msgstr "Novo grupo de projeto"
#: projectgroupstrconst.lisprojectgroupopencaption
#, fuzzy
msgctxt "projectgroupstrconst.lisprojectgroupopencaption"
msgid "Open"
msgstr "Abrir"
#: projectgroupstrconst.lisprojectgroupopenhint
msgid "Open project group"
msgstr ""
#: projectgroupstrconst.lisprojectgroupreload #: projectgroupstrconst.lisprojectgroupreload
msgid "Reload" msgid "Reload"
msgstr "Recarregar" msgstr "Recarregar"
@ -484,6 +494,7 @@ msgid "Open Target"
msgstr "Abrir Alvo" msgstr "Abrir Alvo"
#: projectgroupstrconst.listargetopencaption #: projectgroupstrconst.listargetopencaption
msgctxt "projectgroupstrconst.listargetopencaption"
msgid "Open" msgid "Open"
msgstr "Abrir" msgstr "Abrir"

View File

@ -311,6 +311,16 @@ msgctxt "projectgroupstrconst.lisprojectgroupnewhint"
msgid "New project group" msgid "New project group"
msgstr "Новая группа проектов" msgstr "Новая группа проектов"
#: projectgroupstrconst.lisprojectgroupopencaption
#, fuzzy
msgctxt "projectgroupstrconst.lisprojectgroupopencaption"
msgid "Open"
msgstr "Открыть"
#: projectgroupstrconst.lisprojectgroupopenhint
msgid "Open project group"
msgstr ""
#: projectgroupstrconst.lisprojectgroupreload #: projectgroupstrconst.lisprojectgroupreload
msgid "Reload" msgid "Reload"
msgstr "Перезагрузить" msgstr "Перезагрузить"
@ -484,6 +494,7 @@ msgid "Open Target"
msgstr "Открыть цель" msgstr "Открыть цель"
#: projectgroupstrconst.listargetopencaption #: projectgroupstrconst.listargetopencaption
msgctxt "projectgroupstrconst.listargetopencaption"
msgid "Open" msgid "Open"
msgstr "Открыть" msgstr "Открыть"

View File

@ -309,6 +309,16 @@ msgctxt "projectgroupstrconst.lisprojectgroupnewhint"
msgid "New project group" msgid "New project group"
msgstr "Nová skupina projektov" msgstr "Nová skupina projektov"
#: projectgroupstrconst.lisprojectgroupopencaption
#, fuzzy
msgctxt "projectgroupstrconst.lisprojectgroupopencaption"
msgid "Open"
msgstr "Otvoriť"
#: projectgroupstrconst.lisprojectgroupopenhint
msgid "Open project group"
msgstr ""
#: projectgroupstrconst.lisprojectgroupreload #: projectgroupstrconst.lisprojectgroupreload
msgid "Reload" msgid "Reload"
msgstr "Znovu načítať" msgstr "Znovu načítať"
@ -482,6 +492,7 @@ msgid "Open Target"
msgstr "Otvoriť cieľ" msgstr "Otvoriť cieľ"
#: projectgroupstrconst.listargetopencaption #: projectgroupstrconst.listargetopencaption
msgctxt "projectgroupstrconst.listargetopencaption"
msgid "Open" msgid "Open"
msgstr "Otvoriť" msgstr "Otvoriť"

View File

@ -311,6 +311,16 @@ msgctxt "projectgroupstrconst.lisprojectgroupnewhint"
msgid "New project group" msgid "New project group"
msgstr "Yeni proje grubu" msgstr "Yeni proje grubu"
#: projectgroupstrconst.lisprojectgroupopencaption
#, fuzzy
msgctxt "projectgroupstrconst.lisprojectgroupopencaption"
msgid "Open"
msgstr "Aç"
#: projectgroupstrconst.lisprojectgroupopenhint
msgid "Open project group"
msgstr ""
#: projectgroupstrconst.lisprojectgroupreload #: projectgroupstrconst.lisprojectgroupreload
msgid "Reload" msgid "Reload"
msgstr "Tekrar yükle" msgstr "Tekrar yükle"
@ -484,6 +494,7 @@ msgid "Open Target"
msgstr "Hedefi Aç" msgstr "Hedefi Aç"
#: projectgroupstrconst.listargetopencaption #: projectgroupstrconst.listargetopencaption
msgctxt "projectgroupstrconst.listargetopencaption"
msgid "Open" msgid "Open"
msgstr "Aç" msgstr "Aç"

View File

@ -313,6 +313,16 @@ msgctxt "projectgroupstrconst.lisprojectgroupnewhint"
msgid "New project group" msgid "New project group"
msgstr "Нова група проєктів" msgstr "Нова група проєктів"
#: projectgroupstrconst.lisprojectgroupopencaption
#, fuzzy
msgctxt "projectgroupstrconst.lisprojectgroupopencaption"
msgid "Open"
msgstr "Відкрити"
#: projectgroupstrconst.lisprojectgroupopenhint
msgid "Open project group"
msgstr ""
#: projectgroupstrconst.lisprojectgroupreload #: projectgroupstrconst.lisprojectgroupreload
msgid "Reload" msgid "Reload"
msgstr "Перезавантажити" msgstr "Перезавантажити"
@ -486,6 +496,7 @@ msgid "Open Target"
msgstr "Відкрити ціль" msgstr "Відкрити ціль"
#: projectgroupstrconst.listargetopencaption #: projectgroupstrconst.listargetopencaption
msgctxt "projectgroupstrconst.listargetopencaption"
msgid "Open" msgid "Open"
msgstr "Відкрити" msgstr "Відкрити"

View File

@ -312,6 +312,16 @@ msgctxt "projectgroupstrconst.lisprojectgroupnewhint"
msgid "New project group" msgid "New project group"
msgstr "新建项目组" msgstr "新建项目组"
#: projectgroupstrconst.lisprojectgroupopencaption
#, fuzzy
msgctxt "projectgroupstrconst.lisprojectgroupopencaption"
msgid "Open"
msgstr "打开"
#: projectgroupstrconst.lisprojectgroupopenhint
msgid "Open project group"
msgstr ""
#: projectgroupstrconst.lisprojectgroupreload #: projectgroupstrconst.lisprojectgroupreload
msgid "Reload" msgid "Reload"
msgstr "重新加载" msgstr "重新加载"
@ -485,6 +495,7 @@ msgid "Open Target"
msgstr "打开目标" msgstr "打开目标"
#: projectgroupstrconst.listargetopencaption #: projectgroupstrconst.listargetopencaption
msgctxt "projectgroupstrconst.listargetopencaption"
msgid "Open" msgid "Open"
msgstr "打开" msgstr "打开"

View File

@ -1,34 +1,40 @@
object ProjectGroupEditorForm: TProjectGroupEditorForm object ProjectGroupEditorForm: TProjectGroupEditorForm
Left = 190 Left = 331
Height = 448 Height = 358
Top = 198 Top = 393
Width = 808 Width = 646
BorderIcons = [biSystemMenu] BorderIcons = [biSystemMenu]
Caption = 'ProjectGroupEditorForm' Caption = 'ProjectGroupEditorForm'
ClientHeight = 448 ClientHeight = 358
ClientWidth = 808 ClientWidth = 646
DesignTimePPI = 120 LCLVersion = '3.99.0.0'
OnCloseQuery = FormCloseQuery OnCloseQuery = FormCloseQuery
OnCreate = FormCreate OnCreate = FormCreate
OnDestroy = FormDestroy OnDestroy = FormDestroy
LCLVersion = '2.3.0.0'
object TBProjectGroup: TToolBar object TBProjectGroup: TToolBar
Left = 0 Left = 0
Height = 60 Height = 48
Top = 0 Top = 0
Width = 808 Width = 646
AutoSize = True AutoSize = True
ButtonHeight = 58 ButtonHeight = 46
ButtonWidth = 29 ButtonWidth = 23
ShowCaptions = True ShowCaptions = True
TabOrder = 0 TabOrder = 0
object TBSave: TToolButton object TBOpen: TToolButton
Left = 1 Left = 1
Top = 2 Top = 2
Action = AProjectGroupOpen
DropdownMenu = PopupMenuOpen
Style = tbsDropDown
end
object TBSave: TToolButton
Left = 50
Top = 2
Action = AProjectGroupSave Action = AProjectGroupSave
end end
object TBAdd: TToolButton object TBAdd: TToolButton
Left = 127 Left = 150
Top = 2 Top = 2
Caption = 'Add' Caption = 'Add'
DropdownMenu = PopupMenuAdd DropdownMenu = PopupMenuAdd
@ -36,101 +42,100 @@ object ProjectGroupEditorForm: TProjectGroupEditorForm
Style = tbsButtonDrop Style = tbsButtonDrop
end end
object TBNewTarget: TToolButton object TBNewTarget: TToolButton
Left = 41 Left = 82
Top = 2 Top = 2
Action = AProjectGroupAddNew Action = AProjectGroupAddNew
Visible = False Visible = False
end end
object TBDelete: TToolButton object TBDelete: TToolButton
Left = 177 Left = 190
Top = 2 Top = 2
Action = AProjectGroupDelete Action = AProjectGroupDelete
end end
object TBCompile: TToolButton object TBCompile: TToolButton
Left = 240 Left = 241
Top = 2 Top = 2
Action = ATargetCompile Action = ATargetCompile
end end
object TBCompileClean: TToolButton object TBCompileClean: TToolButton
Left = 305 Left = 294
Top = 2 Top = 2
Action = ATargetCompileClean Action = ATargetCompileClean
end end
object ToolButton1: TToolButton object ToolButton1: TToolButton
Left = 411 Left = 380
Height = 8 Height = 46
Top = 2 Top = 2
Caption = 'ToolButton1' Caption = 'ToolButton1'
Style = tbsSeparator Style = tbsSeparator
end end
object TBTargetUp: TToolButton object TBTargetUp: TToolButton
Left = 484 Left = 439
Top = 2 Top = 2
Action = ATargetEarlier Action = ATargetEarlier
end end
object TBTargetLater: TToolButton object TBTargetLater: TToolButton
Left = 535 Left = 479
Top = 2 Top = 2
Action = ATargetLater Action = ATargetLater
end end
object TBMore: TToolButton object TBMore: TToolButton
Left = 633 Left = 557
Top = 2 Top = 2
Caption = 'More...' Caption = 'More...'
DropdownMenu = PopupMenuMore DropdownMenu = PopupMenuMore
Style = tbsButtonDrop Style = tbsButtonDrop
end end
object TBActivate: TToolButton object TBActivate: TToolButton
Left = 421 Left = 388
Top = 2 Top = 2
Action = ATargetActivate Action = ATargetActivate
Visible = False Visible = False
end end
object TBReload: TToolButton object TBReload: TToolButton
Left = 577 Left = 513
Top = 2 Top = 2
Action = AProjectGroupReload Action = AProjectGroupReload
end end
end end
object TVPG: TTreeView object TVPG: TTreeView
Left = 0 Left = 0
Height = 359 Height = 287
Top = 60 Top = 48
Width = 808 Width = 646
Align = alClient Align = alClient
HideSelection = False HideSelection = False
PopupMenu = PopupMenuTree PopupMenu = PopupMenuTree
ReadOnly = True ReadOnly = True
RightClickSelect = True RightClickSelect = True
ShowSeparators = False
TabOrder = 1 TabOrder = 1
Options = [tvoAutoItemHeight, tvoKeepCollapsedNodes, tvoReadOnly, tvoRightClickSelect, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips, tvoThemedDraw]
OnAdvancedCustomDrawItem = TVPGAdvancedCustomDrawItem OnAdvancedCustomDrawItem = TVPGAdvancedCustomDrawItem
OnDblClick = TVPGDblClick OnDblClick = TVPGDblClick
OnKeyDown = TVPGKeyDown OnKeyDown = TVPGKeyDown
OnMouseDown = TVPGMouseDown OnMouseDown = TVPGMouseDown
OnSelectionChanged = TVPGSelectionChanged OnSelectionChanged = TVPGSelectionChanged
Options = [tvoAutoItemHeight, tvoKeepCollapsedNodes, tvoReadOnly, tvoRightClickSelect, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips, tvoThemedDraw]
end end
object SBPG: TStatusBar object SBPG: TStatusBar
Left = 0 Left = 0
Height = 29 Height = 23
Top = 419 Top = 335
Width = 808 Width = 646
Panels = < Panels = <
item item
Text = '0 targets' Text = '0 targets'
Width = 106 Width = 85
end end
item item
Text = 'Current target: ' Text = 'Current target: '
Width = 62 Width = 50
end> end>
SimplePanel = False SimplePanel = False
end end
object PopupMenuMore: TPopupMenu object PopupMenuMore: TPopupMenu
OnPopup = PopupMenuMorePopup OnPopup = PopupMenuMorePopup
Left = 260 Left = 208
Top = 120 Top = 96
object PMINew: TMenuItem object PMINew: TMenuItem
Action = AProjectGroupNew Action = AProjectGroupNew
end end
@ -187,29 +192,8 @@ object ProjectGroupEditorForm: TProjectGroupEditorForm
end end
end end
object ActionListMain: TActionList object ActionListMain: TActionList
Left = 60 Left = 48
Top = 190 Top = 152
object AProjectGroupSave: TAction
Category = 'ProjectGroupActions'
Caption = 'Save'
ImageIndex = 7
OnExecute = AProjectGroupSaveExecute
OnUpdate = AProjectGroupSaveUpdate
end
object AProjectGroupSaveAs: TAction
Category = 'ProjectGroupActions'
Caption = 'Save As'
ImageIndex = 21
OnExecute = AProjectGroupSaveAsExecute
OnUpdate = AProjectGroupSaveAsUpdate
end
object AProjectGroupAddExisting: TAction
Category = 'ProjectGroupActions'
Caption = 'Add from file'
ImageIndex = 8
OnExecute = AProjectGroupAddExistingExecute
OnUpdate = AProjectGroupAddExistingUpdate
end
object ATargetEarlier: TAction object ATargetEarlier: TAction
Category = 'TargetAction' Category = 'TargetAction'
Caption = 'Earlier' Caption = 'Earlier'
@ -294,6 +278,32 @@ object ProjectGroupEditorForm: TProjectGroupEditorForm
Caption = 'Info' Caption = 'Info'
OnExecute = ATargetInfoExecute OnExecute = ATargetInfoExecute
end end
object AProjectGroupOpen: TAction
Category = 'ProjectGroupActions'
Caption = 'Open'
OnExecute = AProjectGroupOpenExecute
end
object AProjectGroupSave: TAction
Category = 'ProjectGroupActions'
Caption = 'Save'
ImageIndex = 7
OnExecute = AProjectGroupSaveExecute
OnUpdate = AProjectGroupSaveUpdate
end
object AProjectGroupSaveAs: TAction
Category = 'ProjectGroupActions'
Caption = 'Save As'
ImageIndex = 21
OnExecute = AProjectGroupSaveAsExecute
OnUpdate = AProjectGroupSaveAsUpdate
end
object AProjectGroupAddExisting: TAction
Category = 'ProjectGroupActions'
Caption = 'Add from file'
ImageIndex = 8
OnExecute = AProjectGroupAddExistingExecute
OnUpdate = AProjectGroupAddExistingUpdate
end
object AProjectGroupAddCurrent: TAction object AProjectGroupAddCurrent: TAction
Category = 'ProjectGroupActions' Category = 'ProjectGroupActions'
Caption = 'Add current project' Caption = 'Add current project'
@ -351,8 +361,8 @@ object ProjectGroupEditorForm: TProjectGroupEditorForm
end end
end end
object PopupMenuTree: TPopupMenu object PopupMenuTree: TPopupMenu
Left = 260 Left = 208
Top = 190 Top = 152
object PMICopyFilenameMenuItem: TMenuItem object PMICopyFilenameMenuItem: TMenuItem
Action = ATargetCopyFilename Action = ATargetCopyFilename
end end
@ -638,12 +648,12 @@ object ProjectGroupEditorForm: TProjectGroupEditorForm
end end
object OpenDialogTarget: TOpenDialog object OpenDialogTarget: TOpenDialog
Options = [ofAllowMultiSelect, ofFileMustExist, ofEnableSizing, ofViewDetail] Options = [ofAllowMultiSelect, ofFileMustExist, ofEnableSizing, ofViewDetail]
Left = 60 Left = 48
Top = 120 Top = 96
end end
object PopupMenuAdd: TPopupMenu object PopupMenuAdd: TPopupMenu
Left = 150 Left = 120
Top = 66 Top = 53
object PMIAddExisting: TMenuItem object PMIAddExisting: TMenuItem
Action = AProjectGroupAddExisting Action = AProjectGroupAddExisting
end end
@ -656,7 +666,12 @@ object ProjectGroupEditorForm: TProjectGroupEditorForm
end end
object SelectDirectoryDialog: TSelectDirectoryDialog object SelectDirectoryDialog: TSelectDirectoryDialog
Options = [ofAllowMultiSelect, ofFileMustExist, ofEnableSizing, ofViewDetail] Options = [ofAllowMultiSelect, ofFileMustExist, ofEnableSizing, ofViewDetail]
Left = 150 Left = 120
Top = 250 Top = 200
end
object PopupMenuOpen: TPopupMenu
OnPopup = PopupMenuOpenPopup
Left = 24
Top = 64
end end
end end

View File

@ -51,6 +51,7 @@ type
{ TProjectGroupEditorForm } { TProjectGroupEditorForm }
TProjectGroupEditorForm = class(TForm) TProjectGroupEditorForm = class(TForm)
AProjectGroupOpen: TAction;
AProjectGroupAddAll: TAction; AProjectGroupAddAll: TAction;
AProjectGroupNew: TAction; AProjectGroupNew: TAction;
AProjectGroupAddCurrent: TAction; AProjectGroupAddCurrent: TAction;
@ -98,6 +99,7 @@ type
PMICompile: TMenuItem; PMICompile: TMenuItem;
OpenDialogTarget: TOpenDialog; OpenDialogTarget: TOpenDialog;
PopupMenuAdd: TPopupMenu; PopupMenuAdd: TPopupMenu;
PopupMenuOpen: TPopupMenu;
PopupMenuMore: TPopupMenu; PopupMenuMore: TPopupMenu;
PopupMenuTree: TPopupMenu; PopupMenuTree: TPopupMenu;
SBPG: TStatusBar; SBPG: TStatusBar;
@ -109,6 +111,7 @@ type
TBDelete: TToolButton; TBDelete: TToolButton;
TBCompile: TToolButton; TBCompile: TToolButton;
TBCompileClean: TToolButton; TBCompileClean: TToolButton;
TBOpen: TToolButton;
ToolButton1: TToolButton; ToolButton1: TToolButton;
TBTargetUp: TToolButton; TBTargetUp: TToolButton;
TBTargetLater: TToolButton; TBTargetLater: TToolButton;
@ -125,6 +128,7 @@ type
procedure AProjectGroupDeleteExecute(Sender: TObject); procedure AProjectGroupDeleteExecute(Sender: TObject);
procedure AProjectGroupDeleteUpdate(Sender: TObject); procedure AProjectGroupDeleteUpdate(Sender: TObject);
procedure AProjectGroupNewExecute(Sender: TObject); procedure AProjectGroupNewExecute(Sender: TObject);
procedure AProjectGroupOpenExecute(Sender: TObject);
procedure AProjectGroupOptionsExecute(Sender: TObject); procedure AProjectGroupOptionsExecute(Sender: TObject);
procedure AProjectGroupRedoExecute(Sender: TObject); procedure AProjectGroupRedoExecute(Sender: TObject);
procedure AProjectGroupRedoUpdate(Sender: TObject); procedure AProjectGroupRedoUpdate(Sender: TObject);
@ -164,6 +168,7 @@ type
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject); procedure FormDestroy(Sender: TObject);
procedure PopupMenuMorePopup(Sender: TObject); procedure PopupMenuMorePopup(Sender: TObject);
procedure PopupMenuOpenPopup(Sender: TObject);
procedure TVPGAdvancedCustomDrawItem(Sender: TCustomTreeView; procedure TVPGAdvancedCustomDrawItem(Sender: TCustomTreeView;
Node: TTreeNode; {%H-}State: TCustomDrawState; Stage: TCustomDrawStage; Node: TTreeNode; {%H-}State: TCustomDrawState; Stage: TCustomDrawStage;
var {%H-}PaintImages, {%H-}DefaultDraw: Boolean); var {%H-}PaintImages, {%H-}DefaultDraw: Boolean);
@ -256,6 +261,8 @@ type
function SelectedNodeType: TPGCompileTarget; function SelectedNodeType: TPGCompileTarget;
procedure UpdateIDEMenuCommandFromAction(Sender: TObject; Item: TIDEMenuCommand); procedure UpdateIDEMenuCommandFromAction(Sender: TObject; Item: TIDEMenuCommand);
procedure UpdateStatusBarTargetCount; procedure UpdateStatusBarTargetCount;
procedure UpdateRecentProjectGroupMenu;
procedure DoOpenRecentClick(Sender: TObject);
protected protected
procedure Localize; procedure Localize;
procedure ShowProjectGroup; procedure ShowProjectGroup;
@ -418,6 +425,7 @@ procedure TProjectGroupEditorForm.Localize;
end; end;
begin begin
ConfigAction(AProjectGroupOpen,'pg_open_simple',lisProjectGroupOpenCaption,lisProjectGroupOpenHint,Nil);
ConfigAction(AProjectGroupSave,'pg_save_simple',lisProjectGroupSaveCaption,lisProjectGroupSaveHint,Nil); ConfigAction(AProjectGroupSave,'pg_save_simple',lisProjectGroupSaveCaption,lisProjectGroupSaveHint,Nil);
ConfigAction(AProjectGroupSaveAs,'pg_save_as_simple',lisProjectGroupSaveAsCaption,lisProjectGroupSaveAsHint,Nil); ConfigAction(AProjectGroupSaveAs,'pg_save_as_simple',lisProjectGroupSaveAsCaption,lisProjectGroupSaveAsHint,Nil);
ConfigAction(AProjectGroupNew,'pg_new',lisProjectGroupNewCaption,lisProjectGroupNewHint,Nil); ConfigAction(AProjectGroupNew,'pg_new',lisProjectGroupNewCaption,lisProjectGroupNewHint,Nil);
@ -659,6 +667,11 @@ begin
PMIRunMenuItem.Visible:=taRun in AllowedActions; PMIRunMenuItem.Visible:=taRun in AllowedActions;
end; end;
procedure TProjectGroupEditorForm.PopupMenuOpenPopup(Sender: TObject);
begin
UpdateRecentProjectGroupMenu;
end;
procedure TProjectGroupEditorForm.TVPGAdvancedCustomDrawItem( procedure TProjectGroupEditorForm.TVPGAdvancedCustomDrawItem(
Sender: TCustomTreeView; Node: TTreeNode; State: TCustomDrawState; Sender: TCustomTreeView; Node: TTreeNode; State: TCustomDrawState;
Stage: TCustomDrawStage; var PaintImages, DefaultDraw: Boolean); Stage: TCustomDrawStage; var PaintImages, DefaultDraw: Boolean);
@ -766,6 +779,12 @@ begin
TBTargetLater.Click; TBTargetLater.Click;
Key := 0; Key := 0;
end; end;
Ord('O'):
if Shift=[ssCtrl] then
begin
TBOpen.Click;
Key := 0;
end;
Ord('S'): Ord('S'):
begin begin
if Shift=[ssCtrl] then if Shift=[ssCtrl] then
@ -1138,6 +1157,11 @@ begin
IDEProjectGroupManager.DoNewClick(Sender); IDEProjectGroupManager.DoNewClick(Sender);
end; end;
procedure TProjectGroupEditorForm.AProjectGroupOpenExecute(Sender: TObject);
begin
IDEProjectGroupManager.DoOpenClick(Sender);
end;
procedure TProjectGroupEditorForm.AProjectGroupOptionsExecute(Sender: TObject); procedure TProjectGroupEditorForm.AProjectGroupOptionsExecute(Sender: TObject);
begin begin
LazarusIDE.DoOpenIDEOptions(TProjGrpOptionsFrame); LazarusIDE.DoOpenIDEOptions(TProjGrpOptionsFrame);
@ -1582,6 +1606,17 @@ begin
Result:=DisplayFileName(TNodeData(Node.Data)); Result:=DisplayFileName(TNodeData(Node.Data));
end; end;
procedure TProjectGroupEditorForm.DoOpenRecentClick(Sender: TObject);
var
Item: TMenuItem;
aFilename: String;
begin
Item:=Sender as TMenuItem;
aFilename:=Item.Caption;
//debugln(['TProjectGroupEditorForm.DoOpenRecentClick ',aFilename]);
IDEProjectGroupManager.LoadProjectGroup(aFilename,[pgloBringToFront, pgloLoadRecursively]);
end;
function TProjectGroupEditorForm.DisplayFileName(NodeData: TNodeData): string; function TProjectGroupEditorForm.DisplayFileName(NodeData: TNodeData): string;
begin begin
if NodeData=nil then exit(''); if NodeData=nil then exit('');
@ -1709,6 +1744,30 @@ begin
end; end;
end; end;
procedure TProjectGroupEditorForm.UpdateRecentProjectGroupMenu;
var
i: Integer;
Item: TMenuItem;
aFilename: String;
begin
i:=0;
while i<IDEProjectGroupManager.Options.RecentProjectGroups.Count do begin
aFilename:=IDEProjectGroupManager.Options.RecentProjectGroups[i];
if i<PopupMenuOpen.Items.Count then begin
Item:=PopupMenuOpen.Items[i];
end
else begin
Item:=TMenuItem.Create(Self);
PopupMenuOpen.Items.Add(Item);
Item.OnClick:=@DoOpenRecentClick;
end;
Item.Caption:=aFilename;
inc(i);
end;
while i<PopupMenuOpen.Items.Count do
PopupMenuOpen.Items[i].Free;
end;
procedure TProjectGroupEditorForm.FillProjectGroupNode(TVNode: TTreeNode; procedure TProjectGroupEditorForm.FillProjectGroupNode(TVNode: TTreeNode;
AProjectGroup: TProjectGroup); AProjectGroup: TProjectGroup);
Const Const

View File

@ -61,6 +61,8 @@ Resourcestring
lisTargetCount = '%d targets'; lisTargetCount = '%d targets';
lisActiveTarget = 'Target: %s'; lisActiveTarget = 'Target: %s';
lisProjectGroupOpenCaption = 'Open';
lisProjectGroupOpenHint = 'Open project group';
lisProjectGroupSaveCaption = 'Save'; lisProjectGroupSaveCaption = 'Save';
lisProjectGroupSaveHint = 'Save project group'; lisProjectGroupSaveHint = 'Save project group';
lisProjectGroupSaveAsCaption = 'Save As ...'; lisProjectGroupSaveAsCaption = 'Save As ...';