• R/O
  • SSH
  • HTTPS

dzinifileformatter: Commit


Commit MetaInfo

Revision14 (tree)
Zeit2014-09-01 01:17:05
Autortwm

Log Message

* drag and drop for files
* autocomplete for filenames

Ändern Zusammenfassung

Diff

--- trunk/src/dzIniFileFormatter.dproj (revision 13)
+++ trunk/src/dzIniFileFormatter.dproj (revision 14)
@@ -52,9 +52,8 @@
5252 <DCC_DebugInformation>false</DCC_DebugInformation>
5353 </PropertyGroup>
5454 <PropertyGroup Condition="'$(Cfg_2)'!=''">
55- <DCC_ConsoleTarget>true</DCC_ConsoleTarget>
5655 <DCC_Optimize>false</DCC_Optimize>
57- <DCC_Define>DEBUG;dzMESSAGEDEBUG;$(DCC_Define)</DCC_Define>
56+ <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
5857 </PropertyGroup>
5958 <ItemGroup>
6059 <DelphiCompile Include="dzIniFileFormatter.dpr">
--- trunk/src/w_IniFileFormatter.pas (revision 13)
+++ trunk/src/w_IniFileFormatter.pas (revision 14)
@@ -13,11 +13,13 @@
1313 Forms,
1414 StdCtrls,
1515 ComCtrls,
16+ ExtCtrls,
1617 u_dzTranslator,
1718 u_IniFileFormatterConfig;
1819
1920 type
2021 Tf_IniFileFormatter = class(TForm)
22+ p_Filename: TPanel;
2123 l_Filename: TLabel;
2224 ed_Filename: TEdit;
2325 b_Filename: TButton;
@@ -39,6 +41,7 @@
3941 rb_ItemsByTemplate: TRadioButton;
4042 b_Close: TButton;
4143 b_SaveAs: TButton;
44+ p_TemplateFile: TPanel;
4245 l_Template: TLabel;
4346 ed_Template: TEdit;
4447 b_Template: TButton;
@@ -54,8 +57,14 @@
5457 procedure b_TemplateClick(Sender: TObject);
5558 procedure b_AboutClick(Sender: TObject);
5659 procedure b_ConfigureClick(Sender: TObject);
60+ procedure ed_FilenameChange(Sender: TObject);
61+ procedure ed_TemplateChange(Sender: TObject);
5762 private
5863 FFileComparer: string;
64+ FFnAutoComplete: TObject;
65+ FFnDropFiles: TObject;
66+ FTemplateAutoComplete: TObject;
67+ FTemplateDropFiles: TObject;
5968 procedure LoadAndSort(const _Filename: string);
6069 function FormatIni: Boolean;
6170 procedure ReadConfig(_cfg: TIniFileFormatterConfig);
@@ -62,6 +71,8 @@
6271 procedure ConfigToForm(_cfg: TIniFileFormatterConfig);
6372 procedure WriteConfig(cfg: TIniFileFormatterConfig);
6473 procedure FormToConfig(_cfg: TIniFileFormatterConfig);
74+ procedure OnDropInputFiles(_Sender: TObject; _Files: TStrings);
75+ procedure OnDropTemplateFiles(_Sender: TObject; _Files: TStrings);
6576 public
6677 constructor Create(_Owner: TComponent); override;
6778 destructor Destroy; override;
@@ -79,6 +90,7 @@
7990 uses
8091 u_dzIniFileFormatter,
8192 u_dzIniSections,
93+ u_dzFileUtils,
8294 u_dzVclUtils,
8395 u_dzClassUtils,
8496 u_dzDialogUtils,
@@ -105,6 +117,14 @@
105117 finally
106118 FreeAndNil(cfg);
107119 end;
120+
121+ p_Filename.BevelOuter := bvNone;
122+ FFnAutoComplete := TEdit_AutoComplete(ed_Filename, [acsFileSystem], [actSuggest]);
123+ FFnDropFiles := TWinControl_ActivateDropFiles(p_Filename, OnDropInputFiles);
124+
125+ p_TemplateFile.BevelOuter := bvNone;
126+ FTemplateAutoComplete := TEdit_AutoComplete(ed_Template, [acsFileSystem], [actSuggest]);
127+ FTemplateDropFiles := TWinControl_ActivateDropFiles(p_TemplateFile, OnDropTemplateFiles);
108128 end;
109129
110130 destructor Tf_IniFileFormatter.Destroy;
@@ -122,6 +142,35 @@
122142 inherited;
123143 end;
124144
145+procedure Tf_IniFileFormatter.ed_FilenameChange(Sender: TObject);
146+var
147+ fn: string;
148+begin
149+ fn := ed_Filename.Text;
150+ if not TFileSystem.FileExists(fn) then
151+ Exit;
152+ LoadAndSort(fn);
153+end;
154+
155+procedure Tf_IniFileFormatter.ed_TemplateChange(Sender: TObject);
156+begin
157+ FormatIni;
158+end;
159+
160+procedure Tf_IniFileFormatter.OnDropInputFiles(_Sender: TObject; _Files: TStrings);
161+begin
162+ if _Files.Count < 1 then
163+ Exit;
164+ ed_Filename.Text := _Files[0];
165+end;
166+
167+procedure Tf_IniFileFormatter.OnDropTemplateFiles(_Sender: TObject; _Files: TStrings);
168+begin
169+ if _Files.Count < 1 then
170+ Exit;
171+ ed_Template.Text := _Files[0];
172+end;
173+
125174 procedure Tf_IniFileFormatter.FormToConfig(_cfg: TIniFileFormatterConfig);
126175 begin
127176 if rb_SectionsAlpha.Checked then
@@ -216,7 +265,6 @@
216265 if not TOpenDialog_Execute(Self, _('Select template file'), FileFilterBuilder().AddIni.Filter, fn) then
217266 Exit;
218267 ed_Template.Text := fn;
219- FormatIni;
220268 end;
221269
222270 procedure Tf_IniFileFormatter.b_SaveAsClick(Sender: TObject);
@@ -311,19 +359,22 @@
311359 SortTemplate: TStringList;
312360 Sections: TStringList;
313361 s: string;
362+ fn: string;
314363 begin
315364 Result := False;
316365
317366 Template := nil;
318367
319- if ed_Template.Text = '' then
320- m_Template.Lines.Clear
321- else
368+ fn := ed_Template.Text;
369+ if (fn = '') or not TFileSystem.FileExists(fn) then begin
370+ fn := '';
371+ m_Template.Lines.Clear;
372+ end else
322373 m_Template.Lines.LoadFromFile(ed_Template.Text);
323374
324375 b := rb_SectionsByTemplate.Checked or rb_ItemsByTemplate.Checked;
325376 if b then begin
326- if (ed_Template.Text = '') then begin
377+ if fn = '' then begin
327378 m_Preview.Lines.Clear;
328379 Exit;
329380 end;
Show on old repository browser