Browse Source

Recent project list add context menu

- Open containing folder in Explorer
- Remove from recent project list
pull/423/head
Linquize 12 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>
<data name="StartPage.StartMenu.OpenCombineButton" xml:space="preserve"> <data name="StartPage.StartMenu.OpenCombineButton" xml:space="preserve">
<value>Open solution</value> <value>Open solution</value>
</data> </data>
<data name="StartPage.StartMenu.RemoveRecentProject" xml:space="preserve">
<value>Remove from recent projects list</value>
</data>
<data name="StartPage.StartPageContentName" xml:space="preserve"> <data name="StartPage.StartPageContentName" xml:space="preserve">
<value>Start Page</value> <value>Start Page</value>
</data> </data>

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

@ -24,6 +24,30 @@
</TextBlock> </TextBlock>
</DataTemplate> </DataTemplate>
</ListView.Resources> </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> <ListView.View>
<GridView> <GridView>
<core:SortableGridViewColumn <core:SortableGridViewColumn

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

@ -20,6 +20,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
using System.ComponentModel; using System.ComponentModel;
using System.Diagnostics;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Threading; using System.Threading;
@ -128,5 +129,19 @@ namespace ICSharpCode.StartPage
{ {
new ICSharpCode.SharpDevelop.Project.Commands.CreateNewSolution().Run(); 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
void ClearRecentFiles(); void ClearRecentFiles();
void ClearRecentProjects(); void ClearRecentProjects();
void RemoveRecentProject(FileName fileName);
void AddRecentFile(FileName fileName); void AddRecentFile(FileName fileName);
void AddRecentProject(FileName fileName); void AddRecentProject(FileName fileName);
} }

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

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

Loading…
Cancel
Save