mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-10-24 09:53:41 +02:00
sort the listbox shown in View Unit from Graeme
git-svn-id: trunk@9104 -
This commit is contained in:
parent
2b2be90bb6
commit
0f359b926e
130
ide/main.pp
130
ide/main.pp
@ -6015,7 +6015,8 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
function TMainIDE.DoViewUnitsAndForms(OnlyForms: boolean): TModalResult;
|
function TMainIDE.DoViewUnitsAndForms(OnlyForms: boolean): TModalResult;
|
||||||
var UnitList: TList;
|
var
|
||||||
|
UnitList: TStringList;
|
||||||
i: integer;
|
i: integer;
|
||||||
MainUnitName, DlgCaption: string;
|
MainUnitName, DlgCaption: string;
|
||||||
MainUnitInfo, AnUnitInfo: TUnitInfo;
|
MainUnitInfo, AnUnitInfo: TUnitInfo;
|
||||||
@ -6024,29 +6025,38 @@ var UnitList: TList;
|
|||||||
AForm: TCustomForm;
|
AForm: TCustomForm;
|
||||||
Begin
|
Begin
|
||||||
GetCurrentUnit(ActiveSourceEditor,ActiveUnitInfo);
|
GetCurrentUnit(ActiveSourceEditor,ActiveUnitInfo);
|
||||||
UnitList:=TList.Create;
|
UnitList := TStringList.Create;
|
||||||
|
UnitList.Sorted := True;
|
||||||
try
|
try
|
||||||
for i:=0 to Project1.UnitCount-1 do begin
|
for i:=0 to Project1.UnitCount-1 do begin
|
||||||
if not Project1.Units[i].IsPartOfProject then continue;
|
if not Project1.Units[i].IsPartOfProject then continue;
|
||||||
//debugln('TMainIDE.DoViewUnitsAndForms OnlyForms=',dbgs(OnlyForms),' CompName=',Project1.Units[i].ComponentName,' UnitName=',Project1.Units[i].UnitName);
|
//debugln('TMainIDE.DoViewUnitsAndForms OnlyForms=',dbgs(OnlyForms),' CompName=',Project1.Units[i].ComponentName,' UnitName=',Project1.Units[i].UnitName);
|
||||||
if OnlyForms then begin
|
if OnlyForms then
|
||||||
|
begin
|
||||||
// add all form names of project
|
// add all form names of project
|
||||||
if Project1.Units[i].ComponentName<>'' then begin
|
if Project1.Units[i].ComponentName<>'' then
|
||||||
UnitList.Add(TViewUnitsEntry.Create(
|
begin
|
||||||
Project1.Units[i].ComponentName,i,Project1.Units[i]=ActiveUnitInfo));
|
UnitList.AddObject(Project1.Units[i].UnitName, TViewUnitsEntry.Create(
|
||||||
|
Project1.Units[i].ComponentName, i, Project1.Units[i]=ActiveUnitInfo));
|
||||||
end;
|
end;
|
||||||
end else begin
|
end else
|
||||||
|
begin
|
||||||
// add all unit names of project
|
// add all unit names of project
|
||||||
if (Project1.Units[i].UnitName<>'') then begin
|
if (Project1.Units[i].UnitName <> '') then
|
||||||
UnitList.Add(TViewUnitsEntry.Create(
|
begin
|
||||||
Project1.Units[i].UnitName,i,Project1.Units[i]=ActiveUnitInfo));
|
UnitList.AddObject(Project1.Units[i].UnitName, TViewUnitsEntry.Create(
|
||||||
end else if Project1.MainUnitID=i then begin
|
Project1.Units[i].UnitName, i, Project1.Units[i]=ActiveUnitInfo));
|
||||||
MainUnitInfo:=Project1.MainUnitInfo;
|
end
|
||||||
if pfMainUnitIsPascalSource in Project1.Flags then begin
|
else if Project1.MainUnitID = i then
|
||||||
MainUnitName:=CreateSrcEditPageName('',
|
begin
|
||||||
|
MainUnitInfo := Project1.MainUnitInfo;
|
||||||
|
if pfMainUnitIsPascalSource in Project1.Flags then
|
||||||
|
begin
|
||||||
|
MainUnitName := CreateSrcEditPageName('',
|
||||||
MainUnitInfo.Filename,MainUnitInfo.EditorIndex);
|
MainUnitInfo.Filename,MainUnitInfo.EditorIndex);
|
||||||
if MainUnitName<>'' then begin
|
if MainUnitName <> '' then
|
||||||
UnitList.Add(TViewUnitsEntry.Create(
|
begin
|
||||||
|
UnitList.AddObject(MainUnitName, TViewUnitsEntry.Create(
|
||||||
MainUnitName,i,MainUnitInfo=ActiveUnitInfo));
|
MainUnitName,i,MainUnitInfo=ActiveUnitInfo));
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -6054,18 +6064,21 @@ Begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
if OnlyForms then
|
if OnlyForms then
|
||||||
DlgCaption:=dlgMainViewForms
|
DlgCaption := dlgMainViewForms
|
||||||
else
|
else
|
||||||
DlgCaption:=dlgMainViewUnits ;
|
DlgCaption := dlgMainViewUnits ;
|
||||||
if ShowViewUnitsDlg(UnitList,true,DlgCaption)=mrOk then begin
|
if ShowViewUnitsDlg(UnitList,true,DlgCaption) = mrOk then
|
||||||
|
begin
|
||||||
|
{ This is where we check what the user selected. }
|
||||||
AnUnitInfo:=nil;
|
AnUnitInfo:=nil;
|
||||||
for i:=0 to UnitList.Count-1 do begin
|
for i := 0 to UnitList.Count-1 do
|
||||||
if TViewUnitsEntry(UnitList[i]).Selected then begin
|
begin
|
||||||
AnUnitInfo:=Project1.Units[TViewUnitsEntry(UnitList[i]).ID];
|
if TViewUnitsEntry(UnitList.Objects[i]).Selected then begin
|
||||||
if AnUnitInfo.EditorIndex>=0 then begin
|
AnUnitInfo := Project1.Units[TViewUnitsEntry(UnitList.Objects[i]).ID];
|
||||||
SourceNoteBook.Notebook.PageIndex:=AnUnitInfo.EditorIndex;
|
if AnUnitInfo.EditorIndex >= 0 then begin
|
||||||
|
SourceNoteBook.Notebook.PageIndex := AnUnitInfo.EditorIndex;
|
||||||
end else begin
|
end else begin
|
||||||
if Project1.MainUnitInfo=AnUnitInfo then
|
if Project1.MainUnitInfo = AnUnitInfo then
|
||||||
Result:=DoOpenMainUnit(false)
|
Result:=DoOpenMainUnit(false)
|
||||||
else
|
else
|
||||||
Result:=DoOpenEditorFile(AnUnitInfo.Filename,-1,[ofOnlyIfExists]);
|
Result:=DoOpenEditorFile(AnUnitInfo.Filename,-1,[ofOnlyIfExists]);
|
||||||
@ -6077,14 +6090,15 @@ Begin
|
|||||||
ShowDesignerForm(AForm);
|
ShowDesignerForm(AForm);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end; { for }
|
||||||
if (AnUnitInfo<>nil) and (not OnlyForms) then begin
|
if (AnUnitInfo<>nil) and (not OnlyForms) then
|
||||||
|
begin
|
||||||
SourceNotebook.ShowOnTop;
|
SourceNotebook.ShowOnTop;
|
||||||
end;
|
end;
|
||||||
end;
|
end; { if ShowViewUnitDlg... }
|
||||||
finally
|
finally
|
||||||
for i:=0 to UnitList.Count-1 do
|
for i:=0 to UnitList.Count-1 do
|
||||||
TViewUnitsEntry(UnitList[i]).Free;
|
TViewUnitsEntry(UnitList.Objects[i]).Free;
|
||||||
UnitList.Free;
|
UnitList.Free;
|
||||||
end;
|
end;
|
||||||
Result:=mrOk;
|
Result:=mrOk;
|
||||||
@ -7052,47 +7066,59 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
function TMainIDE.DoRemoveFromProjectDialog: TModalResult;
|
function TMainIDE.DoRemoveFromProjectDialog: TModalResult;
|
||||||
var UnitList: TList;
|
var
|
||||||
|
UnitList: TStringList;
|
||||||
i:integer;
|
i:integer;
|
||||||
AName: string;
|
AName: string;
|
||||||
AnUnitInfo: TUnitInfo;
|
AnUnitInfo: TUnitInfo;
|
||||||
Begin
|
Begin
|
||||||
UnitList:=TList.Create;
|
UnitList := TStringList.Create;
|
||||||
|
UnitList.Sorted := True;
|
||||||
|
|
||||||
try
|
try
|
||||||
for i:=0 to Project1.UnitCount-1 do begin
|
for i := 0 to Project1.UnitCount-1 do
|
||||||
|
begin
|
||||||
AnUnitInfo:=Project1.Units[i];
|
AnUnitInfo:=Project1.Units[i];
|
||||||
if (AnUnitInfo.IsPartOfProject) and (i<>Project1.MainUnitID) then begin
|
if (AnUnitInfo.IsPartOfProject) and (i<>Project1.MainUnitID) then
|
||||||
AName:=Project1.RemoveProjectPathFromFilename(AnUnitInfo.FileName);
|
begin
|
||||||
UnitList.Add(TViewUnitsEntry.Create(AName,i,false));
|
AName := Project1.RemoveProjectPathFromFilename(AnUnitInfo.FileName);
|
||||||
|
UnitList.AddObject(AName, TViewUnitsEntry.Create(AName,i,false));
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
if ShowViewUnitsDlg(UnitList, true, lisRemoveFromProject)=mrOk then begin
|
if ShowViewUnitsDlg(UnitList, true, lisRemoveFromProject) = mrOk then
|
||||||
for i:=0 to UnitList.Count-1 do begin
|
begin
|
||||||
if TViewUnitsEntry(UnitList[i]).Selected then begin
|
{ This is where we check what the user selected. }
|
||||||
AnUnitInfo:=Project1.Units[TViewUnitsEntry(UnitList[i]).ID];
|
for i:=0 to UnitList.Count-1 do
|
||||||
AnUnitInfo.IsPartOfProject:=false;
|
begin
|
||||||
if (Project1.MainUnitID>=0)
|
if TViewUnitsEntry(UnitList.Objects[i]).Selected then
|
||||||
and (pfMainUnitHasUsesSectionForAllUnits in Project1.Flags)
|
begin
|
||||||
then begin
|
AnUnitInfo:=Project1.Units[TViewUnitsEntry(UnitList.Objects[i]).ID];
|
||||||
if (AnUnitInfo.UnitName<>'') then begin
|
AnUnitInfo.IsPartOfProject := false;
|
||||||
|
if (Project1.MainUnitID >= 0) and
|
||||||
|
(pfMainUnitHasUsesSectionForAllUnits in Project1.Flags) then
|
||||||
|
begin
|
||||||
|
if (AnUnitInfo.UnitName <> '') then
|
||||||
|
begin
|
||||||
if CodeToolBoss.RemoveUnitFromAllUsesSections(
|
if CodeToolBoss.RemoveUnitFromAllUsesSections(
|
||||||
Project1.MainUnitInfo.Source,AnUnitInfo.UnitName)
|
Project1.MainUnitInfo.Source, AnUnitInfo.UnitName)
|
||||||
then
|
then
|
||||||
Project1.MainUnitInfo.Modified:=true;
|
Project1.MainUnitInfo.Modified := true;
|
||||||
end;
|
end;
|
||||||
if (AnUnitInfo.ComponentName<>'') then begin
|
if (AnUnitInfo.ComponentName <> '') then
|
||||||
|
begin
|
||||||
Project1.RemoveCreateFormFromProjectFile(
|
Project1.RemoveCreateFormFromProjectFile(
|
||||||
'T'+AnUnitInfo.ComponentName,AnUnitInfo.ComponentName);
|
'T' + AnUnitInfo.ComponentName, AnUnitInfo.ComponentName);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end; { for }
|
||||||
end;
|
end; { if ShowViewUnitsDlg.. }
|
||||||
finally
|
finally
|
||||||
for i:=0 to UnitList.Count-1 do TViewUnitsEntry(UnitList[i]).Free;
|
for i := 0 to UnitList.Count-1 do
|
||||||
|
TViewUnitsEntry(UnitList.Objects[i]).Free;
|
||||||
UnitList.Free;
|
UnitList.Free;
|
||||||
end;
|
end;
|
||||||
Result:=mrOk;
|
Result := mrOk;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TMainIDE.DoWarnAmbiguousFiles: TModalResult;
|
function TMainIDE.DoWarnAmbiguousFiles: TModalResult;
|
||||||
|
|||||||
@ -4,6 +4,8 @@
|
|||||||
ViewUnit_dlg.pp
|
ViewUnit_dlg.pp
|
||||||
---------------
|
---------------
|
||||||
TViewUnit is the application dialog for displaying all units in a project.
|
TViewUnit is the application dialog for displaying all units in a project.
|
||||||
|
It gets used for the "View Units", "View Forms" and "Remove from Project"
|
||||||
|
menu items.
|
||||||
|
|
||||||
|
|
||||||
Initial Revision : Sat Feb 19 17:42 CST 1999
|
Initial Revision : Sat Feb 19 17:42 CST 1999
|
||||||
@ -59,15 +61,14 @@ type
|
|||||||
MultiSelectCheckBox: TCheckBox;
|
MultiSelectCheckBox: TCheckBox;
|
||||||
Procedure btnOKClick(Sender :TObject);
|
Procedure btnOKClick(Sender :TObject);
|
||||||
Procedure btnCancelClick(Sender :TObject);
|
Procedure btnCancelClick(Sender :TObject);
|
||||||
procedure ListboxKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState
|
procedure ListboxKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
|
||||||
);
|
|
||||||
procedure MultiselectCheckBoxClick(Sender :TObject);
|
procedure MultiselectCheckBoxClick(Sender :TObject);
|
||||||
public
|
public
|
||||||
constructor Create(TheOwner: TComponent); override;
|
constructor Create(TheOwner: TComponent); override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
function ShowViewUnitsDlg(Entries: TList; MultiSelect: boolean;
|
function ShowViewUnitsDlg(Entries: TStringList; MultiSelect: boolean;
|
||||||
const Caption: string): TModalResult;
|
const Caption: string): TModalResult;
|
||||||
// Entries is a list of TViewUnitsEntry(s)
|
// Entries is a list of TViewUnitsEntry(s)
|
||||||
|
|
||||||
@ -75,9 +76,10 @@ function ShowViewUnitsDlg(Entries: TList; MultiSelect: boolean;
|
|||||||
implementation
|
implementation
|
||||||
|
|
||||||
|
|
||||||
function ShowViewUnitsDlg(Entries: TList;
|
function ShowViewUnitsDlg(Entries: TStringList; MultiSelect: boolean;
|
||||||
MultiSelect: boolean; const Caption: string): TModalResult;
|
const Caption: string): TModalResult;
|
||||||
var ViewUnitDialog: TViewUnitDialog;
|
var
|
||||||
|
ViewUnitDialog: TViewUnitDialog;
|
||||||
i: integer;
|
i: integer;
|
||||||
begin
|
begin
|
||||||
ViewUnitDialog:=TViewUnitDialog.Create(nil);
|
ViewUnitDialog:=TViewUnitDialog.Create(nil);
|
||||||
@ -90,15 +92,15 @@ begin
|
|||||||
BeginUpdate;
|
BeginUpdate;
|
||||||
Clear;
|
Clear;
|
||||||
for i:=0 to Entries.Count-1 do
|
for i:=0 to Entries.Count-1 do
|
||||||
Add(TViewUnitsEntry(Entries[i]).Name);
|
Add(TViewUnitsEntry(Entries.Objects[i]).Name);
|
||||||
EndUpdate;
|
EndUpdate;
|
||||||
end;
|
end;
|
||||||
for i:=0 to Entries.Count-1 do
|
for i:=0 to Entries.Count-1 do
|
||||||
ViewUnitDialog.ListBox.Selected[i]:=TViewUnitsEntry(Entries[i]).Selected;
|
ViewUnitDialog.ListBox.Selected[i]:=TViewUnitsEntry(Entries.Objects[i]).Selected;
|
||||||
Result:=ViewUnitDialog.ShowModal;
|
Result:=ViewUnitDialog.ShowModal;
|
||||||
if Result=mrOk then begin
|
if Result=mrOk then begin
|
||||||
for i:=0 to Entries.Count-1 do begin
|
for i:=0 to Entries.Count-1 do begin
|
||||||
TViewUnitsEntry(Entries[i]).Selected:=ViewUnitDialog.ListBox.Selected[i];
|
TViewUnitsEntry(Entries.Objects[i]).Selected:=ViewUnitDialog.ListBox.Selected[i];
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
finally
|
finally
|
||||||
@ -123,13 +125,13 @@ constructor TViewUnitDialog.Create(TheOwner: TComponent);
|
|||||||
begin
|
begin
|
||||||
inherited Create(TheOwner);
|
inherited Create(TheOwner);
|
||||||
IDEDialogLayoutList.ApplyLayout(Self,450,300);
|
IDEDialogLayoutList.ApplyLayout(Self,450,300);
|
||||||
btnOK.Caption:= lisOkBtn;
|
btnOK.Caption := lisOkBtn;
|
||||||
btnOk.Left:=ClientWidth-btnOk.Width-5;
|
btnOk.Left := ClientWidth-btnOk.Width-5;
|
||||||
btnCancel.Caption:=dlgCancel;
|
btnCancel.Caption := dlgCancel;
|
||||||
btnCancel.Left:=btnOk.Left;
|
btnCancel.Left := btnOk.Left;
|
||||||
CancelControl:=btnCancel;
|
CancelControl := btnCancel;
|
||||||
MultiSelectCheckBox.Caption:=dlgMultiSelect;
|
MultiSelectCheckBox.Caption := dlgMultiSelect;
|
||||||
MultiSelectCheckBox.Left:=btnOk.Left;
|
MultiSelectCheckBox.Left := btnOk.Left;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure TViewUnitDialog.btnOKClick(Sender : TOBject);
|
Procedure TViewUnitDialog.btnOKClick(Sender : TOBject);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user