Skip to content

Commit

Permalink
Fix non displayed status bar message when running successive queries. C…
Browse files Browse the repository at this point in the history
…loses #186
  • Loading branch information
ansgarbecker committed Mar 18, 2018
1 parent 81f7f2f commit de0446b
Showing 1 changed file with 11 additions and 7 deletions.
18 changes: 11 additions & 7 deletions source/main.pas
Expand Up @@ -52,8 +52,10 @@ TQueryTab = class(TComponent)
private private
FMemo: TSynMemo; FMemo: TSynMemo;
FMemoFilename: String; FMemoFilename: String;
FQueryRunning: Boolean;
procedure SetMemo(Value: TSynMemo); procedure SetMemo(Value: TSynMemo);
procedure SetMemoFilename(Value: String); procedure SetMemoFilename(Value: String);
procedure SetQueryRunning(Value: Boolean);
procedure TimerLastChangeOnTimer(Sender: TObject); procedure TimerLastChangeOnTimer(Sender: TObject);
procedure TimerStatusUpdateOnTimer(Sender: TObject); procedure TimerStatusUpdateOnTimer(Sender: TObject);
procedure MemoOnChange(Sender: TObject); procedure MemoOnChange(Sender: TObject);
Expand All @@ -75,7 +77,6 @@ TQueryTab = class(TComponent)
TabSheet: TTabSheet; TabSheet: TTabSheet;
ResultTabs: TResultTabs; ResultTabs: TResultTabs;
DoProfile: Boolean; DoProfile: Boolean;
QueryRunning: Boolean;
QueryProfile: TDBQuery; QueryProfile: TDBQuery;
ProfileTime, MaxProfileTime: Extended; ProfileTime, MaxProfileTime: Extended;
LeftOffsetInMemo: Integer; LeftOffsetInMemo: Integer;
Expand All @@ -92,6 +93,7 @@ TQueryTab = class(TComponent)
property ActiveResultTab: TResultTab read GetActiveResultTab; property ActiveResultTab: TResultTab read GetActiveResultTab;
property Memo: TSynMemo read FMemo write SetMemo; property Memo: TSynMemo read FMemo write SetMemo;
property MemoFilename: String read FMemoFilename write SetMemoFilename; property MemoFilename: String read FMemoFilename write SetMemoFilename;
property QueryRunning: Boolean read FQueryRunning write SetQueryRunning;
constructor Create(AOwner: TComponent); override; constructor Create(AOwner: TComponent); override;
destructor Destroy; override; destructor Destroy; override;
end; end;
Expand Down Expand Up @@ -2693,7 +2695,6 @@ procedure TMainForm.actExecuteQueryExecute(Sender: TObject);
// Start the execution thread // Start the execution thread
Screen.Cursor := crAppStart; Screen.Cursor := crAppStart;
Tab.QueryRunning := True; Tab.QueryRunning := True;
Tab.TimerStatusUpdate.Enabled := True;
Tab.ExecutionThread := TQueryThread.Create(ActiveConnection, Batch, Tab.Number); Tab.ExecutionThread := TQueryThread.Create(ActiveConnection, Batch, Tab.Number);
end; end;


Expand Down Expand Up @@ -2723,9 +2724,6 @@ procedure TMainForm.AfterQueryExecution(Thread: TQueryThread);
ShowStatusMsg(_('Setting up result grid(s) ...')); ShowStatusMsg(_('Setting up result grid(s) ...'));
Tab := GetQueryTabByNumber(Thread.TabNumber); Tab := GetQueryTabByNumber(Thread.TabNumber);


// Disable status updates
Tab.TimerStatusUpdate.Enabled := False;

// Create result tabs // Create result tabs
for Results in Thread.Connection.GetLastResults do begin for Results in Thread.Connection.GetLastResults do begin
NewTab := TResultTab.Create(Tab); NewTab := TResultTab.Create(Tab);
Expand Down Expand Up @@ -12471,6 +12469,14 @@ procedure TQueryTab.SetMemoFilename(Value: String);
end; end;




procedure TQueryTab.SetQueryRunning(Value: Boolean);
begin
// Marker for query tab that it is currently executing and waiting for a query
FQueryRunning := Value;
TimerStatusUpdate.Enabled := Value;
end;


procedure TQueryTab.MemoOnChange(Sender: TObject); procedure TQueryTab.MemoOnChange(Sender: TObject);
var var
Node: PVirtualNode; Node: PVirtualNode;
Expand Down Expand Up @@ -12562,8 +12568,6 @@ procedure TQueryTab.TimerStatusUpdateOnTimer(Sender: TObject);
Elapsed := SecondsBetween(ExecutionThread.QueryStartedAt, Now); Elapsed := SecondsBetween(ExecutionThread.QueryStartedAt, Now);
ElapsedMsg := FormatTimeNumber(Elapsed, True); ElapsedMsg := FormatTimeNumber(Elapsed, True);
MainForm.ShowStatusMsg(ElapsedMsg + ': ' + f_('Executing %s of %s ...', [Msg, FormatNumber(ExecutionThread.Batch.Count)])); MainForm.ShowStatusMsg(ElapsedMsg + ': ' + f_('Executing %s of %s ...', [Msg, FormatNumber(ExecutionThread.Batch.Count)]));
// Fix short interval after first timer hit
TimerStatusUpdate.Interval := 1000;
end; end;




Expand Down

0 comments on commit de0446b

Please sign in to comment.