IDE: package editor: multi change file type

git-svn-id: trunk@45445 -
This commit is contained in:
mattias 2014-06-10 11:15:53 +00:00
parent 4c3b656f3d
commit f627db7683

View File

@ -1456,24 +1456,36 @@ end;
procedure TPackageEditorForm.ChangeFileTypeMenuItemClick(Sender: TObject); procedure TPackageEditorForm.ChangeFileTypeMenuItemClick(Sender: TObject);
var var
CurPFT: TPkgFileType; CurPFT: TPkgFileType;
Removed: boolean;
CurFile: TPkgFile; CurFile: TPkgFile;
CurItem: TIDEMenuCommand; CurItem: TIDEMenuCommand;
i: Integer;
TVNode: TTreeNode;
NodeData: TPENodeData;
Item: TObject;
begin begin
if LazPackage=nil then exit; if LazPackage=nil then exit;
CurItem:=TIDEMenuCommand(Sender); CurItem:=TIDEMenuCommand(Sender);
CurFile:=GetCurrentFile(Removed);
if CurFile=nil then exit;
for CurPFT:=Low(TPkgFileType) to High(TPkgFileType) do begin for CurPFT:=Low(TPkgFileType) to High(TPkgFileType) do begin
if CurItem.Caption=GetPkgFileTypeLocalizedName(CurPFT) then begin if CurItem.Caption=GetPkgFileTypeLocalizedName(CurPFT) then begin
BeginUdate;
try
for i:=0 to ItemsTreeView.SelectionCount-1 do begin
TVNode:=ItemsTreeView.Selections[i];
if not GetNodeDataItem(TVNode,NodeData,Item) then continue;
if not (Item is TPkgFile) then continue;
CurFile:=TPkgFile(Item);
if CurFile.FileType=CurPFT then continue;
if (not FilenameIsPascalUnit(CurFile.Filename)) if (not FilenameIsPascalUnit(CurFile.Filename))
and (CurPFT in PkgFileUnitTypes) then exit; and (CurPFT in PkgFileUnitTypes) then
if CurFile.FileType<>CurPFT then begin continue;
CurFile.FileType:=CurPFT; CurFile.FileType:=CurPFT;
if not NodeData.Removed then
LazPackage.Modified:=true; LazPackage.Modified:=true;
UpdateFiles; UpdateFiles;
end; end;
exit; finally
EndUpdate;
end;
end; end;
end; end;
end; end;