mirror of https://gitlab.com/basile.b/dexed.git
dupIgnore has no effect when list not sorted
This commit is contained in:
parent
73b4b4a9e5
commit
905d8395b0
|
@ -154,9 +154,7 @@ begin
|
||||||
fProjectSubject := TCEProjectSubject.create;
|
fProjectSubject := TCEProjectSubject.create;
|
||||||
//
|
//
|
||||||
fLibAliases := TStringList.Create;
|
fLibAliases := TStringList.Create;
|
||||||
fLibAliases.Duplicates:=TDuplicates.dupIgnore;
|
|
||||||
fSrcs := TStringList.Create;
|
fSrcs := TStringList.Create;
|
||||||
fSrcs.Duplicates:=TDuplicates.dupIgnore;
|
|
||||||
fSrcs.OnChange := @subMemberChanged;
|
fSrcs.OnChange := @subMemberChanged;
|
||||||
fConfigs := TCollection.create(TCompilerConfiguration);
|
fConfigs := TCollection.create(TCompilerConfiguration);
|
||||||
//
|
//
|
||||||
|
|
|
@ -299,11 +299,11 @@ begin
|
||||||
fBuildTypes := TStringList.Create;
|
fBuildTypes := TStringList.Create;
|
||||||
fConfigs := TStringList.Create;
|
fConfigs := TStringList.Create;
|
||||||
fSrcs := TStringList.Create;
|
fSrcs := TStringList.Create;
|
||||||
|
fSrcs.Sorted:=true;
|
||||||
|
fSrcs.Duplicates:=dupIgnore;
|
||||||
fImportPaths := TStringList.Create;
|
fImportPaths := TStringList.Create;
|
||||||
fSrcs.Duplicates:=TDuplicates.dupIgnore;
|
fImportPaths.Sorted:=true;
|
||||||
fImportPaths.Duplicates:=TDuplicates.dupIgnore;
|
fImportPaths.Duplicates:=dupIgnore;
|
||||||
fConfigs.Duplicates:=TDuplicates.dupIgnore;
|
|
||||||
fBuildTypes.Duplicates:=TDuplicates.dupIgnore;
|
|
||||||
//
|
//
|
||||||
json.Add('name', '');
|
json.Add('name', '');
|
||||||
endModification;
|
endModification;
|
||||||
|
@ -771,6 +771,8 @@ begin
|
||||||
fBuildTypes.Add(itemname);
|
fBuildTypes.Add(itemname);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
deleteDups(fConfigs);
|
||||||
|
deleteDups(fBuildTypes);
|
||||||
fConfigsCount := fConfigs.Count * fBuildTypes.Count;
|
fConfigsCount := fConfigs.Count * fBuildTypes.Count;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -912,6 +914,7 @@ begin
|
||||||
finally
|
finally
|
||||||
lst.Free;
|
lst.Free;
|
||||||
end;
|
end;
|
||||||
|
deleteDups(fSrcs);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TCEDubProject.findTargetKindInd(value: TJSONObject): boolean;
|
function TCEDubProject.findTargetKindInd(value: TJSONObject): boolean;
|
||||||
|
|
|
@ -1,46 +1,46 @@
|
||||||
inherited CEGdbWidget: TCEGdbWidget
|
inherited CEGdbWidget: TCEGdbWidget
|
||||||
Left = 640
|
Left = 640
|
||||||
Height = 625
|
Height = 668
|
||||||
Top = 213
|
Top = 213
|
||||||
Width = 517
|
Width = 517
|
||||||
ActiveControl = Back
|
ActiveControl = Back
|
||||||
Caption = 'GDB commander'
|
Caption = 'GDB commander'
|
||||||
ClientHeight = 625
|
ClientHeight = 668
|
||||||
ClientWidth = 517
|
ClientWidth = 517
|
||||||
inherited Back: TPanel
|
inherited Back: TPanel
|
||||||
Height = 619
|
Height = 662
|
||||||
Top = 6
|
Top = 6
|
||||||
Width = 517
|
Width = 517
|
||||||
ClientHeight = 619
|
ClientHeight = 662
|
||||||
ClientWidth = 517
|
ClientWidth = 517
|
||||||
inherited Content: TPanel
|
inherited Content: TPanel
|
||||||
Height = 583
|
Height = 626
|
||||||
Width = 517
|
Width = 517
|
||||||
ClientHeight = 583
|
ClientHeight = 626
|
||||||
ClientWidth = 517
|
ClientWidth = 517
|
||||||
object Panel1: TPanel[0]
|
object Panel1: TPanel[0]
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 381
|
Height = 424
|
||||||
Top = 166
|
Top = 166
|
||||||
Width = 517
|
Width = 517
|
||||||
Align = alClient
|
Align = alClient
|
||||||
BevelOuter = bvNone
|
BevelOuter = bvNone
|
||||||
ClientHeight = 381
|
ClientHeight = 424
|
||||||
ClientWidth = 517
|
ClientWidth = 517
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
object GroupBox3: TGroupBox
|
object GroupBox3: TGroupBox
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 184
|
Height = 227
|
||||||
Top = 197
|
Top = 197
|
||||||
Width = 517
|
Width = 517
|
||||||
Align = alClient
|
Align = alClient
|
||||||
Caption = 'CPU'
|
Caption = 'CPU'
|
||||||
ClientHeight = 154
|
ClientHeight = 197
|
||||||
ClientWidth = 513
|
ClientWidth = 513
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
object cpuVIewer: TTIPropertyGrid
|
object cpuVIewer: TTIPropertyGrid
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 154
|
Height = 197
|
||||||
Hint = 'cpu registers'
|
Hint = 'cpu registers'
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 513
|
Width = 513
|
||||||
|
@ -110,7 +110,7 @@ inherited CEGdbWidget: TCEGdbWidget
|
||||||
object Panel3: TPanel[1]
|
object Panel3: TPanel[1]
|
||||||
Left = 4
|
Left = 4
|
||||||
Height = 28
|
Height = 28
|
||||||
Top = 551
|
Top = 594
|
||||||
Width = 509
|
Width = 509
|
||||||
Align = alBottom
|
Align = alBottom
|
||||||
BorderSpacing.Around = 4
|
BorderSpacing.Around = 4
|
||||||
|
|
|
@ -10,7 +10,7 @@ uses
|
||||||
StdCtrls, ValEdit, process, fpjson, typinfo, {$IFDEF UNIX}Unix,{$ENDIF}
|
StdCtrls, ValEdit, process, fpjson, typinfo, {$IFDEF UNIX}Unix,{$ENDIF}
|
||||||
ce_common, ce_interfaces, ce_widget, ce_processes, ce_observer, ce_synmemo,
|
ce_common, ce_interfaces, ce_widget, ce_processes, ce_observer, ce_synmemo,
|
||||||
ce_sharedres, ce_stringrange, ce_dsgncontrols, ce_dialogs, ce_dbgitf,
|
ce_sharedres, ce_stringrange, ce_dsgncontrols, ce_dialogs, ce_dbgitf,
|
||||||
ce_ddemangle, ce_writableComponent, ce_symstring;
|
ce_ddemangle, ce_writableComponent;
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
|
@ -504,8 +504,10 @@ begin
|
||||||
fShowGdbOutput:=true;
|
fShowGdbOutput:=true;
|
||||||
fIgnoredSignals := TStringList.Create;
|
fIgnoredSignals := TStringList.Create;
|
||||||
fIgnoredSignals.Duplicates:= dupIgnore;
|
fIgnoredSignals.Duplicates:= dupIgnore;
|
||||||
|
fIgnoredSignals.Sorted:=true;
|
||||||
fCommandsHistory := TStringList.Create;
|
fCommandsHistory := TStringList.Create;
|
||||||
fCommandsHistory.Duplicates:= dupIgnore;
|
fCommandsHistory.Duplicates:= dupIgnore;
|
||||||
|
fCommandsHistory.Sorted:=true;
|
||||||
fShortcuts := TCEDebugShortcuts.Create;
|
fShortcuts := TCEDebugShortcuts.Create;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -2111,6 +2113,11 @@ begin
|
||||||
edit1.Text := '';
|
edit1.Text := '';
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
//TODO-cGDB: copy from call stack list
|
||||||
|
//TODO-cGDB: replace value list editor by TListView
|
||||||
|
//to set focus on variable of a triggered watchpoint.
|
||||||
|
|
||||||
procedure TCEGdbWidget.setGpr(reg: TCpuRegister; val: TCpuGprValue);
|
procedure TCEGdbWidget.setGpr(reg: TCpuRegister; val: TCpuGprValue);
|
||||||
const
|
const
|
||||||
spec = 'set $%s = 0x%X';
|
spec = 'set $%s = 0x%X';
|
||||||
|
|
|
@ -166,8 +166,6 @@ begin
|
||||||
fModulesByName := TModulesByName.create;
|
fModulesByName := TModulesByName.create;
|
||||||
fDependencies := TStringList.Create;
|
fDependencies := TStringList.Create;
|
||||||
fClients := TStringList.Create;
|
fClients := TStringList.Create;
|
||||||
fDependencies.Duplicates := dupIgnore;
|
|
||||||
fClients.Duplicates := dupIgnore;
|
|
||||||
fEnabled:=true;
|
fEnabled:=true;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -438,11 +436,15 @@ procedure TLibraryManager.FPOObservedChanged(ASender: TObject; Operation:
|
||||||
TFPObservedOperation; Data: Pointer);
|
TFPObservedOperation; Data: Pointer);
|
||||||
var
|
var
|
||||||
i,j: integer;
|
i,j: integer;
|
||||||
|
obj: TObject;
|
||||||
lib: TLibraryItem;
|
lib: TLibraryItem;
|
||||||
cli: TLibraryItem;
|
cli: TLibraryItem;
|
||||||
begin
|
begin
|
||||||
if data.isNil then
|
if data.isNil then
|
||||||
exit;
|
exit;
|
||||||
|
obj := TObject(data);
|
||||||
|
if not (obj is TLibraryItem) then
|
||||||
|
exit;
|
||||||
lib := TLibraryItem(data);
|
lib := TLibraryItem(data);
|
||||||
case operation of
|
case operation of
|
||||||
ooDeleteItem: if fItemsByAlias.contains(lib.libAlias) then
|
ooDeleteItem: if fItemsByAlias.contains(lib.libAlias) then
|
||||||
|
@ -462,7 +464,8 @@ begin
|
||||||
ooAddItem:
|
ooAddItem:
|
||||||
begin
|
begin
|
||||||
fItemsByAlias.insert(lib.libAlias, lib);
|
fItemsByAlias.insert(lib.libAlias, lib);
|
||||||
updateCrossDependencies;
|
// TODO-cupdate on addition, item ctor is not yet finished !
|
||||||
|
//updateCrossDependencies;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
@ -705,6 +708,12 @@ begin
|
||||||
dep.clients.Add(lib.libAlias);
|
dep.clients.Add(lib.libAlias);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
for i := 0 to fCollection.Count-1 do
|
||||||
|
begin
|
||||||
|
lib := libraryByIndex[i];
|
||||||
|
deleteDups(lib.clients);
|
||||||
|
deleteDups(lib.dependencies);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
|
|
|
@ -597,6 +597,7 @@ begin
|
||||||
inherited;
|
inherited;
|
||||||
fStaticSwitches := TStringList.create;
|
fStaticSwitches := TStringList.create;
|
||||||
fStaticSwitches.Duplicates := TDuplicates.dupIgnore;
|
fStaticSwitches.Duplicates := TDuplicates.dupIgnore;
|
||||||
|
fStaticSwitches.Sorted:=true;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
@ -1282,6 +1283,7 @@ begin
|
||||||
accept := GetKeyShiftState = [ssCtrl];
|
accept := GetKeyShiftState = [ssCtrl];
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
//TODO-cdocking: remove the usage of TAnchorDockSplitterEx from Laz 1.8 RC1 (OnMouseWheel public)
|
||||||
procedure TCEMainForm.DockSplitterMw(Sender: TObject; Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
|
procedure TCEMainForm.DockSplitterMw(Sender: TObject; Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
|
||||||
var
|
var
|
||||||
offs: integer;
|
offs: integer;
|
||||||
|
@ -2193,6 +2195,9 @@ begin
|
||||||
openFile(TMenuItem(Sender).Hint);
|
openFile(TMenuItem(Sender).Hint);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
//TODO-cbugfix: OpenDialogs, double path separator when shortcuts resolved
|
||||||
|
// i.e when ofNoDereferenceLinks is not set.
|
||||||
|
|
||||||
procedure TCEMainForm.actFileOpenExecute(Sender: TObject);
|
procedure TCEMainForm.actFileOpenExecute(Sender: TObject);
|
||||||
var
|
var
|
||||||
fname: string;
|
fname: string;
|
||||||
|
@ -2602,7 +2607,6 @@ begin
|
||||||
ldc: dmdProc.Executable :='ldmd2' + exeExt;
|
ldc: dmdProc.Executable :='ldmd2' + exeExt;
|
||||||
gdc: dmdProc.Executable :='gdmd' + exeExt;
|
gdc: dmdProc.Executable :='gdmd' + exeExt;
|
||||||
end;
|
end;
|
||||||
TStringList(dmdproc.Parameters).Duplicates:=TDuplicates.dupIgnore;
|
|
||||||
dmdproc.Parameters.Add(fDoc.fileName);
|
dmdproc.Parameters.Add(fDoc.fileName);
|
||||||
if not asObj then
|
if not asObj then
|
||||||
dmdproc.Parameters.Add('-of' + fname + exeExt)
|
dmdproc.Parameters.Add('-of' + fname + exeExt)
|
||||||
|
@ -2640,6 +2644,7 @@ begin
|
||||||
LibMan.getLibFiles(nil, dmdproc.Parameters);
|
LibMan.getLibFiles(nil, dmdproc.Parameters);
|
||||||
LibMan.getLibSourcePath(nil, dmdproc.Parameters);
|
LibMan.getLibSourcePath(nil, dmdproc.Parameters);
|
||||||
end;
|
end;
|
||||||
|
deleteDups(dmdproc.Parameters);
|
||||||
dmdproc.Execute;
|
dmdproc.Execute;
|
||||||
while dmdproc.Running do
|
while dmdproc.Running do
|
||||||
application.ProcessMessages;
|
application.ProcessMessages;
|
||||||
|
|
Loading…
Reference in New Issue