mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-11 23:16:04 +02:00
added included by to unitinfo and a few win32 functions
git-svn-id: trunk@1952 -
This commit is contained in:
parent
b8491b804f
commit
632b401809
@ -44,22 +44,29 @@ type
|
|||||||
outsize: TLabel;
|
outsize: TLabel;
|
||||||
outlines: TLabel;
|
outlines: TLabel;
|
||||||
outpath: TLabel;
|
outpath: TLabel;
|
||||||
|
uIncludedBy: TLabel;
|
||||||
|
outIncludedBy: TLabel;
|
||||||
|
clearIncludedBy: TBitBtn;
|
||||||
procedure UnitInfoDlgResize(Sender: TObject);
|
procedure UnitInfoDlgResize(Sender: TObject);
|
||||||
procedure OkButtonClick(Sender:TObject);
|
procedure OkButtonClick(Sender:TObject);
|
||||||
|
procedure clearIncludedByClick(Sender: TObject);
|
||||||
private
|
private
|
||||||
|
function getIncludedBy: string;
|
||||||
procedure setShortName(const str:string);
|
procedure setShortName(const str:string);
|
||||||
procedure setType(const str:string);
|
procedure setType(const str:string);
|
||||||
procedure setInProject(const str:string);
|
procedure setInProject(const str:string);
|
||||||
procedure setSize(const str:string);
|
procedure setSize(const str:string);
|
||||||
procedure setLines(const str:string);
|
procedure setLines(const str:string);
|
||||||
procedure setPath(const str:string);
|
procedure setPath(const str:string);
|
||||||
|
procedure setIncludedBy(const IncludedBy: string);
|
||||||
public
|
public
|
||||||
constructor Create(AOwner:TComponent); override;
|
constructor Create(AOwner:TComponent); override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function ShowUnitInfoDlg(const AnUnitName, AType: string;
|
function ShowUnitInfoDlg(const AnUnitName, AType: string;
|
||||||
IsPartOfProject: boolean; SizeInBytes, LineCount: integer;
|
IsPartOfProject: boolean; SizeInBytes, LineCount: integer;
|
||||||
const FilePath: string): TModalResult;
|
const FilePath: string;
|
||||||
|
const IncludedBy: string; var ClearIncludedBy: boolean): TModalResult;
|
||||||
|
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
@ -68,27 +75,28 @@ uses LResources;
|
|||||||
|
|
||||||
function ShowUnitInfoDlg(const AnUnitName, AType: string;
|
function ShowUnitInfoDlg(const AnUnitName, AType: string;
|
||||||
IsPartOfProject: boolean; SizeInBytes, LineCount: integer;
|
IsPartOfProject: boolean; SizeInBytes, LineCount: integer;
|
||||||
const FilePath: string): TModalResult;
|
const FilePath: string;
|
||||||
|
const IncludedBy: string; var ClearIncludedBy: boolean): TModalResult;
|
||||||
var Dlg: TUnitInfoDlg;
|
var Dlg: TUnitInfoDlg;
|
||||||
begin
|
begin
|
||||||
Dlg:=TUnitInfoDlg.Create(Application);
|
Dlg:=TUnitInfoDlg.Create(Application);
|
||||||
try
|
with Dlg do begin
|
||||||
with Dlg do begin
|
Caption:='Information about '+AnUnitName;
|
||||||
Caption:='Information about '+AnUnitName;
|
setShortName(AnUnitName);
|
||||||
setShortName(AnUnitName);
|
setType(AType);
|
||||||
setType(AType);
|
if IsPartOfProject then
|
||||||
if IsPartOfProject then
|
setInProject('yes')
|
||||||
setInProject('yes')
|
else
|
||||||
else
|
setInProject('no');
|
||||||
setInProject('no');
|
setSize(IntToStr(SizeInBytes)+' bytes');
|
||||||
setSize(IntToStr(SizeInBytes)+' bytes');
|
setLines(IntToStr(LineCount));
|
||||||
setLines(IntToStr(LineCount));
|
setPath(FilePath);
|
||||||
setPath(FilePath);
|
setIncludedBy(IncludedBy);
|
||||||
end;
|
|
||||||
Result:=Dlg.ShowModal;
|
|
||||||
finally
|
|
||||||
Dlg.Free;
|
|
||||||
end;
|
end;
|
||||||
|
Result:=Dlg.ShowModal;
|
||||||
|
ClearIncludedBy:=(Result=mrOk)
|
||||||
|
and (IncludedBy<>'') and (Dlg.getIncludedBy='');
|
||||||
|
Dlg.Free;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TUnitInfoDlg }
|
{ TUnitInfoDlg }
|
||||||
@ -99,151 +107,170 @@ begin
|
|||||||
if LazarusResources.Find(ClassName)=nil then begin
|
if LazarusResources.Find(ClassName)=nil then begin
|
||||||
|
|
||||||
Caption:='Unit Info for unit ???';
|
Caption:='Unit Info for unit ???';
|
||||||
Width:=400;
|
Width:=500;
|
||||||
Height:=164;
|
Height:=200;
|
||||||
position:=poScreenCenter;
|
position:=poScreenCenter;
|
||||||
OnResize:=@UnitInfoDlgResize;
|
OnResize:=@UnitInfoDlgResize;
|
||||||
|
|
||||||
|
UName:=TLabel.create(self);
|
||||||
|
with uname do begin
|
||||||
|
Name:='Name';
|
||||||
|
Parent:=self;
|
||||||
|
Left:=4;
|
||||||
|
top:=4;
|
||||||
|
caption:='Name:';
|
||||||
|
end;
|
||||||
|
|
||||||
|
utype:=TLabel.create(self);
|
||||||
|
with utype do begin
|
||||||
|
Name:='Type';
|
||||||
|
Parent:=self;
|
||||||
|
Left:=UName.Left;
|
||||||
|
top:=24;
|
||||||
|
caption:='Type:';
|
||||||
|
end;
|
||||||
|
|
||||||
|
uinproject:=TLabel.create(self);
|
||||||
|
with uinproject do begin
|
||||||
|
Name:='InProject';
|
||||||
|
Parent:=self;
|
||||||
|
Left:=UName.Left;
|
||||||
|
top:=44;
|
||||||
|
caption:='in Project:';
|
||||||
|
end;
|
||||||
|
|
||||||
|
usize:=TLabel.create(self);
|
||||||
|
with usize do begin
|
||||||
|
Name:='Size';
|
||||||
|
Parent:=self;
|
||||||
|
Left:=UName.Left;
|
||||||
|
top:=64;
|
||||||
|
caption:='Size:';
|
||||||
|
end;
|
||||||
|
|
||||||
|
ulines:=TLabel.create(self);
|
||||||
|
with ulines do begin
|
||||||
|
Name:='Lines';
|
||||||
|
Parent:=self;
|
||||||
|
Left:=UName.Left;
|
||||||
|
top:=84;
|
||||||
|
caption:='Lines:';
|
||||||
|
end;
|
||||||
|
|
||||||
|
upath:=TLabel.create(self);
|
||||||
|
with upath do begin
|
||||||
|
Name:='Path';
|
||||||
|
Parent:=self;
|
||||||
|
Left:=UName.Left;
|
||||||
|
top:=104;
|
||||||
|
caption:='Path:';
|
||||||
|
end;
|
||||||
|
|
||||||
|
uIncludedBy:=TLabel.create(self);
|
||||||
|
with uIncludedBy do begin
|
||||||
|
Name:='Included by';
|
||||||
|
Parent:=self;
|
||||||
|
Left:=UName.Left;
|
||||||
|
top:=124;
|
||||||
|
caption:='Included by:';
|
||||||
|
end;
|
||||||
|
|
||||||
|
outname:=TLabel.create(self);
|
||||||
|
with outname do begin
|
||||||
|
Name:='OutName';
|
||||||
|
Parent:=self;
|
||||||
|
Left:=80;
|
||||||
|
top:=4;
|
||||||
|
Width:=Self.ClientWidth-Left-5;
|
||||||
|
caption:='temp';
|
||||||
|
end;
|
||||||
|
|
||||||
|
outtype:=TLabel.create(self);
|
||||||
|
with outtype do begin
|
||||||
|
Name:='OutType';
|
||||||
|
Parent:=self;
|
||||||
|
Left:=outname.Left;
|
||||||
|
top:=24;
|
||||||
|
Width:=Self.ClientWidth-Left-5;
|
||||||
|
caption:='temp';
|
||||||
|
end;
|
||||||
|
|
||||||
|
outinproject:=TLabel.create(self);
|
||||||
|
with outinproject do begin
|
||||||
|
Name:='OutInProject';
|
||||||
|
Parent:=self;
|
||||||
|
Left:=outname.Left;
|
||||||
|
top:=44;
|
||||||
|
Width:=Self.ClientWidth-Left-5;
|
||||||
|
caption:='temp';
|
||||||
|
end;
|
||||||
|
|
||||||
|
outsize:=TLabel.create(self);
|
||||||
|
with outsize do begin
|
||||||
|
Name:='OutSize';
|
||||||
|
Parent:=self;
|
||||||
|
Left:=outname.Left;
|
||||||
|
top:=64;
|
||||||
|
Width:=Self.ClientWidth-Left-5;
|
||||||
|
caption:='temp';
|
||||||
|
end;
|
||||||
|
|
||||||
|
outlines:=TLabel.create(self);
|
||||||
|
with outlines do begin
|
||||||
|
Name:='OutLines';
|
||||||
|
Parent:=self;
|
||||||
|
Left:=outname.Left;
|
||||||
|
top:=84;
|
||||||
|
Width:=Self.ClientWidth-Left-5;
|
||||||
|
caption:='temp';
|
||||||
|
end;
|
||||||
|
|
||||||
|
outpath:=TLabel.create(self);
|
||||||
|
with outpath do begin
|
||||||
|
Name:='OutPath';
|
||||||
|
Parent:=self;
|
||||||
|
Left:=outname.Left;
|
||||||
|
top:=104;
|
||||||
|
caption:='temp';
|
||||||
|
Width:=Self.ClientWidth-Left-5;
|
||||||
|
autosize:=true;
|
||||||
|
end;
|
||||||
|
|
||||||
|
outIncludedBy:=TLabel.create(self);
|
||||||
|
with outIncludedBy do begin
|
||||||
|
Name:='outIncludedBy';
|
||||||
|
Parent:=self;
|
||||||
|
Left:=outname.Left;
|
||||||
|
top:=124;
|
||||||
|
caption:='temp';
|
||||||
|
Width:=Self.ClientWidth-Left-57;
|
||||||
|
autosize:=true;
|
||||||
|
end;
|
||||||
|
|
||||||
|
clearIncludedBy:=TBitBtn.Create(Self);
|
||||||
|
with clearIncludedBy do begin
|
||||||
|
Name:='clearIncludedBy';
|
||||||
|
Parent:=Self;
|
||||||
|
Left:=Self.ClientWidth-55;
|
||||||
|
Top:=122;
|
||||||
|
Width:=50;
|
||||||
|
Caption:='Clear';
|
||||||
|
OnClick:=@clearIncludedByClick;
|
||||||
|
end;
|
||||||
|
|
||||||
OkButton:=TButton.Create(Self);
|
OkButton:=TButton.Create(Self);
|
||||||
with OkButton do begin
|
with OkButton do begin
|
||||||
Name:='OkButton';
|
Name:='OkButton';
|
||||||
Parent:=Self;
|
Parent:=Self;
|
||||||
Top:=132;
|
Top:=152;
|
||||||
Width:=75;
|
Width:=75;
|
||||||
Height:=25;
|
Height:=25;
|
||||||
Left:=(Self.ClientWidth-Width) div 2;
|
Left:=(Self.ClientWidth-Width) div 2;
|
||||||
Caption:='Ok';
|
Caption:='Ok';
|
||||||
|
Default:=true;
|
||||||
OnClick:=@OkButtonClick;
|
OnClick:=@OkButtonClick;
|
||||||
Show;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
UName:=TLabel.create(self);
|
|
||||||
with uname do begin
|
|
||||||
Name:='Name';
|
|
||||||
Parent:=self;
|
|
||||||
Left:=4;
|
|
||||||
top:=4;
|
|
||||||
caption:='Name:';
|
|
||||||
Show;
|
|
||||||
end;
|
|
||||||
|
|
||||||
utype:=TLabel.create(self);
|
|
||||||
with utype do begin
|
|
||||||
Name:='Type';
|
|
||||||
Parent:=self;
|
|
||||||
Left:=4;
|
|
||||||
top:=24;
|
|
||||||
caption:='Type:';
|
|
||||||
Show;
|
|
||||||
end;
|
|
||||||
|
|
||||||
uinproject:=TLabel.create(self);
|
|
||||||
with uinproject do begin
|
|
||||||
Name:='InProject';
|
|
||||||
Parent:=self;
|
|
||||||
Left:=4;
|
|
||||||
top:=44;
|
|
||||||
caption:='in Project:';
|
|
||||||
Show;
|
|
||||||
end;
|
|
||||||
|
|
||||||
usize:=TLabel.create(self);
|
|
||||||
with usize do begin
|
|
||||||
Name:='Size';
|
|
||||||
Parent:=self;
|
|
||||||
Left:=4;
|
|
||||||
top:=64;
|
|
||||||
caption:='Size:';
|
|
||||||
Show;
|
|
||||||
end;
|
|
||||||
|
|
||||||
ulines:=TLabel.create(self);
|
|
||||||
with ulines do begin
|
|
||||||
Name:='Lines';
|
|
||||||
Parent:=self;
|
|
||||||
Left:=4;
|
|
||||||
top:=84;
|
|
||||||
caption:='Lines:';
|
|
||||||
Show;
|
|
||||||
end;
|
|
||||||
|
|
||||||
upath:=TLabel.create(self);
|
|
||||||
with upath do begin
|
|
||||||
Name:='Path';
|
|
||||||
Parent:=self;
|
|
||||||
Left:=4;
|
|
||||||
top:=104;
|
|
||||||
caption:='Path:';
|
|
||||||
Show;
|
|
||||||
end;
|
|
||||||
|
|
||||||
outname:=TLabel.create(self);
|
|
||||||
with outname do begin
|
|
||||||
Name:='OutName';
|
|
||||||
Parent:=self;
|
|
||||||
Left:=68;
|
|
||||||
top:=4;
|
|
||||||
Width:=Self.ClientWidth-Left-5;
|
|
||||||
caption:='temp';
|
|
||||||
Show;
|
|
||||||
end;
|
|
||||||
|
|
||||||
outtype:=TLabel.create(self);
|
|
||||||
with outtype do begin
|
|
||||||
Name:='OutType';
|
|
||||||
Parent:=self;
|
|
||||||
Left:=68;
|
|
||||||
top:=24;
|
|
||||||
Width:=Self.ClientWidth-Left-5;
|
|
||||||
caption:='temp';
|
|
||||||
Show;
|
|
||||||
end;
|
|
||||||
|
|
||||||
outinproject:=TLabel.create(self);
|
|
||||||
with outinproject do begin
|
|
||||||
Name:='OutInProject';
|
|
||||||
Parent:=self;
|
|
||||||
Left:=68;
|
|
||||||
top:=44;
|
|
||||||
Width:=Self.ClientWidth-Left-5;
|
|
||||||
caption:='temp';
|
|
||||||
Show;
|
|
||||||
end;
|
|
||||||
|
|
||||||
outsize:=TLabel.create(self);
|
|
||||||
with outsize do begin
|
|
||||||
Name:='OutSize';
|
|
||||||
Parent:=self;
|
|
||||||
Left:=68;
|
|
||||||
top:=64;
|
|
||||||
Width:=Self.ClientWidth-Left-5;
|
|
||||||
caption:='temp';
|
|
||||||
Show;
|
|
||||||
end;
|
|
||||||
|
|
||||||
outlines:=TLabel.create(self);
|
|
||||||
with outlines do begin
|
|
||||||
Name:='OutLines';
|
|
||||||
Parent:=self;
|
|
||||||
Left:=68;
|
|
||||||
top:=84;
|
|
||||||
Width:=Self.ClientWidth-Left-5;
|
|
||||||
caption:='temp';
|
|
||||||
Show;
|
|
||||||
end;
|
|
||||||
|
|
||||||
outpath:=TLabel.create(self);
|
|
||||||
with outpath do begin
|
|
||||||
Name:='OutPath';
|
|
||||||
Parent:=self;
|
|
||||||
Left:=68;
|
|
||||||
top:=104;
|
|
||||||
width:=181;
|
|
||||||
caption:='temp';
|
|
||||||
Width:=Self.ClientWidth-Left-5;
|
|
||||||
autosize:=true;
|
|
||||||
Show;
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
UnitInfoDlgResize(nil);
|
UnitInfoDlgResize(nil);
|
||||||
end;
|
end;
|
||||||
@ -278,80 +305,101 @@ begin
|
|||||||
outpath.caption:=str;
|
outpath.caption:=str;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TUnitInfoDlg.setIncludedBy(const IncludedBy: string);
|
||||||
|
begin
|
||||||
|
outIncludedBy.Caption:=IncludedBy;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TUnitInfoDlg.UnitInfoDlgResize(Sender: TObject);
|
procedure TUnitInfoDlg.UnitInfoDlgResize(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
with OkButton do begin
|
|
||||||
Top:=132;
|
|
||||||
Width:=75;
|
|
||||||
Height:=25;
|
|
||||||
Left:=(Self.ClientWidth-Width) div 2;
|
|
||||||
end;
|
|
||||||
|
|
||||||
with uname do begin
|
with uname do begin
|
||||||
Left:=4;
|
Left:=4;
|
||||||
Top:=4;
|
Top:=4;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
with utype do begin
|
with utype do begin
|
||||||
Left:=4;
|
Left:=uname.Left;
|
||||||
Top:=24;
|
Top:=24;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
with uinproject do begin
|
with uinproject do begin
|
||||||
Left:=4;
|
Left:=uname.Left;
|
||||||
Top:=44;
|
Top:=44;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
with usize do begin
|
with usize do begin
|
||||||
Left:=4;
|
Left:=uname.Left;
|
||||||
top:=64;
|
top:=64;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
with ulines do begin
|
with ulines do begin
|
||||||
Left:=4;
|
Left:=uname.Left;
|
||||||
top:=84;
|
top:=84;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
with upath do begin
|
with upath do begin
|
||||||
Left:=4;
|
Left:=uname.Left;
|
||||||
top:=104;
|
top:=104;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
with uIncludedBy do begin
|
||||||
|
Left:=uname.Left;
|
||||||
|
top:=124;
|
||||||
|
end;
|
||||||
|
|
||||||
with outname do begin
|
with outname do begin
|
||||||
Left:=68;
|
Left:=80;
|
||||||
top:=4;
|
top:=4;
|
||||||
Width:=Self.ClientWidth-Left-5;
|
Width:=Self.ClientWidth-Left-5;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
with outtype do begin
|
with outtype do begin
|
||||||
Left:=68;
|
Left:=outname.Left;
|
||||||
top:=24;
|
top:=24;
|
||||||
Width:=Self.ClientWidth-Left-5;
|
Width:=Self.ClientWidth-Left-5;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
with outinproject do begin
|
with outinproject do begin
|
||||||
Left:=68;
|
Left:=outname.Left;
|
||||||
top:=44;
|
top:=44;
|
||||||
Width:=Self.ClientWidth-Left-5;
|
Width:=Self.ClientWidth-Left-5;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
with outsize do begin
|
with outsize do begin
|
||||||
Left:=68;
|
Left:=outname.Left;
|
||||||
top:=64;
|
top:=64;
|
||||||
Width:=Self.ClientWidth-Left-5;
|
Width:=Self.ClientWidth-Left-5;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
with outlines do begin
|
with outlines do begin
|
||||||
Left:=68;
|
Left:=outname.Left;
|
||||||
top:=84;
|
top:=84;
|
||||||
Width:=Self.ClientWidth-Left-5;
|
Width:=Self.ClientWidth-Left-5;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
with outpath do begin
|
with outpath do begin
|
||||||
Left:=68;
|
Left:=outname.Left;
|
||||||
top:=104;
|
top:=104;
|
||||||
Width:=Self.ClientWidth-Left-5;
|
Width:=Self.ClientWidth-Left-5;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
with outIncludedBy do begin
|
||||||
|
Left:=outname.Left;
|
||||||
|
top:=124;
|
||||||
|
Width:=Self.ClientWidth-Left-57;
|
||||||
|
end;
|
||||||
|
|
||||||
|
with clearIncludedBy do begin
|
||||||
|
Left:=Self.ClientWidth-55;
|
||||||
|
top:=124;
|
||||||
|
end;
|
||||||
|
|
||||||
|
with OkButton do begin
|
||||||
|
Top:=152;
|
||||||
|
Width:=75;
|
||||||
|
Height:=25;
|
||||||
|
Left:=(Self.ClientWidth-Width) div 2;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TUnitInfoDlg.OkButtonClick(Sender:TObject);
|
procedure TUnitInfoDlg.OkButtonClick(Sender:TObject);
|
||||||
@ -359,5 +407,15 @@ begin
|
|||||||
ModalResult:=mrOk;
|
ModalResult:=mrOk;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TUnitInfoDlg.clearIncludedByClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
outIncludedBy.Caption:='';
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TUnitInfoDlg.getIncludedBy: string;
|
||||||
|
begin
|
||||||
|
Result:=outIncludedBy.Caption;
|
||||||
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
@ -1342,7 +1342,7 @@ begin
|
|||||||
ShowHide(Sender);
|
ShowHide(Sender);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
LM_SetCursor : SetCursor(TWinControl(Sender), Data);
|
LM_SetCursor : gtkproc.SetCursor(TWinControl(Sender), Data);
|
||||||
|
|
||||||
LM_SetLabel : SetLabel(Sender,Data);
|
LM_SetLabel : SetLabel(Sender,Data);
|
||||||
|
|
||||||
@ -1358,7 +1358,7 @@ begin
|
|||||||
begin
|
begin
|
||||||
// change cursor
|
// change cursor
|
||||||
if Sender is TWinControl then
|
if Sender is TWinControl then
|
||||||
SetCursor(TWinControl(Sender), Data);
|
gtkproc.SetCursor(TWinControl(Sender), Data);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
LM_RECREATEWND : Result := RecreateWnd(sender);
|
LM_RECREATEWND : Result := RecreateWnd(sender);
|
||||||
@ -6733,6 +6733,9 @@ end;
|
|||||||
{ =============================================================================
|
{ =============================================================================
|
||||||
|
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 1.306 2002/12/26 11:00:14 mattias
|
||||||
|
added included by to unitinfo and a few win32 functions
|
||||||
|
|
||||||
Revision 1.305 2002/12/25 14:21:28 mattias
|
Revision 1.305 2002/12/25 14:21:28 mattias
|
||||||
fixed setting activecontrol to nil when removing component
|
fixed setting activecontrol to nil when removing component
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user