added small dialog to set the switches used to compile a runnable.

This commit is contained in:
Basile Burg 2015-05-11 13:42:10 +02:00
parent 187b9499d0
commit e770473dbb
2 changed files with 99 additions and 4 deletions

View File

@ -572,6 +572,9 @@ object CEMainForm: TCEMainForm
07FFB47A07FFB47A08FFB57C0AFFB67F0FFFB88114FFBA851B23
}
end
object MenuItem68: TMenuItem
Action = actSetRunnableSw
end
object MenuItem59: TMenuItem
Caption = '-'
end
@ -1818,6 +1821,9 @@ object CEMainForm: TCEMainForm
07FFB47A07FFB47A08FFB57C0AFFB67F0FFFB88114FFBA851B23
}
end
object MenuItem67: TMenuItem
Action = actSetRunnableSw
end
object MenuItem10: TMenuItem
Caption = '-'
end
@ -2365,11 +2371,17 @@ object CEMainForm: TCEMainForm
OnExecute = actFileUnittestExecute
OnUpdate = updateDocumentBasedAction
end
object actSetRunnableSw: TAction
Category = 'File'
Caption = 'Set runnable switches'
ImageIndex = 34
OnExecute = actSetRunnableSwExecute
end
end
object imgList: TImageList
left = 64
Bitmap = {
4C69220000001000000010000000008F4E00008C4AB000965DFF00935AFF0093
4C69230000001000000010000000008F4E00008C4AB000965DFF00935AFF0093
59FF009359FF009359FF009359FF009359FF00945AFF008743FF008945FF008A
49A8FFFFFF00008F4E00008F4F00008E4E00008A47FF66E2D0FF62DDCAFF62DD
C8FF62DDC8FF62DDC8FF62DDC8FF62DDC8FF62DDC9FF61E0CAFF62DEC8FF3ABA
@ -3457,7 +3469,39 @@ object CEMainForm: TCEMainForm
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF007E7E7E007F7F7F4D7F7F7F667F7F7F667F7F
7F667F7F7F667F7F7F667F7F7F667F7F7F667F7F7F667F7F7F667F7F7F667F7F
7F667F7F7F667F7F7F4D7E7E7E007C7C7C007C7C7C67FFFFFFFFFEFEFEFFFEFE
FEFFFEFEFEFFFEFEFEFFFEFEFEFFFEFEFEFFFEFEFEFFFEFEFEFFFEFEFEFFFEFE
FEFFFFFFFFFF7C7C7C677C7C7C007878780078787868FBFBFBFFAAAAAAFFF7F7
F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFAAAA
AAFFFAFAFAFF7878786878787800737373007373736AF6F6F6FFF6F6F6FFEEEE
EEFFE2E2E2FFD6D6D6FFD6D6D6FFD6D6D6FFD6D6D6FFE2E2E2FFEEEEEEFFF6F6
F6FFF3F3F3FF7373736A737373006E6E6E006E6E6E6BF1F1F1FFE5E5E5FFE5E5
E5FFD2D2D2FF575757FF575757FF575757FF575757FFCACACAFFDADADAFFDDDD
DDFFE7E7E7FF6E6E6E6B6E6E6E00696969006969696DEBEBEBFFDEDEDEFFDEDE
DEFFCFCFCFFF5E5E5EFFD2D2D2FFD2D2D2FF5E5E5EFFBDBCBCFFCECDCDFFCECD
CDFFD7D6D6FF6969696D69696900636363006363636EE9E9E9FFDDDCDCFFD7D5
D5FFCBC9C9FF686868FFE1E1E1FFE1E1E1FF686868FFB7B6B6FFD1CFCFFFD1CF
CFFFD7D4D4FF6363636E636363005C5C5C005C5C5C70E6E5E5FFD8D4D4FFD6D1
D1FFD0CCCCFF747474FFB2B2B2FFB2B2B2FF747474FFB3AFAFFFD6D1D1FFD6D1
D1FFD9D4D4FF5C5C5C705C5C5C005555550055555571E3DEDEFFDBD4D4FFDBD4
D4FFD6D0D0FF808080FFFDFDFDFFFDFDFDFF808080FFAEA9A9FF64BA55FF3CB2
2AFF64BB56FF55555571555555004F4F4F004F4F4F73E5DCDCFFE0D6D6FFE0D6
D6FFDCD3D3FF8C8C8CFFF2F2F2FFF2F2F2FF8C8C8CFFB1A9A9FF3BAC2AFF75EE
64FF3CAE2BFF4F4F4F73317728004848480048484874E8DDDDFFE4D9D9FFE4D9
D9FFE3D8D8FFA8A5A5FFD2D2D2FFD2D2D2FF479A3DFF33A123FF38A528FF66EB
55FF3CA92BFF179407E3129C00993D3D3D003D3D3D76EBDDDDFF999999FFE9DB
DBFFE9DBDBFFE9DBDBFFC7BABAFFBBAFAFFF329B23FF52E741FF52E741FF52E7
41FF52E741FF52E741FF109500CC0B0B0B0023232377EDDDDDFFF6E5E5FFECDC
DCFFECDCDCFFECDCDCFFECDCDCFFECDCDCFF67AD58FF3A9C2CFF3A9C2CFF3DE2
2CFF3A9C2CFF108104E40B6A00990000001E0B0B0B640D0D0D780D0D0D780D0D
0D780D0D0D780D0D0D780D0D0D780D0D0D780D0D0D780D0D0D780C7602E42BDF
1AFF0C7602E40B0B0B640000001E00000000000000170000001A0000001A0000
001A0000001A0000001A0000001A0000001A0000001A0000001A0669009E0566
00D10669009E0000001700000000
}
end
object ApplicationProperties1: TApplicationProperties

View File

@ -5,8 +5,8 @@ unit ce_main;
interface
uses
Classes, SysUtils, FileUtil, SynEditKeyCmds, SynHighlighterLFM, Forms,
AnchorDocking, AnchorDockStorage, AnchorDockOptionsDlg, Controls, Graphics,
Classes, SysUtils, FileUtil, SynEditKeyCmds, SynHighlighterLFM, Forms, StdCtrls,
AnchorDocking, AnchorDockStorage, AnchorDockOptionsDlg, Controls, Graphics, strutils,
Dialogs, Menus, ActnList, ExtCtrls, process, XMLPropStorage, SynExportHTML,
ce_common, ce_dmdwrap, ce_project, ce_dcd, ce_synmemo, ce_writableComponent,
ce_widget, ce_messages, ce_interfaces, ce_editor, ce_projinspect, ce_projconf,
@ -34,6 +34,7 @@ type
actFileHtmlExport: TAction;
actFileUnittest: TAction;
actFileCompileAndRunOut: TAction;
actSetRunnableSw: TAction;
actLayoutSave: TAction;
actProjOpenContFold: TAction;
actProjOptView: TAction;
@ -122,6 +123,8 @@ type
MenuItem64: TMenuItem;
MenuItem65: TMenuItem;
MenuItem66: TMenuItem;
MenuItem67: TMenuItem;
MenuItem68: TMenuItem;
mnuLayout: TMenuItem;
mnuItemMruFile: TMenuItem;
mnuItemMruProj: TMenuItem;
@ -132,6 +135,7 @@ type
MenuItem7: TMenuItem;
MenuItem8: TMenuItem;
MenuItem9: TMenuItem;
procedure actSetRunnableSwExecute(Sender: TObject);
procedure updateDocumentBasedAction(sender: TObject);
procedure updateProjectBasedAction(sender: TObject);
procedure updateDocEditBasedAction(sender: TObject);
@ -1353,6 +1357,53 @@ begin
(inph as ICEProcInputHandler).removeProcess(proc);
end;
procedure TCEMainForm.actSetRunnableSwExecute(Sender: TObject);
var
form: TForm;
memo: TMemo;
i, j: integer;
cur: string;
begin
if fRunnableSw = '' then
fRunnableSw := '-vcolumns'#13'-w'#13'-wi';
form := TForm.Create(nil);
form.BorderIcons:= [biSystemMenu];
memo := TMemo.Create(form);
memo.Align := alClient;
memo.BorderSpacing.Around:=4;
memo.Text := fRunnableSw;
memo.Parent := form;
form.ShowModal;
//
fRunnableSw := '';
for i := memo.Lines.Count-1 downto 0 do
begin
cur := memo.Lines.Strings[i];
// duplicated item
j := memo.Lines.IndexOf(cur);
if (j > -1) and (j < i) then
continue;
// not a switch
if length(cur) < 2 then
continue;
if cur[1] <> '-' then
continue;
// added dynamically when needed
if cur = '-unittest' then
continue;
if cur = '-main' then
continue;
RemoveTrailingChars(cur, [#0..#30]);
fRunnableSw += (cur + #13);
end;
if (fRunnableSw <> '') and (fRunnableSw[length(fRunnableSw)] = #13) then
fRunnableSw := fRunnableSw[1..length(fRunnableSw)-1];
if fRunnableSw = '' then
fRunnableSw := '-vcolumns'#13'-w'#13'-wi';
//
form.Free;
end;
procedure TCEMainForm.compileAndRunFile(unittest: boolean = false; redirect: boolean = true;
const runArgs: string = '');
var