@@ -23,9 +23,10 @@ class Window : BaseWindow
23
23
private const string Window_RepoBranchTooltip = "Active branch" ;
24
24
25
25
[ NonSerialized ] private double notificationClearTime = - 1 ;
26
- [ SerializeField ] private SubTab changeTab = SubTab . History ;
27
- [ SerializeField ] private SubTab activeTab = SubTab . History ;
26
+ [ SerializeField ] private SubTab changeTab = SubTab . Loading ;
27
+ [ SerializeField ] private SubTab activeTab = SubTab . Loading ;
28
28
[ SerializeField ] private InitProjectView initProjectView = new InitProjectView ( ) ;
29
+ [ SerializeField ] private LoadingView loadingView = new LoadingView ( ) ;
29
30
[ SerializeField ] private BranchesView branchesView = new BranchesView ( ) ;
30
31
[ SerializeField ] private ChangesView changesView = new ChangesView ( ) ;
31
32
[ SerializeField ] private HistoryView historyView = new HistoryView ( ) ;
@@ -39,6 +40,7 @@ class Window : BaseWindow
39
40
40
41
[ SerializeField ] private CacheUpdateEvent lastCurrentBranchAndRemoteChangedEvent ;
41
42
[ NonSerialized ] private bool currentBranchAndRemoteHasUpdate ;
43
+ [ NonSerialized ] private bool gitExecutableIsSet ;
42
44
43
45
[ MenuItem ( LaunchMenu ) ]
44
46
public static void Window_GitHub ( )
@@ -84,9 +86,20 @@ public override void Initialize(IApplicationManager applicationManager)
84
86
{
85
87
base . Initialize ( applicationManager ) ;
86
88
87
- if ( ! HasRepository && activeTab != SubTab . InitProject && activeTab != SubTab . Settings )
88
- changeTab = activeTab = SubTab . InitProject ;
89
+ gitExecutableIsSet = ! string . IsNullOrEmpty ( Environment . GitExecutablePath ) ;
90
+ if ( gitExecutableIsSet )
91
+ {
92
+ if ( ! HasRepository )
93
+ {
94
+ if ( activeTab == SubTab . Loading )
95
+ {
96
+ Logger . Trace ( "Initialze set all tabs to InitProject" ) ;
97
+ changeTab = activeTab = SubTab . InitProject ;
98
+ }
99
+ }
100
+ }
89
101
102
+ LoadingView . InitializeView ( this ) ;
90
103
HistoryView . InitializeView ( this ) ;
91
104
ChangesView . InitializeView ( this ) ;
92
105
BranchesView . InitializeView ( this ) ;
@@ -139,10 +152,28 @@ public override void OnRepositoryChanged(IRepository oldRepository)
139
152
DetachHandlers ( oldRepository ) ;
140
153
AttachHandlers ( Repository ) ;
141
154
142
- if ( Repository != null && activeTab == SubTab . InitProject )
155
+ if ( gitExecutableIsSet )
143
156
{
144
- changeTab = SubTab . History ;
145
- UpdateActiveTab ( ) ;
157
+ if ( HasRepository )
158
+ {
159
+ if ( activeTab == SubTab . InitProject )
160
+ {
161
+ Logger . Trace ( "OnRepositoryChanged set changeTab to History" ) ;
162
+
163
+ changeTab = SubTab . History ;
164
+ UpdateActiveTab ( ) ;
165
+ }
166
+ }
167
+ else
168
+ {
169
+ if ( activeTab == SubTab . Loading )
170
+ {
171
+ Logger . Trace ( "OnRepositoryChanged set changeTab to InitProject" ) ;
172
+
173
+ changeTab = SubTab . InitProject ;
174
+ UpdateActiveTab ( ) ;
175
+ }
176
+ }
146
177
}
147
178
}
148
179
@@ -165,12 +196,15 @@ public override void OnUI()
165
196
{
166
197
base . OnUI ( ) ;
167
198
168
- if ( HasRepository )
169
- {
170
- DoHeaderGUI ( ) ;
171
- }
199
+ if ( gitExecutableIsSet )
200
+ {
201
+ if ( HasRepository )
202
+ {
203
+ DoHeaderGUI ( ) ;
204
+ }
172
205
173
- DoToolbarGUI ( ) ;
206
+ DoToolbarGUI ( ) ;
207
+ }
174
208
175
209
// GUI for the active tab
176
210
if ( ActiveView != null )
@@ -370,6 +404,7 @@ private void SwitchView(Subview fromView, Subview toView)
370
404
371
405
if ( fromView != null )
372
406
fromView . OnDisable ( ) ;
407
+
373
408
toView . OnEnable ( ) ;
374
409
toView . OnDataUpdate ( ) ;
375
410
@@ -442,6 +477,8 @@ private Subview ToView(SubTab tab)
442
477
{
443
478
switch ( tab )
444
479
{
480
+ case SubTab . Loading :
481
+ return loadingView ;
445
482
case SubTab . InitProject :
446
483
return initProjectView ;
447
484
case SubTab . History :
@@ -457,6 +494,11 @@ private Subview ToView(SubTab tab)
457
494
}
458
495
}
459
496
497
+ public LoadingView LoadingView
498
+ {
499
+ get { return loadingView ; }
500
+ }
501
+
460
502
public HistoryView HistoryView
461
503
{
462
504
get { return historyView ; }
@@ -495,6 +537,7 @@ public override bool IsBusy
495
537
private enum SubTab
496
538
{
497
539
None ,
540
+ Loading ,
498
541
InitProject ,
499
542
History ,
500
543
Changes ,
0 commit comments