Skip to content
This repository was archived by the owner on Jun 21, 2023. It is now read-only.

Commit f72df0c

Browse files
committed
Moved changed files tree into its own view.
Ported from #1415. Moves the PR details changed files tree into its own view so that it can be shared by the PR reviews view.
1 parent 7300754 commit f72df0c

25 files changed

+1200
-768
lines changed

src/GitHub.App/GitHub.App.csproj

Lines changed: 53 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,16 @@
6161
<HintPath>..\..\packages\Microsoft.VisualStudio.ComponentModelHost.14.0.25424\lib\net45\Microsoft.VisualStudio.ComponentModelHost.dll</HintPath>
6262
<Private>True</Private>
6363
</Reference>
64+
<Reference Include="Microsoft.VisualStudio.CoreUtility, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
65+
<HintPath>..\..\packages\Microsoft.VisualStudio.CoreUtility.14.3.25407\lib\net45\Microsoft.VisualStudio.CoreUtility.dll</HintPath>
66+
<Private>True</Private>
67+
</Reference>
68+
<Reference Include="Microsoft.VisualStudio.Editor, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
69+
<HintPath>..\..\packages\Microsoft.VisualStudio.Editor.14.3.25407\lib\net45\Microsoft.VisualStudio.Editor.dll</HintPath>
70+
<Private>True</Private>
71+
</Reference>
6472
<Reference Include="Microsoft.VisualStudio.OLE.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
65-
<HintPath>..\..\packages\Microsoft.VisualStudio.OLE.Interop.7.10.6070\lib\Microsoft.VisualStudio.OLE.Interop.dll</HintPath>
73+
<HintPath>..\..\packages\Microsoft.VisualStudio.OLE.Interop.7.10.6071\lib\Microsoft.VisualStudio.OLE.Interop.dll</HintPath>
6674
<Private>True</Private>
6775
</Reference>
6876
<Reference Include="Microsoft.VisualStudio.Shell.14.0, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
@@ -74,21 +82,60 @@
7482
<Private>True</Private>
7583
</Reference>
7684
<Reference Include="Microsoft.VisualStudio.Shell.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
77-
<HintPath>..\..\packages\Microsoft.VisualStudio.Shell.Interop.7.10.6071\lib\Microsoft.VisualStudio.Shell.Interop.dll</HintPath>
85+
<HintPath>..\..\packages\Microsoft.VisualStudio.Shell.Interop.7.10.6072\lib\net11\Microsoft.VisualStudio.Shell.Interop.dll</HintPath>
86+
<Private>True</Private>
87+
</Reference>
88+
<Reference Include="Microsoft.VisualStudio.Shell.Interop.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
89+
<EmbedInteropTypes>True</EmbedInteropTypes>
90+
<HintPath>..\..\packages\Microsoft.VisualStudio.Shell.Interop.10.0.10.0.30320\lib\net20\Microsoft.VisualStudio.Shell.Interop.10.0.dll</HintPath>
91+
<Private>True</Private>
92+
</Reference>
93+
<Reference Include="Microsoft.VisualStudio.Shell.Interop.11.0, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
94+
<EmbedInteropTypes>True</EmbedInteropTypes>
95+
<HintPath>..\..\packages\Microsoft.VisualStudio.Shell.Interop.11.0.11.0.61031\lib\net20\Microsoft.VisualStudio.Shell.Interop.11.0.dll</HintPath>
96+
<Private>True</Private>
97+
</Reference>
98+
<Reference Include="Microsoft.VisualStudio.Shell.Interop.12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
99+
<EmbedInteropTypes>True</EmbedInteropTypes>
100+
<HintPath>..\..\packages\Microsoft.VisualStudio.Shell.Interop.12.0.12.0.30111\lib\net20\Microsoft.VisualStudio.Shell.Interop.12.0.dll</HintPath>
101+
<Private>True</Private>
102+
</Reference>
103+
<Reference Include="Microsoft.VisualStudio.Shell.Interop.8.0, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
104+
<HintPath>..\..\packages\Microsoft.VisualStudio.Shell.Interop.8.0.8.0.50728\lib\net11\Microsoft.VisualStudio.Shell.Interop.8.0.dll</HintPath>
105+
<Private>True</Private>
106+
</Reference>
107+
<Reference Include="Microsoft.VisualStudio.Text.Data, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
108+
<HintPath>..\..\packages\Microsoft.VisualStudio.Text.Data.14.3.25407\lib\net45\Microsoft.VisualStudio.Text.Data.dll</HintPath>
109+
<Private>True</Private>
110+
</Reference>
111+
<Reference Include="Microsoft.VisualStudio.Text.Logic, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
112+
<HintPath>..\..\packages\Microsoft.VisualStudio.Text.Logic.14.3.25407\lib\net45\Microsoft.VisualStudio.Text.Logic.dll</HintPath>
113+
<Private>True</Private>
114+
</Reference>
115+
<Reference Include="Microsoft.VisualStudio.Text.UI, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
116+
<HintPath>..\..\packages\Microsoft.VisualStudio.Text.UI.14.3.25407\lib\net45\Microsoft.VisualStudio.Text.UI.dll</HintPath>
117+
<Private>True</Private>
118+
</Reference>
119+
<Reference Include="Microsoft.VisualStudio.Text.UI.Wpf, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
120+
<HintPath>..\..\packages\Microsoft.VisualStudio.Text.UI.Wpf.14.3.25407\lib\net45\Microsoft.VisualStudio.Text.UI.Wpf.dll</HintPath>
78121
<Private>True</Private>
79122
</Reference>
80123
<Reference Include="Microsoft.VisualStudio.TextManager.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
81-
<HintPath>..\..\packages\Microsoft.VisualStudio.TextManager.Interop.7.10.6070\lib\Microsoft.VisualStudio.TextManager.Interop.dll</HintPath>
124+
<HintPath>..\..\packages\Microsoft.VisualStudio.TextManager.Interop.7.10.6071\lib\net11\Microsoft.VisualStudio.TextManager.Interop.dll</HintPath>
82125
<Private>True</Private>
83126
</Reference>
84127
<Reference Include="Microsoft.VisualStudio.TextManager.Interop.8.0, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
85-
<HintPath>..\..\packages\Microsoft.VisualStudio.TextManager.Interop.8.0.8.0.50727\lib\Microsoft.VisualStudio.TextManager.Interop.8.0.dll</HintPath>
128+
<HintPath>..\..\packages\Microsoft.VisualStudio.TextManager.Interop.8.0.8.0.50728\lib\net11\Microsoft.VisualStudio.TextManager.Interop.8.0.dll</HintPath>
86129
<Private>True</Private>
87130
</Reference>
88131
<Reference Include="Microsoft.VisualStudio.Threading, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
89132
<SpecificVersion>False</SpecificVersion>
90133
<HintPath>..\..\packages\Microsoft.VisualStudio.Threading.14.1.131\lib\net45\Microsoft.VisualStudio.Threading.dll</HintPath>
91134
</Reference>
135+
<Reference Include="Microsoft.VisualStudio.Utilities, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
136+
<HintPath>..\..\packages\Microsoft.VisualStudio.Utilities.14.3.25407\lib\net45\Microsoft.VisualStudio.Utilities.dll</HintPath>
137+
<Private>True</Private>
138+
</Reference>
92139
<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
93140
<SpecificVersion>False</SpecificVersion>
94141
<HintPath>..\..\packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll</HintPath>
@@ -152,6 +199,7 @@
152199
<Compile Include="Models\IssueCommentModel.cs" />
153200
<Compile Include="Models\PullRequestReviewCommentModel.cs" />
154201
<Compile Include="Models\PullRequestDetailArgument.cs" />
202+
<Compile Include="SampleData\PullRequestFilesViewModelDesigner.cs" />
155203
<Compile Include="Services\EnterpriseCapabilitiesService.cs" />
156204
<Compile Include="Services\GlobalConnection.cs" />
157205
<Compile Include="Services\PullRequestEditorService.cs" />
@@ -172,6 +220,7 @@
172220
<Compile Include="ViewModels\GitHubPane\LoggedOutViewModel.cs" />
173221
<Compile Include="ViewModels\GitHubPane\NavigationViewModel.cs" />
174222
<Compile Include="ViewModels\GitHubPane\GitHubPaneViewModel.cs" />
223+
<Compile Include="ViewModels\GitHubPane\PullRequestFilesViewModel.cs" />
175224
<Compile Include="ViewModels\GitHubPane\PullRequestListViewModel.cs" />
176225
<Compile Include="ViewModels\GitHubPane\PanePageViewModelBase.cs" />
177226
<Compile Include="ViewModels\GitHubPane\PullRequestDetailViewModel.cs" />

src/GitHub.App/SampleData/PullRequestDetailViewModelDesigner.cs

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,6 @@ public class PullRequestUpdateStateDesigner : IPullRequestUpdateState
3131
[ExcludeFromCodeCoverage]
3232
public class PullRequestDetailViewModelDesigner : PanePageViewModelBase, IPullRequestDetailViewModel
3333
{
34-
private List<IPullRequestChangeNode> changedFilesTree;
35-
3634
public PullRequestDetailViewModelDesigner()
3735
{
3836
var repoPath = @"C:\Repo";
@@ -69,8 +67,7 @@ public PullRequestDetailViewModelDesigner()
6967
modelsDir.Files.Add(oldBranchModel);
7068
gitHubDir.Directories.Add(modelsDir);
7169

72-
changedFilesTree = new List<IPullRequestChangeNode>();
73-
changedFilesTree.Add(gitHubDir);
70+
Files = new PullRequestFilesViewModelDesigner();
7471
}
7572

7673
public IPullRequestModel Model { get; }
@@ -84,7 +81,7 @@ public PullRequestDetailViewModelDesigner()
8481
public bool IsCheckedOut { get; }
8582
public bool IsFromFork { get; }
8683
public string Body { get; }
87-
public IReadOnlyList<IPullRequestChangeNode> ChangedFilesTree => changedFilesTree;
84+
public IPullRequestFilesViewModel Files { get; set; }
8885
public IPullRequestCheckoutState CheckoutState { get; set; }
8986
public IPullRequestUpdateState UpdateState { get; set; }
9087
public string OperationError { get; set; }
@@ -94,12 +91,7 @@ public PullRequestDetailViewModelDesigner()
9491
public ReactiveCommand<Unit> Checkout { get; }
9592
public ReactiveCommand<Unit> Pull { get; }
9693
public ReactiveCommand<Unit> Push { get; }
97-
public ReactiveCommand<Unit> SyncSubmodules { get; }
9894
public ReactiveCommand<object> OpenOnGitHub { get; }
99-
public ReactiveCommand<object> DiffFile { get; }
100-
public ReactiveCommand<object> DiffFileWithWorkingDirectory { get; }
101-
public ReactiveCommand<object> OpenFileInWorkingDirectory { get; }
102-
public ReactiveCommand<object> ViewFile { get; }
10395

10496
public Task InitializeAsync(ILocalRepositoryModel localRepository, IConnection connection, string owner, string repo, int number) => Task.CompletedTask;
10597

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Reactive;
4+
using System.Threading.Tasks;
5+
using GitHub.Models;
6+
using GitHub.Services;
7+
using GitHub.ViewModels.GitHubPane;
8+
using ReactiveUI;
9+
10+
namespace GitHub.SampleData
11+
{
12+
public class PullRequestFilesViewModelDesigner : PanePageViewModelBase, IPullRequestFilesViewModel
13+
{
14+
public PullRequestFilesViewModelDesigner()
15+
{
16+
Items = new[]
17+
{
18+
new PullRequestDirectoryNode("src")
19+
{
20+
Files =
21+
{
22+
new PullRequestFileNode("x", "src/File1.cs", "x", PullRequestFileStatus.Added, null),
23+
new PullRequestFileNode("x", "src/File2.cs", "x", PullRequestFileStatus.Modified, null),
24+
new PullRequestFileNode("x", "src/File3.cs", "x", PullRequestFileStatus.Removed, null),
25+
new PullRequestFileNode("x", "src/File4.cs", "x", PullRequestFileStatus.Renamed, "src/Old.cs"),
26+
}
27+
}
28+
};
29+
ChangedFilesCount = 4;
30+
}
31+
32+
public int ChangedFilesCount { get; set; }
33+
public IReadOnlyList<IPullRequestChangeNode> Items { get; }
34+
public ReactiveCommand<Unit> DiffFile { get; }
35+
public ReactiveCommand<Unit> ViewFile { get; }
36+
public ReactiveCommand<Unit> DiffFileWithWorkingDirectory { get; }
37+
public ReactiveCommand<Unit> OpenFileInWorkingDirectory { get; }
38+
public ReactiveCommand<Unit> OpenFirstComment { get; }
39+
40+
public Task InitializeAsync(
41+
IPullRequestSession session,
42+
Func<IInlineCommentThreadModel, bool> commentFilter = null)
43+
{
44+
return Task.CompletedTask;
45+
}
46+
}
47+
}

0 commit comments

Comments
 (0)