mirror of
https://github.com/HeidiSQL/HeidiSQL.git
synced 2026-03-13 09:24:25 +08:00
Use the same hotkey (Ctrl+S) for saving a table/trigger/... as for saving a query file. Closes #1619
This commit is contained in:
@@ -4,7 +4,7 @@ interface
|
||||
|
||||
uses
|
||||
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms,
|
||||
Vcl.Dialogs, Vcl.StdCtrls, SynEdit, SynMemo, SynRegExpr, Vcl.ComCtrls, Vcl.ExtCtrls, System.WideStrUtils,
|
||||
Vcl.Dialogs, Vcl.StdCtrls, Vcl.Menus, SynEdit, SynMemo, SynRegExpr, Vcl.ComCtrls, Vcl.ExtCtrls, System.WideStrUtils,
|
||||
apphelpers, dbconnection, dbstructures, gnugettext, extra_controls;
|
||||
|
||||
type
|
||||
@@ -81,6 +81,7 @@ begin
|
||||
'DAY_HOUR|DAY_MINUTE|DAY_SECOND|HOUR_MINUTE|HOUR_SECOND|MINUTE_SECOND');
|
||||
grpState.Items := Explode('|', 'Enable|Disable|Disable on slave');
|
||||
FMainSynMemo := SynMemoBody;
|
||||
btnSave.Hint := ShortCutToText(MainForm.actSaveSQL.ShortCut);
|
||||
end;
|
||||
|
||||
|
||||
|
||||
@@ -5023,18 +5023,37 @@ end;
|
||||
procedure TMainForm.actSaveSQLExecute(Sender: TObject);
|
||||
var
|
||||
i: Integer;
|
||||
ObjEditor: TDBObjectEditor;
|
||||
Handled: Boolean;
|
||||
begin
|
||||
if QueryTabs.ActiveTab.MemoFilename <> '' then begin
|
||||
QueryTabs.ActiveTab.SaveContents(QueryTabs.ActiveTab.MemoFilename, False);
|
||||
for i:=0 to QueryTabs.Count-1 do begin
|
||||
if QueryTabs[i] = QueryTabs.ActiveTab then
|
||||
continue;
|
||||
if QueryTabs[i].MemoFilename = QueryTabs.ActiveTab.MemoFilename then
|
||||
QueryTabs[i].Memo.Modified := True;
|
||||
Handled := False;
|
||||
if QueryTabs.HasActiveTab then begin
|
||||
// Save SQL tab contents to file
|
||||
if QueryTabs.ActiveTab.MemoFilename <> '' then begin
|
||||
QueryTabs.ActiveTab.SaveContents(QueryTabs.ActiveTab.MemoFilename, False);
|
||||
for i:=0 to QueryTabs.Count-1 do begin
|
||||
if QueryTabs[i] = QueryTabs.ActiveTab then
|
||||
continue;
|
||||
if QueryTabs[i].MemoFilename = QueryTabs.ActiveTab.MemoFilename then
|
||||
QueryTabs[i].Memo.Modified := True;
|
||||
end;
|
||||
ValidateQueryControls(Sender);
|
||||
end else
|
||||
actSaveSQLAsExecute(Sender);
|
||||
Handled := True;
|
||||
end
|
||||
else if PageControlMain.ActivePage = tabEditor then begin
|
||||
// Save table, procedure, etc.
|
||||
ObjEditor := ActiveObjectEditor;
|
||||
if Assigned(ObjEditor) and ObjEditor.Modified then begin
|
||||
ObjEditor.ApplyModifications;
|
||||
Handled := True;
|
||||
end;
|
||||
ValidateQueryControls(Sender);
|
||||
end else
|
||||
actSaveSQLAsExecute(Sender);
|
||||
end;
|
||||
if not Handled then begin
|
||||
MessageBeep(MB_ICONASTERISK);
|
||||
end;
|
||||
|
||||
end;
|
||||
|
||||
|
||||
@@ -6585,7 +6604,7 @@ var
|
||||
NotEmpty, HasSelection, HasConnection: Boolean;
|
||||
Tab: TQueryTab;
|
||||
cap: String;
|
||||
InQueryTab: Boolean;
|
||||
InQueryTab, InEditorTab: Boolean;
|
||||
Conn: TDBConnection;
|
||||
begin
|
||||
// Enable/disable TActions, according to the current window/connection state
|
||||
@@ -6604,6 +6623,7 @@ begin
|
||||
SetTabCaption(Tab.TabSheet.PageIndex, cap);
|
||||
end;
|
||||
InQueryTab := QueryTabs.HasActiveTab;
|
||||
InEditorTab := PageControlMain.ActivePage = tabEditor;
|
||||
Tab := QueryTabs.ActiveTab;
|
||||
NotEmpty := InQueryTab and (Tab.Memo.GetTextLen > 0);
|
||||
HasSelection := InQueryTab and Tab.Memo.SelAvail;
|
||||
@@ -6614,7 +6634,7 @@ begin
|
||||
actExecuteCurrentQuery.Enabled := actExecuteQuery.Enabled;
|
||||
actExplainCurrentQuery.Enabled := actExecuteQuery.Enabled and (Conn.Parameters.NetTypeGroup in [ngMySQL, ngPgSQL, ngSQLite]);
|
||||
actSaveSQLAs.Enabled := InQueryTab and NotEmpty;
|
||||
actSaveSQL.Enabled := actSaveSQLAs.Enabled and Tab.Memo.Modified;
|
||||
actSaveSQL.Enabled := (actSaveSQLAs.Enabled and Tab.Memo.Modified) or InEditorTab;
|
||||
actSaveSQLselection.Enabled := InQueryTab and HasSelection;
|
||||
actSaveSQLSnippet.Enabled := InQueryTab and NotEmpty;
|
||||
actSaveSQLSelectionSnippet.Enabled := InQueryTab and HasSelection;
|
||||
|
||||
@@ -116,6 +116,7 @@ begin
|
||||
Parameters := TRoutineParamList.Create;
|
||||
editName.MaxLength := NAME_LEN;
|
||||
FMainSynMemo := SynMemoBody;
|
||||
btnSave.Hint := ShortCutToText(MainForm.actSaveSQL.ShortCut);
|
||||
end;
|
||||
|
||||
|
||||
|
||||
@@ -255,6 +255,7 @@ begin
|
||||
FDeletedCheckConstraints.Duplicates := dupIgnore;
|
||||
editName.MaxLength := NAME_LEN;
|
||||
FAlterRestrictedMessageDisplayed := False;
|
||||
btnSave.Hint := ShortCutToText(MainForm.actSaveSQL.ShortCut);
|
||||
end;
|
||||
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ unit trigger_editor;
|
||||
interface
|
||||
|
||||
uses
|
||||
Winapi.Windows, System.SysUtils, System.Classes, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, SynEdit, SynMemo,
|
||||
Winapi.Windows, System.SysUtils, System.Classes, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Menus, SynEdit, SynMemo,
|
||||
SynCompletionProposal, SynRegExpr,
|
||||
dbconnection, dbstructures, dbstructures.mysql, apphelpers, gnugettext, Vcl.ComCtrls, extra_controls;
|
||||
|
||||
@@ -78,6 +78,7 @@ begin
|
||||
SynCompletionProposalStatement.TimerInterval := Mainform.SynCompletionProposal.TimerInterval;
|
||||
SynCompletionProposalStatement.Margin := Mainform.SynCompletionProposal.Margin;
|
||||
FMainSynMemo := SynMemoBody;
|
||||
btnSave.Hint := ShortCutToText(MainForm.actSaveSQL.ShortCut);
|
||||
end;
|
||||
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ interface
|
||||
|
||||
uses
|
||||
Winapi.Windows, System.SysUtils, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, SynEdit, SynMemo,
|
||||
Vcl.ExtCtrls,
|
||||
Vcl.ExtCtrls, Vcl.Menus,
|
||||
dbconnection, dbstructures, dbstructures.mysql, apphelpers, gnugettext, Vcl.ComCtrls, extra_controls;
|
||||
|
||||
type
|
||||
@@ -66,6 +66,7 @@ begin
|
||||
comboSecurity.Items.Add('Definer');
|
||||
comboSecurity.Items.Add('Invoker');
|
||||
FMainSynMemo := SynMemoBody;
|
||||
btnSave.Hint := ShortCutToText(MainForm.actSaveSQL.ShortCut);
|
||||
end;
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user