#10, delete a project property

This commit is contained in:
Basile Burg 2015-09-20 18:22:43 +02:00
parent c8db00ec0d
commit 3eeb985081
2 changed files with 29 additions and 2 deletions

View File

@ -21,10 +21,10 @@ inherited CEDubProjectEditorWidget: TCEDubProjectEditorWidget
Height = 416 Height = 416
Top = 4 Top = 4
Width = 403 Width = 403
ActivePage = TabSheet1 ActivePage = TabSheet2
Align = alClient Align = alClient
BorderSpacing.Around = 4 BorderSpacing.Around = 4
TabIndex = 0 TabIndex = 1
TabOrder = 0 TabOrder = 0
object TabSheet1: TTabSheet object TabSheet1: TTabSheet
Caption = 'Inspector' Caption = 'Inspector'
@ -144,6 +144,7 @@ inherited CEDubProjectEditorWidget: TCEDubProjectEditorWidget
Width = 28 Width = 28
Align = alLeft Align = alLeft
Layout = blGlyphBottom Layout = blGlyphBottom
OnClick = btnDelPropClick
ShowCaption = False ShowCaption = False
end end
end end

View File

@ -32,6 +32,7 @@ type
TabSheet1: TTabSheet; TabSheet1: TTabSheet;
TabSheet2: TTabSheet; TabSheet2: TTabSheet;
procedure btnAcceptPropClick(Sender: TObject); procedure btnAcceptPropClick(Sender: TObject);
procedure btnDelPropClick(Sender: TObject);
procedure propTreeSelectionChanged(Sender: TObject); procedure propTreeSelectionChanged(Sender: TObject);
procedure treeInspectDblClick(Sender: TObject); procedure treeInspectDblClick(Sender: TObject);
private private
@ -142,9 +143,12 @@ end;
procedure TCEDubProjectEditorWidget.propTreeSelectionChanged(Sender: TObject); procedure TCEDubProjectEditorWidget.propTreeSelectionChanged(Sender: TObject);
begin begin
fSelectedNode := nil; fSelectedNode := nil;
btnDelProp.Enabled:= false;
if propTree.Selected = nil then exit; if propTree.Selected = nil then exit;
// //
fSelectedNode := propTree.Selected; fSelectedNode := propTree.Selected;
btnDelProp.Enabled := (fSelectedNode.Level > 0) and (fSelectedNode.Text <> 'name')
and (fSelectedNode.data <> nil);
updateValueEditor; updateValueEditor;
end; end;
@ -155,6 +159,27 @@ begin
setJsonValueFromEditor; setJsonValueFromEditor;
end; end;
procedure TCEDubProjectEditorWidget.btnDelPropClick(Sender: TObject);
var
prt: TJSONData;
begin
if fSelectedNode = nil then exit;
if fSelectedNode.Level = 0 then exit;
if fSelectedNode.Text = 'name' then exit;
if fSelectedNode.Data = nil then exit;
if fSelectedNode.Parent.Data = nil then exit;
//
fProj.beginModification;
prt := TJSONData(fSelectedNode.Parent.Data);
if prt.JSONType = jtObject then
TJSONObject(prt).Delete(fSelectedNode.Index)
else if prt.JSONType = jtArray then
TJSONArray(prt).Delete(fSelectedNode.Index);
fProj.endModification;
//
updateValueEditor;
end;
procedure TCEDubProjectEditorWidget.setJsonValueFromEditor; procedure TCEDubProjectEditorWidget.setJsonValueFromEditor;
var var
dat: TJSONData; dat: TJSONData;
@ -224,6 +249,7 @@ procedure TCEDubProjectEditorWidget.updateEditor;
i: integer; i: integer;
c: TTreeNode; c: TTreeNode;
begin begin
node.Data:= data;
if data.JSONType = jtObject then for i := 0 to data.Count-1 do if data.JSONType = jtObject then for i := 0 to data.Count-1 do
begin begin
node.ImageIndex:=7; node.ImageIndex:=7;