Add a popupmenu to queryhelpers which contains 2 items with shortcuts:

+ Delete [Del] (Deletes a snippetfile)
  + Help [F1] (Calls SQL help for selected keyword or function)
This commit is contained in:
Ansgar Becker
2007-07-27 22:36:19 +00:00
parent cc3fe79ecb
commit c94cde0682
2 changed files with 64 additions and 0 deletions

View File

@ -1038,6 +1038,7 @@ object MDIChild: TMDIChild
Align = alClient
DragMode = dmAutomatic
ItemHeight = 13
PopupMenu = popupQueryHelpers
TabOrder = 1
OnClick = lboxQueryHelpersClick
OnDblClick = lboxQueryHelpersDblClick
@ -2238,4 +2239,22 @@ object MDIChild: TMDIChild
Caption = '-'
end
end
object popupQueryHelpers: TPopupMenu
Images = MainForm.ImageList1
Left = 168
Top = 80
object menuDeleteSnippet: TMenuItem
Caption = 'Delete ...'
Enabled = False
ImageIndex = 23
ShortCut = 46
OnClick = menuDeleteSnippetClick
end
object menuHelp: TMenuItem
Caption = 'Help'
ImageIndex = 96
ShortCut = 112
OnClick = CallSQLHelp
end
end
end

View File

@ -294,6 +294,9 @@ type
menuSaveSelectionToFile: TMenuItem;
menuSaveAsSnippet: TMenuItem;
menuSaveSelectionAsSnippet: TMenuItem;
popupQueryHelpers: TPopupMenu;
menuDeleteSnippet: TMenuItem;
menuHelp: TMenuItem;
procedure menuRenameColumnClick(Sender: TObject);
procedure ListColumnsEdited(Sender: TObject; Item: TListItem;
var S: string);
@ -480,6 +483,7 @@ type
procedure ExecuteNonQuery(SQLQuery: String);
function ExecuteQuery(query: String): TDataSet;
function CreateOrGetRemoteQueryTab(sender: THandle): THandle;
procedure menuDeleteSnippetClick(Sender: TObject);
function GetCalculatedLimit( Table: String ): Int64;
procedure menuInsertFileAtCursorClick(Sender: TObject);
procedure RunAsyncPost(ds: TDeferDataSet);
@ -5638,6 +5642,9 @@ begin
lboxQueryHelpers.Items.Clear;
// By default sorted alpabetically
lboxQueryHelpers.Sorted := True;
// By default disable all items in popupmenu, enable them when needed
menuDeleteSnippet.Enabled := False;
menuHelp.Enabled := False;
case NewTab of
0: // Cols
@ -5652,6 +5659,8 @@ begin
1: // SQL functions
begin
// State of items in popupmenu
menuHelp.Enabled := True;
for i := 0 to Length(MySQLFunctions) - 1 do
begin
// Don't display unsupported functions here
@ -5663,11 +5672,15 @@ begin
2: // SQL keywords
begin
// State of items in popupmenu
menuHelp.Enabled := True;
lboxQueryHelpers.Items := MYSQL_KEYWORDS;
end;
3: // SQL Snippets
begin
// State of items in popupmenu
menuDeleteSnippet.Enabled := True;
lboxQueryHelpers.Items := getFilesFromDir( DIRNAME_SNIPPETS, '*.sql', true );
end;
@ -5806,6 +5819,38 @@ begin
end;
{**
Delete a snippet file
}
procedure TMDIChild.menuDeleteSnippetClick(Sender: TObject);
var
snippetfile : String;
mayChange : Boolean;
begin
// Don't do anything if no item was selected
if lboxQueryHelpers.ItemIndex = -1 then
abort;
snippetfile := DIRNAME_SNIPPETS + lboxQueryHelpers.Items[ lboxQueryHelpers.ItemIndex ] + '.sql';
if MessageDlg( 'Delete snippet file? ' + CRLF + snippetfile, mtConfirmation, [mbOk, mbCancel], 0) = mrOk then
begin
Screen.Cursor := crHourGlass;
if DeleteFile( snippetfile ) then
begin
// Refresh list with snippets
mayChange := True; // Unused; satisfies callee parameter collection which is probably dictated by tabset.
tabsetQueryHelpersChange( Sender, tabsetQueryHelpers.TabIndex, mayChange );
end
else
begin
Screen.Cursor := crDefault;
MessageDlg( 'Failed deleting ' + snippetfile, mtError, [mbOK], 0 );
end;
Screen.Cursor := crDefault;
end;
end;
end.