Skip to content

Commit 1f3c37a

Browse files
committed
add export snippet to text file
1 parent 515d204 commit 1f3c37a

File tree

7 files changed

+319
-14
lines changed

7 files changed

+319
-14
lines changed

lang/codelibconst.en.po

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,14 @@ msgstr "Printer setup..."
136136
msgid "Read only"
137137
msgstr "Read only"
138138

139+
#: codelibconst.rs_actsaveashtml
140+
msgid "Export snippet as html page"
141+
msgstr "Export snippet as html page"
142+
143+
#: codelibconst.rs_actsaveastxt
144+
msgid "Export snippet as text file"
145+
msgstr "Export snippet as text file"
146+
139147
#: codelibconst.rs_actsyntaxnone
140148
msgid "&None"
141149
msgstr "&None"
@@ -168,9 +176,9 @@ msgstr "&Edit"
168176
msgid "Syntax &highlighting"
169177
msgstr "Syntax &highlighting"
170178

171-
#: codelibconst.rs_mitexporthtml
172-
msgid "Export as HTML"
173-
msgstr "Export as HTML"
179+
#: codelibconst.rs_mitexport
180+
msgid "Export"
181+
msgstr "Export"
174182

175183
#: codelibconst.rs_mitfile
176184
msgid "File"

lang/codelibconst.po

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,14 @@ msgstr ""
125125
msgid "Read only"
126126
msgstr ""
127127

128+
#: codelibconst.rs_actsaveashtml
129+
msgid "Export snippet as html page"
130+
msgstr ""
131+
132+
#: codelibconst.rs_actsaveastxt
133+
msgid "Export snippet as text file"
134+
msgstr ""
135+
128136
#: codelibconst.rs_actsyntaxnone
129137
msgid "&None"
130138
msgstr ""
@@ -157,8 +165,8 @@ msgstr ""
157165
msgid "Syntax &highlighting"
158166
msgstr ""
159167

160-
#: codelibconst.rs_mitexporthtml
161-
msgid "Export as HTML"
168+
#: codelibconst.rs_mitexport
169+
msgid "Export"
162170
msgstr ""
163171

164172
#: codelibconst.rs_mitfile

lang/codelibconst.ru.po

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,14 @@ msgstr "Настройка печати..."
136136
msgid "Read only"
137137
msgstr "Только для чтения"
138138

139+
#: codelibconst.rs_actsaveashtml
140+
msgid "Export snippet as html page"
141+
msgstr "Экспортировать фрагмент как страницу html"
142+
143+
#: codelibconst.rs_actsaveastxt
144+
msgid "Export snippet as text file"
145+
msgstr "Экспортировать фрагмент как текстовый файл"
146+
139147
#: codelibconst.rs_actsyntaxnone
140148
msgid "&None"
141149
msgstr "&Без подсветки"
@@ -168,9 +176,9 @@ msgstr "&Правка"
168176
msgid "Syntax &highlighting"
169177
msgstr "&Подсветка синтаксиса"
170178

171-
#: codelibconst.rs_mitexporthtml
172-
msgid "Export as HTML"
173-
msgstr "Экспорт в формате HTML"
179+
#: codelibconst.rs_mitexport
180+
msgid "Export"
181+
msgstr "Экспорт"
174182

175183
#: codelibconst.rs_mitfile
176184
msgid "File"

src/codelib.lfm

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -215,8 +215,14 @@ object CodeFrm: TCodeFrm
215215
object mitFileSep1: TMenuItem
216216
Caption = '-'
217217
end
218-
object mitExportHtml: TMenuItem
219-
Action = actSaveAsHtml
218+
object mitExport: TMenuItem
219+
Caption = 'mitExport'
220+
object mitExportTXT: TMenuItem
221+
Action = actSaveAsTXT
222+
end
223+
object mitExportHtml: TMenuItem
224+
Action = actSaveAsHtml
225+
end
220226
end
221227
object mitExpSep: TMenuItem
222228
Caption = '-'
@@ -652,6 +658,11 @@ object CodeFrm: TCodeFrm
652658
OnExecute = actEditRedoExecute
653659
ShortCut = 16473
654660
end
661+
object actSaveAsTXT: TAction
662+
Category = 'File'
663+
Caption = 'Export as Text'
664+
OnExecute = actSaveAsTXTExecute
665+
end
655666
end
656667
object ilActions: TImageList
657668
Left = 416

src/codelib.pas

Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
{$WARN 6058 off : Call to subroutine "$1" marked as inline is not inlined}
66
{$WARN 5024 off : Parameter "$1" not used}
77
{$WARN 4055 off : Conversion between ordinals and pointers is not portable}
8+
{$WARN 4046 off : Constructing a class "$1" with abstract method "$2"}
89
{$HINTS OFF}
910

1011
interface
@@ -31,6 +32,7 @@ TCodeFrm = class(TForm)
3132
actCopyAsHtml: TAction;
3233
actEditUndo: TAction;
3334
actEditRedo: TAction;
35+
actSaveAsTXT: TAction;
3436
actReadOnly: TAction;
3537
actSyntaxBat: TAction;
3638
actSyntaxUNIXShell: TAction;
@@ -42,6 +44,9 @@ TCodeFrm = class(TForm)
4244
actSyntaxJava: TAction;
4345
CodeDB: TBufDataset;
4446
DataSource1: TDataSource;
47+
mitExportHtml: TMenuItem;
48+
mitExportTXT: TMenuItem;
49+
mitExport: TMenuItem;
4550
mitEditorRedo: TMenuItem;
4651
mitEditorUndo: TMenuItem;
4752
mitEditorSep5: TMenuItem;
@@ -56,7 +61,6 @@ TCodeFrm = class(TForm)
5661
mitJavaScript: TMenuItem;
5762
mitEditorSep3: TMenuItem;
5863
mitEditorCopyHtml: TMenuItem;
59-
mitExportHtml: TMenuItem;
6064
mitExpSep: TMenuItem;
6165
mitJAVA: TMenuItem;
6266
dlgPrinterSetup: TPrinterSetupDialog;
@@ -181,6 +185,7 @@ TCodeFrm = class(TForm)
181185
procedure actEditUndoExecute(Sender: TObject);
182186
procedure actReadOnlyExecute(Sender: TObject);
183187
procedure actSaveAsHtmlExecute(Sender: TObject);
188+
procedure actSaveAsTXTExecute(Sender: TObject);
184189
procedure CodeTextChange(Sender: TObject);
185190
procedure FormCreate(Sender: TObject);
186191
procedure FormDestroy(Sender: TObject);
@@ -472,6 +477,24 @@ procedure TCodeFrm.actSaveAsHtmlExecute(Sender: TObject);
472477
end;
473478
end;
474479

480+
procedure TCodeFrm.actSaveAsTXTExecute(Sender: TObject);
481+
var T : TStringList;
482+
begin
483+
dlgSave.Filter:= ExportTextFilter;
484+
dlgSave.DefaultExt:='.txt';
485+
if dlgSave.Execute then
486+
begin
487+
if FCodeText.SelText='' then
488+
FCodeText.Lines.SaveToFile(dlgSave.FileName) else
489+
begin
490+
T := TStringList.Create;
491+
T.Add(FCodeText.SelText);
492+
T.SaveToFile(dlgSave.FileName);
493+
T.Free;
494+
end;
495+
end;
496+
end;
497+
475498
procedure TCodeFrm.actCopyAsHtmlExecute(Sender: TObject);
476499
begin
477500
If FCodeText.Highlighter<> nil then
@@ -563,7 +586,11 @@ procedure TCodeFrm.mActionsUpdate(AAction: TBasicAction; var Handled: Boolean);
563586
actNewFolder.Enabled := not SnippetIsSelected;
564587
end;
565588
actPrint.Enabled:=SnippetIsSelected;
589+
566590
actSaveAsHtml.Enabled:=SnippetIsSelected;
591+
actSaveAsTXT.Enabled:=SnippetIsSelected;
592+
mitExport.Enabled:=SnippetIsSelected;
593+
567594
Handled := True;
568595
end;
569596

@@ -650,7 +677,7 @@ procedure TCodeFrm.tvTopicsChange(Sender: TObject; Node: TTreeNode);
650677
case CodeDB.FieldByName('Language').AsString of
651678
'NONE': begin // This is non source code
652679
mitNone.Checked := True;
653-
FCodeText.HighLighter := nil;
680+
FCodeText.HighLighter := SynAny;
654681
end;
655682
'CPP': begin // This is CPP source code
656683
mitCPP.Checked := True;
@@ -1063,9 +1090,14 @@ procedure TCodeFrm.LoadSettings;
10631090
actSyntaxNone.caption := rs_actSyntaxNone;
10641091
actReadOnly.caption := rs_actReadOnly;
10651092

1093+
actSaveAsHtml.Caption:= rs_actSaveAsHtml;
1094+
actSaveAsTXT.Caption := rs_actSaveAsTXT;
1095+
10661096
mitFile.Caption := rs_mitFile;
10671097
mitFileNew.Caption:=rs_mitFileNew;
1068-
mitExportHtml.Caption:=rs_mitExportHtml;
1098+
1099+
mitExport.Caption:=rs_mitExport;
1100+
10691101
mitEdit.Caption:=rs_mitEdit;
10701102
mitOptions.Caption:=rs_mitOptions;
10711103
mitEditorHighlighting.Caption:=rs_mitEditorHighlighting;

src/codelibconst.pas

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ interface
1313
OpenFolderImageIndex = 17;
1414
CodeSnippetImageIndex = 18;
1515
DefaultDBFileName = 'codelibrarian.dat';
16+
ExportTextFilter = 'Text Files (*.txt)|*.txt';
1617

1718
resourcestring
1819
rsMenuName = 'Code Librarian';
@@ -49,9 +50,13 @@ interface
4950
rs_actSyntaxNone='&None';
5051
rs_actReadOnly='Read only';
5152

53+
rs_actSaveAsHtml='Export snippet as html page';
54+
rs_actSaveAsTXT ='Export snippet as text file';
55+
5256
rs_mitFile='File';
5357
rs_mitFileNew='&New';
54-
rs_mitExportHtml='Export as HTML';
58+
rs_mitExport='Export';
59+
5560
rs_mitEdit='&Edit';
5661
rs_mitOptions='&Options';
5762

0 commit comments

Comments
 (0)