Skip to content

Commit 4200cad

Browse files
csbubblesFastNinja
authored andcommitted
Possibility to hide Add in window after action (#1)
- Added Configuration option - Hide Window after each action (default is false) When enabled Hunting Dog will hide its window after each successful action
1 parent 9068278 commit 4200cad

File tree

6 files changed

+49
-2
lines changed

6 files changed

+49
-2
lines changed

HuntingDog/DogConfig/Config.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ public DogConfig()
4141
AlterOrCreate = EAlterOrCreate.Create;
4242

4343
LimitSearch = 500;
44+
45+
HideAfterAction = false;
4446
}
4547

4648
[Category("SELECT")]
@@ -138,6 +140,20 @@ public string LaunchingHotKey
138140
}
139141
}
140142

143+
private bool _hideAfterAction = false;
144+
145+
[Category("GENERAL")]
146+
[DisplayName("Hide window after action")]
147+
[Description("Hide Hunting Dog window after action is completed.")]
148+
public bool HideAfterAction
149+
{
150+
get { return _hideAfterAction; }
151+
set
152+
{
153+
_hideAfterAction = value;
154+
}
155+
}
156+
141157
[Category("MODIFY")]
142158
[DisplayName("Inspect Body using")]
143159
[Description("When inspecting Procedure, View or Function body use ALTER or CREATE script")]

HuntingDog/DogEngine/IStudioController.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ namespace HuntingDog.DogEngine
77
public interface IStudioController
88
{
99
event Action ShowYourself;
10+
event Action HideYourself;
1011

1112
// fire when new server is connected/disconnected
1213
event Action<List<IServer>> OnServersAdded;

HuntingDog/DogEngine/Impl/StudioController.cs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ public sealed class StudioController : IStudioController
1919
{
2020
public event Action ShowYourself;
2121

22+
public event Action HideYourself;
23+
2224
public event Action<List<IServer>> OnServersAdded;
2325

2426
public event Action<List<IServer>> OnServersRemoved;
@@ -122,6 +124,7 @@ void IStudioController.NavigateObject(IServer server, Entity entityObject)
122124
{
123125
var srv = this.Servers[server];
124126
manager.SelectSMOObjectInObjectExplorer(entityObject.InternalObject as ScriptSchemaObjectBase, srv.Connection);
127+
ForceHideYourselfIfNeeded();
125128
}
126129
catch (Exception ex)
127130
{
@@ -316,12 +319,22 @@ public void ForceShowYourself()
316319
}
317320
}
318321

322+
public void ForceHideYourselfIfNeeded()
323+
{
324+
if (HideYourself != null)
325+
{
326+
if (_cfg.HideAfterAction)
327+
HideYourself();
328+
}
329+
}
330+
319331
public void ModifyFunction(IServer server, Entity entityObject)
320332
{
321333
this.SafeRun(() =>
322334
{
323335
var serverInfo = GetServer(server);
324336
ManagementStudioController.OpenFunctionForModification(entityObject.InternalObject as UserDefinedFunction, serverInfo.Connection,_cfg.AlterOrCreate);
337+
ForceHideYourselfIfNeeded();
325338
}, "ModifyFunction failed - " + GetSafeEntityObject(entityObject));
326339
}
327340

@@ -331,6 +344,7 @@ public void ModifyView(IServer server , Entity entityObject)
331344
{
332345
var serverInfo = GetServer(server);
333346
ManagementStudioController.ModifyView(entityObject.InternalObject as View, serverInfo.Connection,_cfg.AlterOrCreate);
347+
ForceHideYourselfIfNeeded();
334348
}, "ModifyView failed - " + GetSafeEntityObject(entityObject));
335349
}
336350

@@ -340,6 +354,7 @@ public void ModifyProcedure(IServer server, Entity entityObject)
340354
{
341355
var serverInfo = GetServer(server);
342356
ManagementStudioController.OpenStoredProcedureForModification(entityObject.InternalObject as StoredProcedure, serverInfo.Connection,_cfg.AlterOrCreate);
357+
ForceHideYourselfIfNeeded();
343358
}, "ModifyProcedure failed - " + GetSafeEntityObject(entityObject));
344359
}
345360

@@ -350,6 +365,7 @@ public void SelectFromView(IServer server, Entity entityObject)
350365
var serverInfo = GetServer(server);
351366
ManagementStudioController.SelectFromView(entityObject.InternalObject as View, serverInfo.Connection, _cfg.SelectTopX,_cfg.IncludeAllColumns,_cfg.AddWhereClauseFor,_cfg.AddNoLock);
352367

368+
ForceHideYourselfIfNeeded();
353369
}, "SelectFromView failed - " + GetSafeEntityObject(entityObject));
354370
}
355371

@@ -359,6 +375,7 @@ public void ExecuteProcedure(IServer server, Entity entityObject)
359375
{
360376
var serverInfo = GetServer(server);
361377
ManagementStudioController.ExecuteStoredProc(entityObject.InternalObject as StoredProcedure, serverInfo.Connection);
378+
ForceHideYourselfIfNeeded();
362379
}, "ExecuteProcedure failed - " + GetSafeEntityObject(entityObject));
363380
}
364381

@@ -368,6 +385,7 @@ public void ExecuteFunction(IServer server, Entity entityObject)
368385
{
369386
var serverInfo = GetServer(server);
370387
ManagementStudioController.ExecuteFunction(entityObject.InternalObject as UserDefinedFunction, serverInfo.Connection);
388+
ForceHideYourselfIfNeeded();
371389
}, "ExecuteProcedure failed - " + GetSafeEntityObject(entityObject));
372390
}
373391

@@ -382,6 +400,7 @@ public void ScriptTable(IServer server, Entity entityObject)
382400
{
383401
var serverInfo = GetServer(server);
384402
ManagementStudioController.ScriptTable(entityObject.InternalObject as Table, serverInfo.Connection, _cfg.ScriptIndexes, _cfg.ScriptForeignKeys,_cfg.ScriptTriggers);
403+
ForceHideYourselfIfNeeded();
385404
}, "ScriptTable - " + GetSafeEntityObject(entityObject));
386405
}
387406

@@ -391,6 +410,7 @@ public void SelectFromTable(IServer server, Entity entityObject)
391410
{
392411
var serverInfo = GetServer(server);
393412
ManagementStudioController.SelectFromTable(entityObject.InternalObject as Table, serverInfo.Connection, _cfg.SelectTopX,_cfg.IncludeAllColumns,_cfg.AddWhereClauseFor, _cfg.AddNoLock, _cfg.OrderBy);
413+
ForceHideYourselfIfNeeded();
394414
}, "SelectFromTable - " + GetSafeEntityObject(entityObject));
395415
}
396416

@@ -400,6 +420,7 @@ public void EditTableData(IServer server, Entity entityObject)
400420
{
401421
var serverInfo = GetServer(server);
402422
manager.OpenTable2(entityObject.InternalObject as Table, serverInfo.Connection, serverInfo.Server);
423+
ForceHideYourselfIfNeeded();
403424
}, "EditTableData - " + GetSafeEntityObject(entityObject));
404425
}
405426

@@ -409,6 +430,7 @@ public void DesignTable(IServer server, Entity entityObject)
409430
{
410431
var serverInfo = GetServer(server);
411432
ManagementStudioController.DesignTable(entityObject.InternalObject as Table, serverInfo.Connection);
433+
ForceHideYourselfIfNeeded();
412434
}, "DesignTable - " + GetSafeEntityObject(entityObject));
413435
}
414436

HuntingDog/DogFace/Face.xaml.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,7 @@ private void UserControl_Loaded(Object sender, RoutedEventArgs e)
196196
StudioController.OnServersAdded += StudioController_OnServersAdded;
197197
StudioController.OnServersRemoved += StudioController_OnServersRemoved;
198198
StudioController.ShowYourself += new System.Action(StudioController_ShowYourself);
199+
StudioController.HideYourself += new System.Action(StudioController_HideYourself);
199200
ReloadServers();
200201

201202
ResultsFontSize = _cfg.FontSize;
@@ -280,6 +281,11 @@ void StudioController_ShowYourself()
280281
txtSearch.Focus();
281282
}
282283

284+
void StudioController_HideYourself()
285+
{
286+
Connect._addInCreater.SearchWindow.Visible = false;
287+
}
288+
283289
void StudioController_OnServersAdded(List<IServer> listAdded)
284290
{
285291
log.Info("Server added: " + ((listAdded.Count) > 0 ? listAdded[0].ServerName : String.Empty));

HuntingDog/Engine/Connect.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public void OnStartupComplete(ref Array custom)
6969
}
7070

7171

72-
static HuntingDog.DogEngine.AddinCreater _addInCreater = new HuntingDog.DogEngine.AddinCreater();
72+
internal static HuntingDog.DogEngine.AddinCreater _addInCreater = new HuntingDog.DogEngine.AddinCreater();
7373

7474
/// <summary>Implements the OnConnection method of the IDTExtensibility2 interface. Receives notification that the Add-in is being loaded.</summary>
7575
/// <param term='application'>Root object of the host application.</param>
@@ -318,4 +318,4 @@ public void OnBeginShutdown(ref Array custom)
318318

319319
//private DTE2 _applicationObject;
320320
}
321-
}
321+
}

WinForms/FakeStudioController.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -348,6 +348,8 @@ public void DesignTable(IServer server, HuntingDog.DogEngine.Entity entityObject
348348

349349
public event Action ShowYourself;
350350

351+
public event Action HideYourself;
352+
351353
public void ConnectNewServer()
352354
{
353355
if (OnAction != null)

0 commit comments

Comments
 (0)