163
163
return it.ParentFolder.IsRoot ? (object) it.ParentSolution : (object) it.ParentFolder;
166
void OnAddFile (object sender, ProjectFileEventArgs e)
166
void OnAddFile (object sender, ProjectFileEventArgs args)
168
AddFile (e.ProjectFile, e.Project);
168
if (args.CommonProject != null && args.Count > 2 && args.SingleVirtualDirectory) {
169
ITreeBuilder tb = GetFolder (args.CommonProject, args.CommonVirtualRootDirectory);
171
tb.UpdateChildren ();
174
foreach (ProjectFileEventInfo e in args)
175
AddFile (e.ProjectFile, e.Project);
171
void OnRemoveFile (object sender, ProjectFileEventArgs e)
179
void OnRemoveFile (object sender, ProjectFileEventArgs args)
173
RemoveFile (e.ProjectFile, e.Project);
181
foreach (ProjectFileEventInfo e in args)
182
RemoveFile (e.ProjectFile, e.Project);
176
185
void AddFile (ProjectFile file, Project project)
190
string filePath = file.IsLink
191
? project.BaseDirectory.Combine (file.ProjectVirtualPath).ParentDirectory
192
: file.FilePath.ParentDirectory;
195
200
if (file.Subtype == Subtype.Directory)
196
201
data = new ProjectFolder (file.Name, project);
201
206
if (tb.MoveToObject (data))
209
string filePath = file.IsLink
210
? project.BaseDirectory.Combine (file.ProjectVirtualPath).ParentDirectory
211
: file.FilePath.ParentDirectory;
213
tb = GetFolder (project, filePath);
218
ITreeBuilder GetFolder (Project project, FilePath filePath)
220
ITreeBuilder tb = Context.GetTreeBuilder ();
204
221
if (filePath != project.BaseDirectory) {
205
if (tb.MoveToObject (new ProjectFolder (filePath, project)))
222
if (tb.MoveToObject (new ProjectFolder (filePath, project))) {
208
226
// Make sure there is a path to that folder
209
227
tb = FindParentFolderNode (filePath, project);
211
229
tb.UpdateChildren ();
214
234
if (tb.MoveToObject (project))
216
tb.UpdateChildren ();
220
240
ITreeBuilder FindParentFolderNode (string path, Project project)
270
void OnRenameFile (object sender, ProjectFileRenamedEventArgs e)
272
ITreeBuilder tb = Context.GetTreeBuilder (e.ProjectFile);
273
if (tb != null) tb.Update ();
276
void OnProjectModified (object sender, SolutionItemModifiedEventArgs e)
278
if (e.Hint == "References" || e.Hint == "Files")
280
ITreeBuilder tb = Context.GetTreeBuilder (e.SolutionItem);
282
if (e.Hint == "BaseDirectory" || e.Hint == "TargetFramework")
289
void OnFilePropertyChanged (object sender, ProjectFileEventArgs args)
291
ITreeBuilder tb = Context.GetTreeBuilder (args.Project);
292
if (tb != null) tb.UpdateAll ();
290
void OnRenameFile (object sender, ProjectFileRenamedEventArgs args)
292
foreach (ProjectFileEventInfo e in args) {
293
ITreeBuilder tb = Context.GetTreeBuilder (e.ProjectFile);
294
if (tb != null) tb.Update ();
298
void OnProjectModified (object sender, SolutionItemModifiedEventArgs args)
300
foreach (SolutionItemModifiedEventInfo e in args) {
301
if (e.Hint == "References" || e.Hint == "Files")
303
ITreeBuilder tb = Context.GetTreeBuilder (e.SolutionItem);
305
if (e.Hint == "BaseDirectory" || e.Hint == "TargetFramework")
313
void OnFilePropertyChanged (object sender, ProjectFileEventArgs e)
315
foreach (ProjectFileEventInfo args in e) {
316
ITreeBuilder tb = Context.GetTreeBuilder (args.Project);
317
if (tb != null) tb.UpdateAll ();
295
321
void IdeAppWorkspaceActiveConfigurationChanged (object sender, EventArgs e)