added btn to clone an existing tool

This commit is contained in:
Basile Burg 2015-03-11 19:48:42 +01:00
parent 224a8836d1
commit e7611457b6
3 changed files with 55 additions and 0 deletions

View File

@ -45,6 +45,7 @@ type
public public
constructor create(ACollection: TCollection); override; constructor create(ACollection: TCollection); override;
destructor destroy; override; destructor destroy; override;
procedure assign(Source: TPersistent); override;
end; end;
TCETools = class(TWritableLfmTextComponent, ICEMainMenuProvider, ICEEditableShortcut) TCETools = class(TWritableLfmTextComponent, ICEMainMenuProvider, ICEEditableShortcut)
@ -105,6 +106,27 @@ begin
inherited; inherited;
end; end;
procedure TCEToolItem.assign(Source: TPersistent);
var
tool: TCEToolItem;
begin
if Source is TCEToolItem then
begin
tool := TCEToolItem(Source);
//
toolAlias := tool.toolAlias;
chainAfter.Assign(tool.chainAfter);
chainBefore.Assign(tool.chainBefore);
queryParameters := tool.queryParameters;
clearMessages := tool.clearMessages;
fOpts := tool.fOpts;
parameters.Assign(tool.parameters);
executable := tool.executable;
workingDirectory := tool.workingDirectory;
end
else inherited;
end;
procedure TCEToolItem.setParameters(aValue: TStringList); procedure TCEToolItem.setParameters(aValue: TStringList);
begin begin
fParameters.Assign(aValue); fParameters.Assign(aValue);

View File

@ -66,6 +66,7 @@ inherited CEToolsEditorWidget: TCEToolsEditorWidget
object btnMoveDown: TBitBtn object btnMoveDown: TBitBtn
Left = 56 Left = 56
Height = 24 Height = 24
Hint = 'move selected tool down'
Top = 0 Top = 0
Width = 28 Width = 28
Align = alLeft Align = alLeft
@ -77,6 +78,7 @@ inherited CEToolsEditorWidget: TCEToolsEditorWidget
object btnMoveUp: TBitBtn object btnMoveUp: TBitBtn
Left = 84 Left = 84
Height = 24 Height = 24
Hint = 'move selected tool up'
Top = 0 Top = 0
Width = 28 Width = 28
Align = alLeft Align = alLeft
@ -85,6 +87,18 @@ inherited CEToolsEditorWidget: TCEToolsEditorWidget
Spacing = 0 Spacing = 0
TabOrder = 4 TabOrder = 4
end end
object btnClone: TBitBtn
Left = 112
Height = 24
Hint = 'clone selected tool'
Top = 0
Width = 28
Align = alLeft
Layout = blGlyphBottom
OnClick = btnCloneClick
Spacing = 0
TabOrder = 5
end
end end
object Panel2: TPanel[1] object Panel2: TPanel[1]
Left = 4 Left = 4

View File

@ -9,10 +9,14 @@ uses
ExtCtrls, Menus, Buttons, StdCtrls, ce_widget, ce_tools; ExtCtrls, Menus, Buttons, StdCtrls, ce_widget, ce_tools;
type type
{ TCEToolsEditorWidget }
TCEToolsEditorWidget = class(TCEWidget) TCEToolsEditorWidget = class(TCEWidget)
BtnAddTool: TBitBtn; BtnAddTool: TBitBtn;
btnMoveDown: TBitBtn; btnMoveDown: TBitBtn;
btnMoveUp: TBitBtn; btnMoveUp: TBitBtn;
btnClone: TBitBtn;
btnRemTool: TBitBtn; btnRemTool: TBitBtn;
btnRun: TBitBtn; btnRun: TBitBtn;
lstTools: TListBox; lstTools: TListBox;
@ -21,6 +25,7 @@ type
Splitter1: TSplitter; Splitter1: TSplitter;
propsEd: TTIPropertyGrid; propsEd: TTIPropertyGrid;
procedure BtnAddToolClick(Sender: TObject); procedure BtnAddToolClick(Sender: TObject);
procedure btnCloneClick(Sender: TObject);
procedure btnRemToolClick(Sender: TObject); procedure btnRemToolClick(Sender: TObject);
procedure btnMoveUpClick(Sender: TObject); procedure btnMoveUpClick(Sender: TObject);
procedure btnMoveDownClick(Sender: TObject); procedure btnMoveDownClick(Sender: TObject);
@ -58,6 +63,8 @@ begin
btnRemTool.Glyph.Assign(png); btnRemTool.Glyph.Assign(png);
png.LoadFromLazarusResource('application_flash'); png.LoadFromLazarusResource('application_flash');
btnRun.Glyph.Assign(png); btnRun.Glyph.Assign(png);
png.LoadFromLazarusResource('application_double');
btnClone.Glyph.Assign(png);
finally finally
png.free; png.free;
end; end;
@ -113,6 +120,18 @@ begin
rebuildToolList; rebuildToolList;
end; end;
procedure TCEToolsEditorWidget.btnCloneClick(Sender: TObject);
var
itm: TCEToolItem;
begin
if lstTools.ItemIndex = -1 then
exit;
itm := CustomTools.addTool;
itm.Assign(CustomTools[lstTools.ItemIndex]);
itm.toolAlias := itm.toolAlias + ' (copy)';
rebuildToolList;
end;
procedure TCEToolsEditorWidget.btnRemToolClick(Sender: TObject); procedure TCEToolsEditorWidget.btnRemToolClick(Sender: TObject);
begin begin
if lstTools.ItemIndex = -1 then if lstTools.ItemIndex = -1 then