Skip to content
This repository was archived by the owner on Dec 5, 2024. It is now read-only.

Commit 1818a69

Browse files
Some refactoring and some changes that don't work yet
1 parent 627ae7e commit 1818a69

File tree

4 files changed

+70
-132
lines changed

4 files changed

+70
-132
lines changed

src/UnityExtension/Assets/Editor/GitHub.Unity/UI/BranchesView.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ private void HandleRepositoryBranchChangeEvent(string obj)
110110
public override void Refresh()
111111
{
112112
base.Refresh();
113-
var historyView = ((Window)Parent).HistoryTab;
113+
var historyView = ((Window)Parent).HistoryView;
114114

115115
#if ENABLE_BROADMODE
116116
if (historyView.BroadMode)
@@ -131,7 +131,7 @@ public void RefreshEmbedded()
131131

132132
public override void OnGUI()
133133
{
134-
var historyView = ((Window)Parent).HistoryTab;
134+
var historyView = ((Window)Parent).HistoryView;
135135

136136
#if ENABLE_BROADMODE
137137
if (historyView.BroadMode)

src/UnityExtension/Assets/Editor/GitHub.Unity/UI/HistoryView.cs

Lines changed: 2 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ public override void Refresh()
109109
#if ENABLE_BROADMODE
110110
if (broadMode)
111111
{
112-
((Window)Parent).BranchesTab.RefreshEmbedded();
112+
((Window)Parent).Branches.RefreshEmbedded();
113113
}
114114
#endif
115115
}
@@ -125,12 +125,6 @@ public override void OnSelectionChange()
125125

126126
public override void OnGUI()
127127
{
128-
if (!HasRepository)
129-
{
130-
DoOfferToInitializeRepositoryGUI();
131-
return;
132-
}
133-
134128
#if ENABLE_BROADMODE
135129
if (broadMode)
136130
OnBroadGUI();
@@ -156,7 +150,7 @@ public void OnBroadGUI()
156150
GUILayout.MaxWidth(Mathf.Max(Styles.BroadModeBranchesMinWidth, Position.width * Styles.BroadModeBranchesRatio))
157151
);
158152
{
159-
((Window)Parent).BranchesTab.OnEmbeddedGUI();
153+
((Window)Parent).Branches.OnEmbeddedGUI();
160154
}
161155
GUILayout.EndVertical();
162156
GUILayout.BeginVertical();
@@ -270,66 +264,6 @@ private void MaybeUpdateData()
270264
}
271265
}
272266

273-
private void DoOfferToInitializeRepositoryGUI()
274-
{
275-
var headerRect = EditorGUILayout.BeginHorizontal(Styles.HeaderBoxStyle);
276-
{
277-
GUILayout.Space(5);
278-
GUILayout.BeginVertical(GUILayout.Width(16));
279-
{
280-
GUILayout.Space(5);
281-
282-
var iconRect = GUILayoutUtility.GetRect(new GUIContent(Styles.BigLogo), GUIStyle.none, GUILayout.Height(20), GUILayout.Width(20));
283-
iconRect.y = headerRect.center.y - (iconRect.height / 2);
284-
GUI.DrawTexture(iconRect, Styles.BigLogo, ScaleMode.ScaleToFit);
285-
286-
GUILayout.Space(5);
287-
}
288-
GUILayout.EndVertical();
289-
290-
GUILayout.Space(5);
291-
292-
GUILayout.BeginVertical();
293-
{
294-
var headerContent = new GUIContent(NoRepoTitle);
295-
var headerTitleRect = GUILayoutUtility.GetRect(headerContent, Styles.HeaderTitleStyle);
296-
headerTitleRect.y = headerRect.center.y - (headerTitleRect.height / 2);
297-
298-
GUI.Label(headerTitleRect, headerContent, Styles.HeaderTitleStyle);
299-
}
300-
GUILayout.EndVertical();
301-
}
302-
EditorGUILayout.EndHorizontal();
303-
304-
GUILayout.BeginVertical(Styles.GenericBoxStyle);
305-
{
306-
GUILayout.FlexibleSpace();
307-
308-
GUILayout.Label(NoRepoDescription, Styles.CenteredLabel);
309-
310-
GUILayout.BeginHorizontal();
311-
GUILayout.FlexibleSpace();
312-
313-
EditorGUI.BeginDisabledGroup(isBusy);
314-
{
315-
if (GUILayout.Button(Localization.InitializeRepositoryButtonText, "Button"))
316-
{
317-
isBusy = true;
318-
Manager.InitializeRepository()
319-
.FinallyInUI(() => isBusy = false)
320-
.Start();
321-
}
322-
}
323-
EditorGUI.EndDisabledGroup();
324-
325-
GUILayout.FlexibleSpace();
326-
GUILayout.EndHorizontal();
327-
328-
GUILayout.FlexibleSpace();
329-
}
330-
GUILayout.EndVertical();
331-
}
332-
333267
public void OnEmbeddedGUI()
334268
{
335269
// History toolbar

src/UnityExtension/Assets/Editor/GitHub.Unity/UI/InitProjectView.cs

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,16 +31,6 @@ public override void OnRepositoryChanged(IRepository oldRepository)
3131
}
3232

3333
public override void OnGUI()
34-
{
35-
DoOfferToInitializeRepositoryGUI();
36-
}
37-
38-
private void MaybeUpdateData()
39-
{
40-
isPublished = Repository != null && Repository.CurrentRemote.HasValue;
41-
}
42-
43-
private void DoOfferToInitializeRepositoryGUI()
4434
{
4535
var headerRect = EditorGUILayout.BeginHorizontal(Styles.HeaderBoxStyle);
4636
{
@@ -99,5 +89,10 @@ private void DoOfferToInitializeRepositoryGUI()
9989
}
10090
GUILayout.EndVertical();
10191
}
92+
93+
private void MaybeUpdateData()
94+
{
95+
isPublished = Repository != null && Repository.CurrentRemote.HasValue;
96+
}
10297
}
10398
}

src/UnityExtension/Assets/Editor/GitHub.Unity/UI/Window.cs

Lines changed: 61 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@ class Window : BaseWindow
2929
[NonSerialized] private double notificationClearTime = -1;
3030

3131
[SerializeField] private SubTab activeTab = SubTab.History;
32-
[SerializeField] private InitProjectView initProjectTab = new InitProjectView();
33-
[SerializeField] private BranchesView branchesTab = new BranchesView();
34-
[SerializeField] private ChangesView changesTab = new ChangesView();
35-
[SerializeField] private HistoryView historyTab = new HistoryView();
36-
[SerializeField] private SettingsView settingsTab = new SettingsView();
32+
[SerializeField] private InitProjectView initProjectView = new InitProjectView();
33+
[SerializeField] private BranchesView branchesView = new BranchesView();
34+
[SerializeField] private ChangesView changesView = new ChangesView();
35+
[SerializeField] private HistoryView historyView = new HistoryView();
36+
[SerializeField] private SettingsView settingsView = new SettingsView();
3737

3838
[SerializeField] private string repoBranch;
3939
[SerializeField] private string repoUrl;
@@ -75,10 +75,11 @@ public override void Initialize(IApplicationManager applicationManager)
7575
{
7676
base.Initialize(applicationManager);
7777

78-
HistoryTab.InitializeView(this);
79-
ChangesTab.InitializeView(this);
80-
BranchesTab.InitializeView(this);
81-
SettingsTab.InitializeView(this);
78+
HistoryView.InitializeView(this);
79+
ChangesView.InitializeView(this);
80+
BranchesView.InitializeView(this);
81+
SettingsView.InitializeView(this);
82+
InitProjectView.InitializeView(this);
8283
}
8384

8485
public override void OnEnable()
@@ -92,15 +93,15 @@ public override void OnEnable()
9293
// Set window title
9394
titleContent = new GUIContent(Title, Styles.SmallLogo);
9495

95-
if (ActiveTab != null)
96-
ActiveTab.OnEnable();
96+
if (ActiveView != null)
97+
ActiveView.OnEnable();
9798
}
9899

99100
public override void OnDisable()
100101
{
101102
base.OnDisable();
102-
if (ActiveTab != null)
103-
ActiveTab.OnDisable();
103+
if (ActiveView != null)
104+
ActiveView.OnDisable();
104105
}
105106

106107
public override void OnDataUpdate()
@@ -121,8 +122,8 @@ public override void OnDataUpdate()
121122
}
122123
}
123124

124-
if (ActiveTab != null)
125-
ActiveTab.OnDataUpdate();
125+
if (ActiveView != null)
126+
ActiveView.OnDataUpdate();
126127
}
127128

128129
public override void OnRepositoryChanged(IRepository oldRepository)
@@ -132,22 +133,22 @@ public override void OnRepositoryChanged(IRepository oldRepository)
132133
DetachHandlers(oldRepository);
133134
AttachHandlers(Repository);
134135

135-
if (ActiveTab != null)
136-
ActiveTab.OnRepositoryChanged(oldRepository);
136+
if (ActiveView != null)
137+
ActiveView.OnRepositoryChanged(oldRepository);
137138
}
138139

139140
public override void OnSelectionChange()
140141
{
141142
base.OnSelectionChange();
142-
if (ActiveTab != null)
143-
ActiveTab.OnSelectionChange();
143+
if (ActiveView != null)
144+
ActiveView.OnSelectionChange();
144145
}
145146

146147
public override void Refresh()
147148
{
148149
base.Refresh();
149-
if (ActiveTab != null)
150-
ActiveTab.Refresh();
150+
if (ActiveView != null)
151+
ActiveView.Refresh();
151152
Repaint();
152153
}
153154

@@ -158,14 +159,13 @@ public override void OnUI()
158159
if (HasRepository)
159160
{
160161
DoHeaderGUI();
162+
DoToolbarGUI();
161163
}
162164

163-
DoToolbarGUI();
164-
165165
// GUI for the active tab
166-
if (ActiveTab != null)
166+
if (ActiveView != null)
167167
{
168-
ActiveTab.OnGUI();
168+
ActiveView.OnGUI();
169169
}
170170
}
171171

@@ -210,8 +210,10 @@ private bool MaybeUpdateData(out string repoRemote)
210210
if (Repository.CurrentRemote.HasValue)
211211
repoRemote = Repository.CurrentRemote.Value.Name;
212212
}
213-
else if (!HasRepository)
213+
else
214214
{
215+
216+
activeTab = SubTab.InitProject;
215217
repoBranch = null;
216218
repoUrl = null;
217219
}
@@ -238,7 +240,6 @@ private void DetachHandlers(IRepository repository)
238240
repository.OnRepositoryInfoChanged -= RefreshOnMainThread;
239241
}
240242

241-
242243
private void SwitchView(Subview from, Subview to)
243244
{
244245
GUI.FocusControl(null);
@@ -281,23 +282,17 @@ private void DoToolbarGUI()
281282
SubTab tab = activeTab;
282283
EditorGUI.BeginChangeCheck();
283284
{
284-
if (HasRepository)
285-
{
286-
tab = TabButton(SubTab.Changes, ChangesTitle, tab);
287-
tab = TabButton(SubTab.History, HistoryTitle, tab);
288-
tab = TabButton(SubTab.Branches, BranchesTitle, tab);
289-
}
290-
else
291-
{
292-
tab = TabButton(SubTab.History, HistoryTitle, tab);
293-
}
285+
tab = TabButton(SubTab.Changes, ChangesTitle, tab);
286+
tab = TabButton(SubTab.History, HistoryTitle, tab);
287+
tab = TabButton(SubTab.Branches, BranchesTitle, tab);
294288
tab = TabButton(SubTab.Settings, SettingsTitle, tab);
295289
}
290+
296291
if (EditorGUI.EndChangeCheck())
297292
{
298-
var from = ActiveTab;
293+
var from = ActiveView;
299294
activeTab = tab;
300-
SwitchView(from, ActiveTab);
295+
SwitchView(from, ActiveView);
301296
}
302297

303298
GUILayout.FlexibleSpace();
@@ -369,27 +364,32 @@ private static SubTab TabButton(SubTab tab, string title, SubTab activeTab)
369364
return GUILayout.Toggle(activeTab == tab, title, EditorStyles.toolbarButton) ? tab : activeTab;
370365
}
371366

372-
public HistoryView HistoryTab
367+
public HistoryView HistoryView
373368
{
374-
get { return historyTab; }
369+
get { return historyView; }
375370
}
376371

377-
public ChangesView ChangesTab
372+
public ChangesView ChangesView
378373
{
379-
get { return changesTab; }
374+
get { return changesView; }
380375
}
381376

382-
public BranchesView BranchesTab
377+
public BranchesView BranchesView
383378
{
384-
get { return branchesTab; }
379+
get { return branchesView; }
385380
}
386381

387-
public SettingsView SettingsTab
382+
public SettingsView SettingsView
388383
{
389-
get { return settingsTab; }
384+
get { return settingsView; }
390385
}
391386

392-
private Subview ActiveTab
387+
public InitProjectView InitProjectView
388+
{
389+
get { return InitProjectView; }
390+
}
391+
392+
private Subview ActiveView
393393
{
394394
get
395395
{
@@ -401,20 +401,29 @@ private Subview ToView(SubTab tab)
401401
{
402402
switch (tab)
403403
{
404+
case SubTab.InitProject:
405+
return initProjectView;
406+
404407
case SubTab.History:
405-
return historyTab;
408+
return historyView;
409+
406410
case SubTab.Changes:
407-
return changesTab;
411+
return changesView;
412+
408413
case SubTab.Branches:
409-
return branchesTab;
414+
return branchesView;
415+
410416
case SubTab.Settings:
417+
return settingsView;
418+
411419
default:
412-
return settingsTab;
420+
throw new ArgumentOutOfRangeException();
413421
}
414422
}
415423

416424
private enum SubTab
417425
{
426+
InitProject,
418427
History,
419428
Changes,
420429
Branches,

0 commit comments

Comments
 (0)