Skip to content
This repository was archived by the owner on Oct 16, 2020. It is now read-only.

Commit b214b35

Browse files
Merge pull request #423 from linquize/recentlist-contextmenu
Recent project list add context menu
2 parents 43ee1d9 + 1b8025c commit b214b35

5 files changed

Lines changed: 49 additions & 0 deletions

File tree

data/resources/StringResources.resx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6972,6 +6972,9 @@ The resources files have been renamed/moved accordingly.</value>
69726972
<data name="StartPage.StartMenu.OpenCombineButton" xml:space="preserve">
69736973
<value>Open solution</value>
69746974
</data>
6975+
<data name="StartPage.StartMenu.RemoveRecentProject" xml:space="preserve">
6976+
<value>Remove from recent projects list</value>
6977+
</data>
69756978
<data name="StartPage.StartPageContentName" xml:space="preserve">
69766979
<value>Start Page</value>
69776980
</data>

src/AddIns/Misc/StartPage/Project/Src/RecentProjectsControl.xaml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,30 @@
2424
</TextBlock>
2525
</DataTemplate>
2626
</ListView.Resources>
27+
<ListView.ItemContainerStyle>
28+
<Style TargetType="ListViewItem">
29+
<Setter Property="ContextMenu">
30+
<Setter.Value>
31+
<ContextMenu>
32+
<MenuItem Header="{core:Localize OpenFileTabEventHandler.FileContainingFolderInExplorer}">
33+
<MenuItem.Style>
34+
<Style TargetType="MenuItem">
35+
<EventSetter Event="Click" Handler="openContainingFolderClick" />
36+
</Style>
37+
</MenuItem.Style>
38+
</MenuItem>
39+
<MenuItem Header="{core:Localize StartPage.StartMenu.RemoveRecentProject}">
40+
<MenuItem.Style>
41+
<Style TargetType="MenuItem">
42+
<EventSetter Event="Click" Handler="removeRecentProjectClick" />
43+
</Style>
44+
</MenuItem.Style>
45+
</MenuItem>
46+
</ContextMenu>
47+
</Setter.Value>
48+
</Setter>
49+
</Style>
50+
</ListView.ItemContainerStyle>
2751
<ListView.View>
2852
<GridView>
2953
<core:SortableGridViewColumn

src/AddIns/Misc/StartPage/Project/Src/RecentProjectsControl.xaml.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
using System.Collections.Generic;
2121
using System.Collections.ObjectModel;
2222
using System.ComponentModel;
23+
using System.Diagnostics;
2324
using System.IO;
2425
using System.Linq;
2526
using System.Threading;
@@ -128,5 +129,19 @@ void newSolutionClick(object sender, RoutedEventArgs e)
128129
{
129130
new ICSharpCode.SharpDevelop.Project.Commands.CreateNewSolution().Run();
130131
}
132+
133+
void openContainingFolderClick(object sender, RoutedEventArgs e)
134+
{
135+
RecentOpenItem item = (RecentOpenItem)lastProjectsListView.SelectedItem;
136+
string folder = Path.GetDirectoryName(item.Path);
137+
Process.Start("explorer", "\"" + folder + "\"");
138+
}
139+
140+
void removeRecentProjectClick(object sender, RoutedEventArgs e)
141+
{
142+
RecentOpenItem item = (RecentOpenItem)lastProjectsListView.SelectedItem;
143+
SD.FileService.RecentOpen.RemoveRecentProject(new FileName(item.Path));
144+
BuildRecentProjectList();
145+
}
131146
}
132147
}

src/Main/Base/Project/Workbench/File/IRecentOpen.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ public interface IRecentOpen
3030

3131
void ClearRecentFiles();
3232
void ClearRecentProjects();
33+
void RemoveRecentProject(FileName fileName);
3334
void AddRecentFile(FileName fileName);
3435
void AddRecentProject(FileName fileName);
3536
}

src/Main/SharpDevelop/Workbench/RecentOpen.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,12 @@ public void ClearRecentProjects()
8383
recentProjects.Clear();
8484
properties.SetList("Projects", recentProjects);
8585
}
86+
87+
public void RemoveRecentProject(FileName name)
88+
{
89+
recentProjects.Remove(name);
90+
properties.SetList("Projects", recentProjects);
91+
}
8692

8793
public void AddRecentProject(FileName name)
8894
{

0 commit comments

Comments
 (0)