Add menuitem "Lookup [keyword] in SQL help" to popupQuery. Many users likely don't know that they can press F1 in SynMemoQuery/SynMemoFilter to do the same, so here's the more visible solution.

This commit is contained in:
Ansgar Becker
2007-09-12 08:31:01 +00:00
parent e5ccc0716f
commit 912c46b20c
2 changed files with 38 additions and 4 deletions

View File

@ -2434,6 +2434,15 @@ object MDIChild: TMDIChild
object N23: TMenuItem
Caption = '-'
end
object menuSQLhelp: TMenuItem
Caption = 'Lookup in SQL help ...'
ImageIndex = 96
ShortCut = 112
OnClick = menuSQLhelpClick
end
object N24: TMenuItem
Caption = '-'
end
end
object popupQueryHelpers: TPopupMenu
Images = MainForm.ImageList1

View File

@ -305,6 +305,8 @@ type
btnTableManageIndexes: TToolButton;
tlbTableLeft2: TToolBar;
btnTableInsertRecord: TToolButton;
menuSQLhelp: TMenuItem;
N24: TMenuItem;
procedure DBtreeChanging(Sender: TObject; Node: TTreeNode;
var AllowChange: Boolean);
procedure menuRenameColumnClick(Sender: TObject);
@ -491,6 +493,7 @@ type
procedure menuInsertFileAtCursorClick(Sender: TObject);
procedure menuInsertSnippetAtCursorClick(Sender: TObject);
procedure menuLoadSnippetClick(Sender: TObject);
procedure menuSQLhelpClick(Sender: TObject);
procedure RunAsyncPost(ds: TDeferDataSet);
procedure vstGetNodeDataSize(Sender: TBaseVirtualTree; var
NodeDataSize: Integer);
@ -4235,11 +4238,17 @@ procedure TMDIChild.popupQueryPopup(Sender: TObject);
var
NotInFilterMemo,
somechars : Boolean;
ActiveSynMemo : TSynMemo;
begin
// Depending which SynMemo is focused, (de-)activate some menuitems
// The popupQuery is used in both Filter- and Query-Memo
NotInFilterMemo := Not SynMemoFilter.Focused;
if NotInFilterMemo then
ActiveSynMemo := SynMemoQuery
else
ActiveSynMemo := SynMemoFilter;
MenuSetFilter.Visible := Not NotInFilterMemo;
MenuRun.Visible := NotInFilterMemo;
@ -4261,23 +4270,27 @@ begin
if NotInFilterMemo then
begin
somechars := SynMemoQuery.GetTextLen > 0;
somechars := ActiveSynMemo.GetTextLen > 0;
MenuRun.ShortCut := TextToShortCut('F9'); // Exec SQL with F9
MenuSetFilter.ShortCut := TextToShortCut('');
// Inserting file at cursor only makes sense with content
MenuInsertFileAtCursor.Enabled := somechars;
Menusave.Enabled := somechars;
MenuSaveSelectionToFile.Enabled := SynMemoQuery.SelAvail;
MenuSaveSelectionToFile.Enabled := ActiveSynMemo.SelAvail;
MenuSaveAsSnippet.Enabled := somechars;
MenuSaveSelectionAsSnippet.Enabled := SynMemoQuery.SelAvail;
MenuSaveSelectionAsSnippet.Enabled := ActiveSynMemo.SelAvail;
end
else
begin
somechars := SynMemoFilter.GetTextLen > 0;
somechars := ActiveSynMemo.GetTextLen > 0;
MenuRun.ShortCut := TextToShortCut('');
MenuSetFilter.ShortCut := TextToShortCut('F9'); // set Filter with F9
end;
MenuClear.Enabled := somechars;
menuSQLHelp.Enabled := (mysql_version >= 40100) and (ActiveSynMemo.WordAtCursor <> '');
// Insert keyword into menuitem, so it's very clear what the menuitem does
menuSQLHelp.Caption := 'Lookup "'+sstr(ActiveSynMemo.WordAtCursor,50)+'" in SQL help ...';
end;
procedure TMDIChild.popupResultGridPopup(Sender: TObject);
@ -4536,6 +4549,9 @@ begin
// LogSQL-Tab
else if SynMemoSQLLog.Focused then
keyword := SynMemoQuery.WordAtCursor
// Filter-Tab
else if SynMemoFilter.Focused then
keyword := SynMemoFilter.WordAtCursor
// Data-Tab
else if (PageControlMain.ActivePage = tabData)
and (-1 < gridData.Col)
@ -6263,6 +6279,15 @@ begin
end;
{**
Call context sensitive help from popupmenu (fx popupQuery)
}
procedure TMDIChild.menuSQLhelpClick(Sender: TObject);
begin
CallSQLHelp( Sender );
end;
end.