@@ -224,6 +224,7 @@ TMainForm = class(TExtForm)
224224 FollowForeignKey: TMenuItem;
225225 menuColorScheme: TMenuItem;
226226 MenuItem3: TMenuItem;
227+ menuRenameSnippet: TMenuItem;
227228 menuSQLpreferences: TMenuItem;
228229 menuQFdummy: TMenuItem;
229230 N1: TMenuItem;
@@ -944,6 +945,7 @@ TMainForm = class(TExtForm)
944945 TColumnIndex; NewText: String);
945946 procedure AnyGridPaintText(Sender: TBaseVirtualTree; const TargetCanvas:
946947 TCanvas; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType);
948+ procedure menuRenameSnippetClick(Sender: TObject);
947949 procedure menuDeleteSnippetClick(Sender: TObject);
948950 procedure menuExploreClick(Sender: TObject);
949951 procedure menuInsertAtCursorClick(Sender: TObject);
@@ -5232,7 +5234,7 @@ procedure TMainform.popupQueryLoadClick(Sender: TObject);
52325234 Filename := (Sender as TMenuItem).Caption;
52335235 Filename := StripHotkey(Filename);
52345236 if Pos('\', Filename) = 0 then // assuming we load a snippet
5235- Filename := AppSettings.DirnameSnippets + Filename + '.sql'
5237+ Filename := AppSettings.DirnameSnippets + Filename + FILEEXT_SNIPPET
52365238 else begin // assuming we load a file from the recent-list
52375239 p := Pos(' ', Filename) + 1;
52385240 filename := Copy(Filename, p, Length(Filename));
@@ -7750,7 +7752,7 @@ procedure TMainForm.SynMemoQueryDragDrop(Sender, Source: TObject; X,
77507752 1:
77517753 case Tree.FocusedNode.Parent.Index of
77527754 TQueryTab.HelperNodeSnippets:
7753- Text := ReadTextFile(AppSettings.DirnameSnippets + Tree.Text[Tree.FocusedNode, 0] + '.sql' , nil);
7755+ Text := ReadTextFile(AppSettings.DirnameSnippets + Tree.Text[Tree.FocusedNode, 0] + FILEEXT_SNIPPET , nil);
77547756 TQueryTab.HelperNodeHistory:
77557757 Text := '';
77567758 else begin
@@ -8512,27 +8514,59 @@ procedure TMainForm.insertFunction(Sender: TObject);
85128514end;
85138515
85148516
8517+ procedure TMainForm.menuRenameSnippetClick(Sender: TObject);
8518+ var
8519+ OldName, NewName: String;
8520+ begin
8521+ if not Assigned(QueryTabs.ActiveHelpersTree.FocusedNode) then
8522+ Exit;
8523+
8524+ OldName := QueryTabs.ActiveHelpersTree.Text[QueryTabs.ActiveHelpersTree.FocusedNode, 0];
8525+ NewName := OldName;
8526+ if InputQuery(_('Rename'), 'Rename snippet "'+OldName+'"', NewName) then
8527+ begin
8528+ Screen.Cursor := crHourGlass;
8529+ if NewName.IsEmpty then begin
8530+ Screen.Cursor := crDefault;
8531+ ErrorDialog(f_('Failed renaming %s', ['"' + OldName + '" => "' + NewName + '"']));
8532+ end
8533+ else begin
8534+ OldName := ChangeFileExt(AppSettings.DirnameSnippets + OldName, FILEEXT_SNIPPET);
8535+ NewName := ChangeFileExt(AppSettings.DirnameSnippets + NewName, FILEEXT_SNIPPET);
8536+ LogSQL(Format('Rename snippet "%s" to "%s"', [OldName, NewName]), lcDebug);
8537+ if RenameFile(OldName, NewName) then begin
8538+ // Refresh list with snippets
8539+ SetSnippetFilenames;
8540+ end else begin
8541+ Screen.Cursor := crDefault;
8542+ ErrorDialog(f_('Failed renaming %s', ['"' + OldName + '" => "' + NewName + '"']));
8543+ end;
8544+ end;
8545+ Screen.Cursor := crDefault;
8546+ end;
8547+ end;
8548+
85158549{**
85168550 Delete a snippet file
85178551}
85188552procedure TMainForm.menuDeleteSnippetClick(Sender: TObject);
85198553var
8520- snippetfile : String;
8554+ SnippetFile : String;
85218555begin
85228556 // Don't do anything if no item was selected
85238557 if not Assigned(QueryTabs.ActiveHelpersTree.FocusedNode) then
85248558 Exit;
85258559
8526- snippetfile := AppSettings.DirnameSnippets + QueryTabs.ActiveHelpersTree.Text[QueryTabs.ActiveHelpersTree.FocusedNode, 0] + '.sql' ;
8527- if MessageDialog(_('Delete snippet file?'), snippetfile , mtConfirmation, [mbOk, mbCancel]) = mrOk then
8560+ SnippetFile := AppSettings.DirnameSnippets + QueryTabs.ActiveHelpersTree.Text[QueryTabs.ActiveHelpersTree.FocusedNode, 0] + FILEEXT_SNIPPET ;
8561+ if MessageDialog(_('Delete snippet file?'), SnippetFile , mtConfirmation, [mbOk, mbCancel]) = mrOk then
85288562 begin
85298563 Screen.Cursor := crHourGlass;
8530- if DeleteFileWithUndo(snippetfile ) then begin
8564+ if DeleteFileWithUndo(SnippetFile ) then begin
85318565 // Refresh list with snippets
85328566 SetSnippetFilenames;
85338567 end else begin
85348568 Screen.Cursor := crDefault;
8535- ErrorDialog(f_('Failed deleting %s', [snippetfile ]));
8569+ ErrorDialog(f_('Failed deleting %s', [SnippetFile ]));
85368570 end;
85378571 Screen.Cursor := crDefault;
85388572 end;
@@ -8569,7 +8603,7 @@ procedure TMainForm.menuInsertAtCursorClick(Sender: TObject);
85698603}
85708604procedure TMainForm.menuLoadSnippetClick(Sender: TObject);
85718605begin
8572- QueryTabs.ActiveTab.LoadContents(AppSettings.DirnameSnippets + QueryTabs.ActiveHelpersTree.Text[QueryTabs.ActiveHelpersTree.FocusedNode, 0] + '.sql' , True, nil);
8606+ QueryTabs.ActiveTab.LoadContents(AppSettings.DirnameSnippets + QueryTabs.ActiveHelpersTree.Text[QueryTabs.ActiveHelpersTree.FocusedNode, 0] + FILEEXT_SNIPPET , True, nil);
85738607end;
85748608
85758609
@@ -14481,6 +14515,7 @@ procedure TMainForm.treeQueryHelpersContextPopup(Sender: TObject; MousePos: TPoi
1448114515 menuQueryHelpersGenerateDelete.Enabled := False;
1448214516 menuInsertAtCursor.Enabled := False;
1448314517 menuLoadSnippet.Enabled := False;
14518+ menuRenameSnippet.Enabled := False;
1448414519 menuDeleteSnippet.Enabled := False;
1448514520 menuExplore.Enabled := False;
1448614521 menuHelp.Enabled := False;
@@ -14508,6 +14543,7 @@ procedure TMainForm.treeQueryHelpersContextPopup(Sender: TObject; MousePos: TPoi
1450814543 menuInsertAtCursor.Enabled := True;
1450914544 end;
1451014545 TQueryTab.HelperNodeSnippets: begin
14546+ menuRenameSnippet.Enabled := True;
1451114547 menuDeleteSnippet.Enabled := True;
1451214548 menuInsertAtCursor.Enabled := True;
1451314549 menuLoadSnippet.Enabled := True;
0 commit comments