diff --git a/components/projectgroups/languages/projectgroupstrconst.de.po b/components/projectgroups/languages/projectgroupstrconst.de.po index c9b750a66d..dcb0c6ca6e 100644 --- a/components/projectgroups/languages/projectgroupstrconst.de.po +++ b/components/projectgroups/languages/projectgroupstrconst.de.po @@ -25,6 +25,16 @@ msgstr "Laden der Projektgruppe abbrechen" msgid "Target: %s" msgstr "Ziel: %s" +#: projectgroupstrconst.lisaddallfromdirectorycaption +msgctxt "projectgroupstrconst.lisaddallfromdirectorycaption" +msgid "Add all from directory recursively" +msgstr "" + +#: projectgroupstrconst.lisaddallfromdirectoryhint +msgctxt "projectgroupstrconst.lisaddallfromdirectoryhint" +msgid "Add all existing targets from directory and its subdirectories to project group" +msgstr "" + #: projectgroupstrconst.lisallfiles msgid "All files" msgstr "Alle Dateien" diff --git a/components/projectgroups/languages/projectgroupstrconst.fr.po b/components/projectgroups/languages/projectgroupstrconst.fr.po index 0e89ac2500..9dfd9b875b 100644 --- a/components/projectgroups/languages/projectgroupstrconst.fr.po +++ b/components/projectgroups/languages/projectgroupstrconst.fr.po @@ -24,6 +24,16 @@ msgstr "Arrêter le chargement du groupe de projets" msgid "Target: %s" msgstr "Cible : %s" +#: projectgroupstrconst.lisaddallfromdirectorycaption +msgctxt "projectgroupstrconst.lisaddallfromdirectorycaption" +msgid "Add all from directory recursively" +msgstr "" + +#: projectgroupstrconst.lisaddallfromdirectoryhint +msgctxt "projectgroupstrconst.lisaddallfromdirectoryhint" +msgid "Add all existing targets from directory and its subdirectories to project group" +msgstr "" + #: projectgroupstrconst.lisallfiles msgid "All files" msgstr "Tous les fichiers" diff --git a/components/projectgroups/languages/projectgroupstrconst.hu.po b/components/projectgroups/languages/projectgroupstrconst.hu.po index 8f45eb5dbf..ae57dc6c16 100644 --- a/components/projectgroups/languages/projectgroupstrconst.hu.po +++ b/components/projectgroups/languages/projectgroupstrconst.hu.po @@ -24,6 +24,16 @@ msgstr "A projektcsoport betöltésének megszakítása" msgid "Target: %s" msgstr "Cél: %s" +#: projectgroupstrconst.lisaddallfromdirectorycaption +msgctxt "projectgroupstrconst.lisaddallfromdirectorycaption" +msgid "Add all from directory recursively" +msgstr "" + +#: projectgroupstrconst.lisaddallfromdirectoryhint +msgctxt "projectgroupstrconst.lisaddallfromdirectoryhint" +msgid "Add all existing targets from directory and its subdirectories to project group" +msgstr "" + #: projectgroupstrconst.lisallfiles msgid "All files" msgstr "Minden fájl" diff --git a/components/projectgroups/languages/projectgroupstrconst.it.po b/components/projectgroups/languages/projectgroupstrconst.it.po index 128e324150..3fd0b0a619 100644 --- a/components/projectgroups/languages/projectgroupstrconst.it.po +++ b/components/projectgroups/languages/projectgroupstrconst.it.po @@ -14,6 +14,16 @@ msgstr "Interrompi il caricamento del gruppo di progetti" msgid "Target: %s" msgstr "Destinazione: %s" +#: projectgroupstrconst.lisaddallfromdirectorycaption +msgctxt "projectgroupstrconst.lisaddallfromdirectorycaption" +msgid "Add all from directory recursively" +msgstr "" + +#: projectgroupstrconst.lisaddallfromdirectoryhint +msgctxt "projectgroupstrconst.lisaddallfromdirectoryhint" +msgid "Add all existing targets from directory and its subdirectories to project group" +msgstr "" + #: projectgroupstrconst.lisallfiles msgid "All files" msgstr "Tutti i file" diff --git a/components/projectgroups/languages/projectgroupstrconst.lt.po b/components/projectgroups/languages/projectgroupstrconst.lt.po index 4cffe6d0d2..dc7d9b0d4d 100644 --- a/components/projectgroups/languages/projectgroupstrconst.lt.po +++ b/components/projectgroups/languages/projectgroupstrconst.lt.po @@ -25,6 +25,16 @@ msgstr "Nutraukti projekto grupės įkrovą" msgid "Target: %s" msgstr "Tikslas: %s" +#: projectgroupstrconst.lisaddallfromdirectorycaption +msgctxt "projectgroupstrconst.lisaddallfromdirectorycaption" +msgid "Add all from directory recursively" +msgstr "" + +#: projectgroupstrconst.lisaddallfromdirectoryhint +msgctxt "projectgroupstrconst.lisaddallfromdirectoryhint" +msgid "Add all existing targets from directory and its subdirectories to project group" +msgstr "" + #: projectgroupstrconst.lisallfiles msgid "All files" msgstr "Visi failai" diff --git a/components/projectgroups/languages/projectgroupstrconst.pot b/components/projectgroups/languages/projectgroupstrconst.pot index 0cceee9261..ab0c8ec0d3 100644 --- a/components/projectgroups/languages/projectgroupstrconst.pot +++ b/components/projectgroups/languages/projectgroupstrconst.pot @@ -14,6 +14,16 @@ msgstr "" msgid "Target: %s" msgstr "" +#: projectgroupstrconst.lisaddallfromdirectorycaption +msgctxt "projectgroupstrconst.lisaddallfromdirectorycaption" +msgid "Add all from directory recursively" +msgstr "" + +#: projectgroupstrconst.lisaddallfromdirectoryhint +msgctxt "projectgroupstrconst.lisaddallfromdirectoryhint" +msgid "Add all existing targets from directory and its subdirectories to project group" +msgstr "" + #: projectgroupstrconst.lisallfiles msgid "All files" msgstr "" diff --git a/components/projectgroups/languages/projectgroupstrconst.pt_BR.po b/components/projectgroups/languages/projectgroupstrconst.pt_BR.po index 48308dc749..12e32dc399 100644 --- a/components/projectgroups/languages/projectgroupstrconst.pt_BR.po +++ b/components/projectgroups/languages/projectgroupstrconst.pt_BR.po @@ -24,6 +24,16 @@ msgstr "Abortar carga grupo de projeto" msgid "Target: %s" msgstr "Alvo: %s" +#: projectgroupstrconst.lisaddallfromdirectorycaption +msgctxt "projectgroupstrconst.lisaddallfromdirectorycaption" +msgid "Add all from directory recursively" +msgstr "" + +#: projectgroupstrconst.lisaddallfromdirectoryhint +msgctxt "projectgroupstrconst.lisaddallfromdirectoryhint" +msgid "Add all existing targets from directory and its subdirectories to project group" +msgstr "" + #: projectgroupstrconst.lisallfiles msgid "All files" msgstr "Todos os arquivos" diff --git a/components/projectgroups/languages/projectgroupstrconst.ru.po b/components/projectgroups/languages/projectgroupstrconst.ru.po index cf0fa2db3c..0288dcde7b 100644 --- a/components/projectgroups/languages/projectgroupstrconst.ru.po +++ b/components/projectgroups/languages/projectgroupstrconst.ru.po @@ -9,7 +9,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" "Language: ru\n" -"X-Generator: Poedit 2.2.1\n" +"X-Generator: Poedit 2.4.3\n" #: projectgroupstrconst.lisabort msgid "Abort" @@ -24,6 +24,16 @@ msgstr "Прервать загрузку группы проектов" msgid "Target: %s" msgstr "Цель: %s" +#: projectgroupstrconst.lisaddallfromdirectorycaption +msgctxt "projectgroupstrconst.lisaddallfromdirectorycaption" +msgid "Add all from directory recursively" +msgstr "Добавить все из каталога рекурсивно" + +#: projectgroupstrconst.lisaddallfromdirectoryhint +msgctxt "projectgroupstrconst.lisaddallfromdirectoryhint" +msgid "Add all existing targets from directory and its subdirectories to project group" +msgstr "Добавить все существующие цели из каталога и его подкаталогов в группу проектов" + #: projectgroupstrconst.lisallfiles msgid "All files" msgstr "Все файлы" diff --git a/components/projectgroups/languages/projectgroupstrconst.tr.po b/components/projectgroups/languages/projectgroupstrconst.tr.po index 97bce191cf..3d573727bd 100644 --- a/components/projectgroups/languages/projectgroupstrconst.tr.po +++ b/components/projectgroups/languages/projectgroupstrconst.tr.po @@ -24,6 +24,16 @@ msgstr "Yükleme projesini iptal et" msgid "Target: %s" msgstr "Hedef: %s" +#: projectgroupstrconst.lisaddallfromdirectorycaption +msgctxt "projectgroupstrconst.lisaddallfromdirectorycaption" +msgid "Add all from directory recursively" +msgstr "" + +#: projectgroupstrconst.lisaddallfromdirectoryhint +msgctxt "projectgroupstrconst.lisaddallfromdirectoryhint" +msgid "Add all existing targets from directory and its subdirectories to project group" +msgstr "" + #: projectgroupstrconst.lisallfiles msgid "All files" msgstr "Tüm dosyalar" diff --git a/components/projectgroups/languages/projectgroupstrconst.uk.po b/components/projectgroups/languages/projectgroupstrconst.uk.po index db00535122..2bcec67190 100644 --- a/components/projectgroups/languages/projectgroupstrconst.uk.po +++ b/components/projectgroups/languages/projectgroupstrconst.uk.po @@ -25,6 +25,16 @@ msgstr "Перервати завантаження групи проєктів" msgid "Target: %s" msgstr "Ціль: %s" +#: projectgroupstrconst.lisaddallfromdirectorycaption +msgctxt "projectgroupstrconst.lisaddallfromdirectorycaption" +msgid "Add all from directory recursively" +msgstr "" + +#: projectgroupstrconst.lisaddallfromdirectoryhint +msgctxt "projectgroupstrconst.lisaddallfromdirectoryhint" +msgid "Add all existing targets from directory and its subdirectories to project group" +msgstr "" + #: projectgroupstrconst.lisallfiles msgid "All files" msgstr "Всі файли" diff --git a/components/projectgroups/languages/projectgroupstrconst.zh_CN.po b/components/projectgroups/languages/projectgroupstrconst.zh_CN.po index fd02320fc7..b0caba0d91 100644 --- a/components/projectgroups/languages/projectgroupstrconst.zh_CN.po +++ b/components/projectgroups/languages/projectgroupstrconst.zh_CN.po @@ -25,6 +25,16 @@ msgstr "取消(Abort)加载工程组" msgid "Target: %s" msgstr "目标:%s" +#: projectgroupstrconst.lisaddallfromdirectorycaption +msgctxt "projectgroupstrconst.lisaddallfromdirectorycaption" +msgid "Add all from directory recursively" +msgstr "" + +#: projectgroupstrconst.lisaddallfromdirectoryhint +msgctxt "projectgroupstrconst.lisaddallfromdirectoryhint" +msgid "Add all existing targets from directory and its subdirectories to project group" +msgstr "" + #: projectgroupstrconst.lisallfiles msgid "All files" msgstr "所有文件" diff --git a/components/projectgroups/projectgroupeditor.lfm b/components/projectgroups/projectgroupeditor.lfm index 35915a7104..c028483e0c 100644 --- a/components/projectgroups/projectgroupeditor.lfm +++ b/components/projectgroups/projectgroupeditor.lfm @@ -1,25 +1,25 @@ object ProjectGroupEditorForm: TProjectGroupEditorForm Left = 190 - Height = 358 + Height = 448 Top = 198 - Width = 646 + Width = 808 BorderIcons = [biSystemMenu] Caption = 'ProjectGroupEditorForm' - ClientHeight = 358 - ClientWidth = 646 + ClientHeight = 448 + ClientWidth = 808 + DesignTimePPI = 120 OnCloseQuery = FormCloseQuery OnCreate = FormCreate OnDestroy = FormDestroy - OnShow = FormShow - LCLVersion = '2.1.0.0' + LCLVersion = '2.3.0.0' object TBProjectGroup: TToolBar Left = 0 - Height = 48 + Height = 60 Top = 0 - Width = 646 + Width = 808 AutoSize = True - ButtonHeight = 46 - ButtonWidth = 23 + ButtonHeight = 58 + ButtonWidth = 29 ShowCaptions = True TabOrder = 0 object TBSave: TToolButton @@ -28,7 +28,7 @@ object ProjectGroupEditorForm: TProjectGroupEditorForm Action = AProjectGroupSave end object TBAdd: TToolButton - Left = 102 + Left = 127 Top = 2 Caption = 'Add' DropdownMenu = PopupMenuAdd @@ -36,72 +36,73 @@ object ProjectGroupEditorForm: TProjectGroupEditorForm Style = tbsButtonDrop end object TBNewTarget: TToolButton - Left = 33 + Left = 41 Top = 2 Action = AProjectGroupAddNew Visible = False end object TBDelete: TToolButton - Left = 142 + Left = 177 Top = 2 Action = AProjectGroupDelete end object TBCompile: TToolButton - Left = 193 + Left = 240 Top = 2 Action = ATargetCompile end object TBCompileClean: TToolButton - Left = 246 + Left = 305 Top = 2 Action = ATargetCompileClean end object ToolButton1: TToolButton - Left = 332 - Height = 46 + Left = 411 + Height = 8 Top = 2 Caption = 'ToolButton1' Style = tbsSeparator end object TBTargetUp: TToolButton - Left = 391 + Left = 484 Top = 2 Action = ATargetEarlier end object TBTargetLater: TToolButton - Left = 431 + Left = 535 Top = 2 Action = ATargetLater end object TBMore: TToolButton - Left = 509 + Left = 633 Top = 2 Caption = 'More...' DropdownMenu = PopupMenuMore Style = tbsButtonDrop end object TBActivate: TToolButton - Left = 340 + Left = 421 Top = 2 Action = ATargetActivate Visible = False end object TBReload: TToolButton - Left = 465 + Left = 577 Top = 2 Action = AProjectGroupReload end end object TVPG: TTreeView Left = 0 - Height = 287 - Top = 48 - Width = 646 + Height = 359 + Top = 60 + Width = 808 Align = alClient HideSelection = False PopupMenu = PopupMenuTree ReadOnly = True RightClickSelect = True + ShowSeparators = False TabOrder = 1 OnAdvancedCustomDrawItem = TVPGAdvancedCustomDrawItem OnDblClick = TVPGDblClick @@ -112,24 +113,24 @@ object ProjectGroupEditorForm: TProjectGroupEditorForm end object SBPG: TStatusBar Left = 0 - Height = 23 - Top = 335 - Width = 646 + Height = 29 + Top = 419 + Width = 808 Panels = < item Text = '0 targets' - Width = 85 + Width = 106 end item Text = 'Current target: ' - Width = 50 + Width = 62 end> SimplePanel = False end object PopupMenuMore: TPopupMenu OnPopup = PopupMenuMorePopup - Left = 208 - Top = 96 + Left = 260 + Top = 120 object PMINew: TMenuItem Action = AProjectGroupNew end @@ -186,8 +187,8 @@ object ProjectGroupEditorForm: TProjectGroupEditorForm end end object ActionListMain: TActionList - Left = 48 - Top = 152 + Left = 60 + Top = 190 object AProjectGroupSave: TAction Category = 'ProjectGroupActions' Caption = 'Save' @@ -292,7 +293,6 @@ object ProjectGroupEditorForm: TProjectGroupEditorForm Category = 'TargetAction' Caption = 'Info' OnExecute = ATargetInfoExecute - OnUpdate = ATargetInfoUpdate end object AProjectGroupAddCurrent: TAction Category = 'ProjectGroupActions' @@ -301,6 +301,13 @@ object ProjectGroupEditorForm: TProjectGroupEditorForm OnExecute = AProjectGroupAddCurrentExecute OnUpdate = AProjectGroupAddCurrentUpdate end + object AProjectGroupAddAll: TAction + Category = 'ProjectGroupActions' + Caption = 'Add all from directory recursively' + ImageIndex = 8 + OnExecute = AProjectGroupAddAllExecute + OnUpdate = AProjectGroupAddAllUpdate + end object AProjectGroupDelete: TAction Category = 'ProjectGroupActions' Caption = 'Remove' @@ -344,8 +351,8 @@ object ProjectGroupEditorForm: TProjectGroupEditorForm end end object PopupMenuTree: TPopupMenu - Left = 208 - Top = 152 + Left = 260 + Top = 190 object PMICopyFilenameMenuItem: TMenuItem Action = ATargetCopyFilename end @@ -631,17 +638,25 @@ object ProjectGroupEditorForm: TProjectGroupEditorForm end object OpenDialogTarget: TOpenDialog Options = [ofAllowMultiSelect, ofFileMustExist, ofEnableSizing, ofViewDetail] - Left = 48 - Top = 96 + Left = 60 + Top = 120 end object PopupMenuAdd: TPopupMenu - Left = 120 - Top = 53 + Left = 150 + Top = 66 object PMIAddExisting: TMenuItem Action = AProjectGroupAddExisting end + object PMIAddAll: TMenuItem + Action = AProjectGroupAddAll + end object PMIAddCurrent: TMenuItem Action = AProjectGroupAddCurrent end end + object SelectDirectoryDialog: TSelectDirectoryDialog + Options = [ofAllowMultiSelect, ofFileMustExist, ofEnableSizing, ofViewDetail] + Left = 150 + Top = 250 + end end diff --git a/components/projectgroups/projectgroupeditor.pas b/components/projectgroups/projectgroupeditor.pas index 6159493b66..6b84e4f086 100644 --- a/components/projectgroups/projectgroupeditor.pas +++ b/components/projectgroups/projectgroupeditor.pas @@ -19,7 +19,7 @@ uses Forms, Controls, Graphics, Dialogs, ComCtrls, Menus, ActnList, Clipbrd, ImgList, LCLType, // LazUtils - LazFileUtils, LazLoggerBase, LazFileCache, + FileUtil, LazFileUtils, LazLoggerBase, LazFileCache, // BuildIntf PackageIntf, ProjectIntf, // IdeIntf @@ -51,6 +51,7 @@ type { TProjectGroupEditorForm } TProjectGroupEditorForm = class(TForm) + AProjectGroupAddAll: TAction; AProjectGroupNew: TAction; AProjectGroupAddCurrent: TAction; ATargetInfo: TAction; @@ -76,6 +77,7 @@ type AProjectGroupDelete: TAction; AProjectGroupSave: TAction; ActionListMain: TActionList; + PMIAddAll: TMenuItem; PMINew: TMenuItem; PMIAddExisting: TMenuItem; PMIAddCurrent: TMenuItem; @@ -99,6 +101,7 @@ type PopupMenuMore: TPopupMenu; PopupMenuTree: TPopupMenu; SBPG: TStatusBar; + SelectDirectoryDialog: TSelectDirectoryDialog; TBProjectGroup: TToolBar; TBSave: TToolButton; TBAdd: TToolButton; @@ -113,6 +116,8 @@ type TBActivate: TToolButton; TBReload: TToolButton; TVPG: TTreeView; + procedure AProjectGroupAddAllExecute(Sender: TObject); + procedure AProjectGroupAddAllUpdate(Sender: TObject); procedure AProjectGroupAddCurrentExecute(Sender: TObject); procedure AProjectGroupAddCurrentUpdate(Sender: TObject); procedure AProjectGroupAddExistingExecute(Sender: TObject); @@ -143,7 +148,6 @@ type procedure ATargetEarlierExecute(Sender: TObject); procedure ATargetEarlierUpdate(Sender: TObject); procedure ATargetInfoExecute(Sender: TObject); - procedure ATargetInfoUpdate(Sender: TObject); procedure ATargetInstallExecute(Sender: TObject); procedure ATargetInstallUpdate(Sender: TObject); procedure ATargetLaterExecute(Sender: TObject); @@ -159,7 +163,6 @@ type procedure FormCloseQuery(Sender: TObject; var CanClose: boolean); procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); - procedure FormShow(Sender: TObject); procedure PopupMenuMorePopup(Sender: TObject); procedure TVPGAdvancedCustomDrawItem(Sender: TCustomTreeView; Node: TTreeNode; {%H-}State: TCustomDrawState; Stage: TCustomDrawStage; @@ -418,6 +421,7 @@ begin ConfigAction(AProjectGroupSave,'pg_save_simple',lisProjectGroupSaveCaption,lisProjectGroupSaveHint,Nil); ConfigAction(AProjectGroupSaveAs,'pg_save_as_simple',lisProjectGroupSaveAsCaption,lisProjectGroupSaveAsHint,Nil); ConfigAction(AProjectGroupNew,'pg_new',lisProjectGroupNewCaption,lisProjectGroupNewHint,Nil); + ConfigAction(AProjectGroupAddAll,'',lisAddAllFromDirectoryCaption,lisAddAllFromDirectoryHint,Nil); ConfigAction(AProjectGroupAddExisting,'pg_add_project_from_file',lisProjectGroupAddExistingCaption,lisProjectGroupAddExistingHint,Nil); ConfigAction(AProjectGroupAddCurrent,'pg_add_project',lisProjectGroupAddCurrentProjectCaption,lisProjectGroupAddCurrentProjectHint,Nil); ConfigAction(AProjectGroupDelete,'laz_delete',lisProjectGroupDeleteCaption,lisProjectGroupDeleteHint,Nil); @@ -510,11 +514,6 @@ begin ShowPrgGrpInfo(SelectedTarget as TIDECompileTarget); end; -procedure TProjectGroupEditorForm.ATargetInfoUpdate(Sender: TObject); -begin - -end; - procedure TProjectGroupEditorForm.ATargetLaterExecute(Sender: TObject); Var T: TNodeData; @@ -642,11 +641,6 @@ begin //debugln(['TProjectGroupEditorForm.FormDestroy END ',ProjectGroup<>nil]); end; -procedure TProjectGroupEditorForm.FormShow(Sender: TObject); -begin - -end; - procedure TProjectGroupEditorForm.PopupMenuMorePopup(Sender: TObject); var ND: TNodeData; @@ -1032,6 +1026,28 @@ begin AddTarget(LazarusIDE.ActiveProject.ProjectInfoFile); end; +procedure TProjectGroupEditorForm.AProjectGroupAddAllExecute(Sender: TObject); +var + i: PtrInt; + Files: TStringList; +begin + if FProjectGroup=nil then exit; + InitIDEFileDialog(SelectDirectoryDialog); + If SelectDirectoryDialog.Execute then + begin + Files := FindAllFiles(SelectDirectoryDialog.FileName, '*.lpi;*.lpk;*.lpg'); + for i := 0 to Files.Count - 1 do + AddTarget(Files[i]); + FreeAndNil(Files); + end; + StoreIDEFileDialog(SelectDirectoryDialog); +end; + +procedure TProjectGroupEditorForm.AProjectGroupAddAllUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled:=FProjectGroup<>nil; +end; + procedure TProjectGroupEditorForm.AProjectGroupAddCurrentUpdate(Sender: TObject); begin (Sender as TAction).Enabled := (FProjectGroup<>nil) and (LazarusIDE.ActiveProject<>nil) @@ -1834,4 +1850,3 @@ end; end. - diff --git a/components/projectgroups/projectgroupstrconst.pas b/components/projectgroups/projectgroupstrconst.pas index f71e73e700..92a6e1a780 100644 --- a/components/projectgroups/projectgroupstrconst.pas +++ b/components/projectgroups/projectgroupstrconst.pas @@ -67,6 +67,9 @@ Resourcestring lisProjectGroupSaveAsHint = 'Save project group with a new name'; lisProjectGroupNewCaption = 'New'; lisProjectGroupNewHint = 'New project group'; + lisAddAllFromDirectoryCaption = 'Add all from directory recursively'; + lisAddAllFromDirectoryHint = 'Add all existing ' + +'targets from directory and its subdirectories to project group'; lisProjectGroupAddCaption = 'Add'; lisProjectGroupAddHint = 'Add targets to project group'; lisProjectGroupAddExistingCaption = 'Add from file';