Browse Source

Recent project list add context menu

- Open containing folder in Explorer
- Remove from recent project list
pull/423/head
Linquize 11 years ago
parent
commit
1b8025c904
  1. 3
      data/resources/StringResources.resx
  2. 24
      src/AddIns/Misc/StartPage/Project/Src/RecentProjectsControl.xaml
  3. 15
      src/AddIns/Misc/StartPage/Project/Src/RecentProjectsControl.xaml.cs
  4. 1
      src/Main/Base/Project/Workbench/File/IRecentOpen.cs
  5. 6
      src/Main/SharpDevelop/Workbench/RecentOpen.cs

3
data/resources/StringResources.resx

@ -6972,6 +6972,9 @@ The resources files have been renamed/moved accordingly.</value> @@ -6972,6 +6972,9 @@ The resources files have been renamed/moved accordingly.</value>
<data name="StartPage.StartMenu.OpenCombineButton" xml:space="preserve">
<value>Open solution</value>
</data>
<data name="StartPage.StartMenu.RemoveRecentProject" xml:space="preserve">
<value>Remove from recent projects list</value>
</data>
<data name="StartPage.StartPageContentName" xml:space="preserve">
<value>Start Page</value>
</data>

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

@ -24,6 +24,30 @@ @@ -24,6 +24,30 @@
</TextBlock>
</DataTemplate>
</ListView.Resources>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu>
<MenuItem Header="{core:Localize OpenFileTabEventHandler.FileContainingFolderInExplorer}">
<MenuItem.Style>
<Style TargetType="MenuItem">
<EventSetter Event="Click" Handler="openContainingFolderClick" />
</Style>
</MenuItem.Style>
</MenuItem>
<MenuItem Header="{core:Localize StartPage.StartMenu.RemoveRecentProject}">
<MenuItem.Style>
<Style TargetType="MenuItem">
<EventSetter Event="Click" Handler="removeRecentProjectClick" />
</Style>
</MenuItem.Style>
</MenuItem>
</ContextMenu>
</Setter.Value>
</Setter>
</Style>
</ListView.ItemContainerStyle>
<ListView.View>
<GridView>
<core:SortableGridViewColumn

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

@ -20,6 +20,7 @@ using System; @@ -20,6 +20,7 @@ using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Threading;
@ -128,5 +129,19 @@ namespace ICSharpCode.StartPage @@ -128,5 +129,19 @@ namespace ICSharpCode.StartPage
{
new ICSharpCode.SharpDevelop.Project.Commands.CreateNewSolution().Run();
}
void openContainingFolderClick(object sender, RoutedEventArgs e)
{
RecentOpenItem item = (RecentOpenItem)lastProjectsListView.SelectedItem;
string folder = Path.GetDirectoryName(item.Path);
Process.Start("explorer", "\"" + folder + "\"");
}
void removeRecentProjectClick(object sender, RoutedEventArgs e)
{
RecentOpenItem item = (RecentOpenItem)lastProjectsListView.SelectedItem;
SD.FileService.RecentOpen.RemoveRecentProject(new FileName(item.Path));
BuildRecentProjectList();
}
}
}

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

@ -30,6 +30,7 @@ namespace ICSharpCode.SharpDevelop.Workbench @@ -30,6 +30,7 @@ namespace ICSharpCode.SharpDevelop.Workbench
void ClearRecentFiles();
void ClearRecentProjects();
void RemoveRecentProject(FileName fileName);
void AddRecentFile(FileName fileName);
void AddRecentProject(FileName fileName);
}

6
src/Main/SharpDevelop/Workbench/RecentOpen.cs

@ -83,6 +83,12 @@ namespace ICSharpCode.SharpDevelop @@ -83,6 +83,12 @@ namespace ICSharpCode.SharpDevelop
recentProjects.Clear();
properties.SetList("Projects", recentProjects);
}
public void RemoveRecentProject(FileName name)
{
recentProjects.Remove(name);
properties.SetList("Projects", recentProjects);
}
public void AddRecentProject(FileName name)
{

Loading…
Cancel
Save