Skip to content

Commit 0aa6a9b

Browse files
committed
add import to folder
1 parent 1f3c37a commit 0aa6a9b

File tree

6 files changed

+101
-6
lines changed

6 files changed

+101
-6
lines changed

lang/codelibconst.en.po

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,10 @@ msgstr "Exit"
104104
msgid "Expand all"
105105
msgstr "Expand all"
106106

107+
#: codelibconst.rs_actimporttxt
108+
msgid "Import"
109+
msgstr ""
110+
107111
#: codelibconst.rs_actmakeroot
108112
msgid "Move folder to root"
109113
msgstr "Move folder to root"
@@ -199,3 +203,4 @@ msgstr "Options ..."
199203
#: codelibconst.rs_optlbl
200204
msgid "Select data base path .."
201205
msgstr "Select data base path .."
206+

lang/codelibconst.po

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,10 @@ msgstr ""
9393
msgid "Expand all"
9494
msgstr ""
9595

96+
#: codelibconst.rs_actimporttxt
97+
msgid "Import"
98+
msgstr ""
99+
96100
#: codelibconst.rs_actmakeroot
97101
msgid "Move folder to root"
98102
msgstr ""

lang/codelibconst.ru.po

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,10 @@ msgstr "Выход"
104104
msgid "Expand all"
105105
msgstr "Развернуть все"
106106

107+
#: codelibconst.rs_actimporttxt
108+
msgid "Import"
109+
msgstr ""
110+
107111
#: codelibconst.rs_actmakeroot
108112
msgid "Move folder to root"
109113
msgstr "Переместить папку в корень"
@@ -199,3 +203,4 @@ msgstr "Опции ..."
199203
#: codelibconst.rs_optlbl
200204
msgid "Select data base path .."
201205
msgstr "Выберите путь к базе данных .."
206+

src/codelib.lfm

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
object CodeFrm: TCodeFrm
2-
Left = 530
2+
Left = 380
33
Height = 462
4-
Top = 188
4+
Top = 173
55
Width = 640
66
Caption = 'Code Librarian'
77
ClientHeight = 438
@@ -224,6 +224,9 @@ object CodeFrm: TCodeFrm
224224
Action = actSaveAsHtml
225225
end
226226
end
227+
object mitImport: TMenuItem
228+
Action = actImportTxt
229+
end
227230
object mitExpSep: TMenuItem
228231
Caption = '-'
229232
end
@@ -663,6 +666,11 @@ object CodeFrm: TCodeFrm
663666
Caption = 'Export as Text'
664667
OnExecute = actSaveAsTXTExecute
665668
end
669+
object actImportTxt: TAction
670+
Category = 'File'
671+
Caption = 'actImportTxt'
672+
OnExecute = actImportTxtExecute
673+
end
666674
end
667675
object ilActions: TImageList
668676
Left = 416
@@ -1516,4 +1524,8 @@ object CodeFrm: TCodeFrm
15161524
Left = 122
15171525
Top = 346
15181526
end
1527+
object dlgOpen: TOpenDialog
1528+
Left = 416
1529+
Top = 128
1530+
end
15191531
end

src/codelib.pas

Lines changed: 70 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ TCodeFrm = class(TForm)
3232
actCopyAsHtml: TAction;
3333
actEditUndo: TAction;
3434
actEditRedo: TAction;
35+
actImportTxt: TAction;
3536
actSaveAsTXT: TAction;
3637
actReadOnly: TAction;
3738
actSyntaxBat: TAction;
@@ -44,6 +45,7 @@ TCodeFrm = class(TForm)
4445
actSyntaxJava: TAction;
4546
CodeDB: TBufDataset;
4647
DataSource1: TDataSource;
48+
mitImport: TMenuItem;
4749
mitExportHtml: TMenuItem;
4850
mitExportTXT: TMenuItem;
4951
mitExport: TMenuItem;
@@ -66,6 +68,7 @@ TCodeFrm = class(TForm)
6668
dlgPrinterSetup: TPrinterSetupDialog;
6769
dlgPrint: TPrintDialog;
6870
dlgSave: TSaveDialog;
71+
dlgOpen: TOpenDialog;
6972
Splitter: TSplitter;
7073
MainMenu: TMainMenu;
7174
mitFile: TMenuItem;
@@ -183,6 +186,7 @@ TCodeFrm = class(TForm)
183186
procedure actCopyAsHtmlExecute(Sender: TObject);
184187
procedure actEditRedoExecute(Sender: TObject);
185188
procedure actEditUndoExecute(Sender: TObject);
189+
procedure actImportTxtExecute(Sender: TObject);
186190
procedure actReadOnlyExecute(Sender: TObject);
187191
procedure actSaveAsHtmlExecute(Sender: TObject);
188192
procedure actSaveAsTXTExecute(Sender: TObject);
@@ -246,9 +250,10 @@ TCodeFrm = class(TForm)
246250
procedure SetupSyntaxHighlightingControl;
247251
public
248252
function AddFolder(Node: TTreeNode; const Desc: string): TTreeNode;
249-
function AddCode(const Desc: string): TTreeNode;
253+
function AddCode(const Desc: string; Import: boolean = false): TTreeNode;
250254
property Modified: Boolean read FModified write SetModified;
251255
property DatabasePath: string read FDatabasePath write FDatabasePath;
256+
252257
end;
253258

254259

@@ -421,23 +426,64 @@ procedure TCodeFrm.SetModified(New: Boolean);
421426
StatusBar.Panels[1].Text := ''; // No need to localize.
422427
end;
423428

424-
function TCodeFrm.AddCode(const Desc: string): TTreeNode;
429+
function TCodeFrm.AddCode(const Desc: string; Import: boolean): TTreeNode;
425430
var
426431
Node: TTreeNode;
432+
T : TStringList;
427433
begin
428434
Result := nil;
429435
if tvTopics.Selected = nil then Exit;
436+
430437
with CodeDB do
431438
begin
432439
Insert;
433440
FieldByName('Parent').AsInteger := PtrInt(tvTopics.Selected.Data); // Do not localize.
434441
FieldByName('Topic').AsString := Desc; // Do not localize.
435442
FieldByName('Type').AsString := 'C'; // Do not localize.
443+
444+
if import then
445+
begin
446+
T:=TStringList.Create;
447+
T.LoadFromFile(dlgOpen.FileName);
448+
FieldByName('Code').AsString :=T.Text;
449+
T.Free;
450+
451+
case ExtractFileExt(dlgOpen.FileName) of
452+
'.pas' : FieldByName('Language').AsString := 'PASCAL'; // Do not localize.
453+
'.pp' : FieldByName('Language').AsString := 'PASCAL'; // Do not localize.
454+
'.c' : FieldByName('Language').AsString := 'CPP'; // Do not localize.
455+
'.cpp' : FieldByName('Language').AsString := 'CPP'; // Do not localize.
456+
'.h' : FieldByName('Language').AsString := 'CPP'; // Do not localize.
457+
'.htm' : FieldByName('Language').AsString := 'HTML'; // Do not localize.
458+
'.html' : FieldByName('Language').AsString := 'HTML'; // Do not localize.
459+
'.sql' : FieldByName('Language').AsString := 'SQL'; // Do not localize.
460+
'.java' : FieldByName('Language').AsString := 'JAVA'; // Do not localize.
461+
'.js' : FieldByName('Language').AsString := 'JAVASCRIPT'; // Do not localize.
462+
'.pl' : FieldByName('Language').AsString := 'PERL'; // Do not localize.
463+
'.pm' : FieldByName('Language').AsString := 'PERL'; // Do not localize.
464+
'.t' : FieldByName('Language').AsString := 'PERL'; // Do not localize.
465+
'.php' : FieldByName('Language').AsString := 'PHP'; // Do not localize.
466+
'.py' : FieldByName('Language').AsString := 'PYTHON'; // Do not localize.
467+
'.py3' : FieldByName('Language').AsString := 'PYTHON'; // Do not localize.
468+
'.sh' : FieldByName('Language').AsString := 'UNIXSHELL'; // Do not localize.
469+
'.bash' : FieldByName('Language').AsString := 'UNIXSHELL'; // Do not localize.
470+
'.bat' : FieldByName('Language').AsString := 'MSDOSBAT'; // Do not localize.
471+
472+
else
473+
FieldByName('Language').AsString := 'NONE'; // Do not localize.
474+
end;
475+
476+
end
477+
else
478+
begin
436479
if mitPascal.Checked then
437480
FieldByName('Language').AsString := 'PASCAL' // Do not localize.
438481
else
439482
FieldByName('Language').AsString := 'NONE'; // Do not localize.
483+
end;
484+
440485
Post;
486+
441487
end;
442488
Node := tvTopics.Items.AddChildObject(tvTopics.Selected, Desc,
443489
Pointer(PtrInt(CodeDB.FieldByName('Key').AsInteger))); // Do not localize.
@@ -517,6 +563,21 @@ procedure TCodeFrm.actEditUndoExecute(Sender: TObject);
517563
FCodeText.Undo;
518564
end;
519565

566+
procedure TCodeFrm.actImportTxtExecute(Sender: TObject);
567+
var
568+
Node: TTreeNode;
569+
begin
570+
Screen.Cursor := crHourglass;
571+
if dlgOpen.Execute then
572+
try
573+
Node := AddCode(ExtractFileName(dlgOpen.FileName), true);
574+
if Node <> nil then
575+
tvTopics.Selected := Node;
576+
finally
577+
Screen.Cursor := crDefault;
578+
end;
579+
end;
580+
520581
procedure TCodeFrm.actReadOnlyExecute(Sender: TObject);
521582
begin
522583
FCodeText.ReadOnly:=mitReadOnly.Checked;
@@ -578,6 +639,7 @@ procedure TCodeFrm.mActionsUpdate(AAction: TBasicAction; var Handled: Boolean);
578639
begin
579640
actMakeRoot.Enabled := False;
580641
actNewSnippet.Enabled := False;
642+
581643
end
582644
else
583645
begin
@@ -587,6 +649,8 @@ procedure TCodeFrm.mActionsUpdate(AAction: TBasicAction; var Handled: Boolean);
587649
end;
588650
actPrint.Enabled:=SnippetIsSelected;
589651

652+
actImportTxt.Enabled:= not SnippetIsSelected;
653+
590654
actSaveAsHtml.Enabled:=SnippetIsSelected;
591655
actSaveAsTXT.Enabled:=SnippetIsSelected;
592656
mitExport.Enabled:=SnippetIsSelected;
@@ -724,8 +788,8 @@ procedure TCodeFrm.tvTopicsChange(Sender: TObject; Node: TTreeNode);
724788
FCodeText.HighLighter := SynPas;
725789
end;
726790
end;
727-
FCodeText.Text:=CodeDB.FieldByName('Code').AsString;
728-
finally
791+
FCodeText.Text:=CodeDB.FieldByName('Code').AsString ;
792+
finally
729793
FCodeText.Lines.EndUpdate;
730794
end;
731795
end;
@@ -1092,6 +1156,8 @@ procedure TCodeFrm.LoadSettings;
10921156

10931157
actSaveAsHtml.Caption:= rs_actSaveAsHtml;
10941158
actSaveAsTXT.Caption := rs_actSaveAsTXT;
1159+
actImportTxt.Caption:=rs_actImportTxt;
1160+
10951161

10961162
mitFile.Caption := rs_mitFile;
10971163
mitFileNew.Caption:=rs_mitFileNew;

src/codelibconst.pas

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,12 @@ interface
5050
rs_actSyntaxNone='&None';
5151
rs_actReadOnly='Read only';
5252

53+
5354
rs_actSaveAsHtml='Export snippet as html page';
5455
rs_actSaveAsTXT ='Export snippet as text file';
5556

57+
rs_actImportTxt ='Import';
58+
5659
rs_mitFile='File';
5760
rs_mitFileNew='&New';
5861
rs_mitExport='Export';

0 commit comments

Comments
 (0)