Skip to content

Commit a9a8212

Browse files
committed
add context menu to remove recent projects (then selected registry item or custom history item is removed)
1 parent c9b357d commit a9a8212

File tree

3 files changed

+34
-5
lines changed

3 files changed

+34
-5
lines changed

UnityLauncherPro/GetProjects.cs

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -213,8 +213,11 @@ static Project GetProjectInfo(string projectPath, bool getGitBranch = false, boo
213213
return p;
214214
}
215215

216+
// removes project from unity registry recent projects, OR if its our custom list, remove from there
216217
public static bool RemoveRecentProject(string projectPathToRemove)
217218
{
219+
bool result = false;
220+
218221
var hklm = RegistryKey.OpenBaseKey(RegistryHive.CurrentUser, RegistryView.Registry64);
219222

220223
// check each version path
@@ -254,13 +257,30 @@ public static bool RemoveRecentProject(string projectPathToRemove)
254257
{
255258
Console.WriteLine("Deleted registery item: " + valueName + " projectPath=" + projectPath);
256259
key.DeleteValue(valueName);
257-
return true;
260+
//return true;
261+
result = true;
262+
// TODO should break both loops
263+
//break;
264+
goto jumpCustomHistory;
258265
}
259266

260267
} // valid key
261268
} // each key
262269
} // for each registry root
263-
return false;
270+
271+
jumpCustomHistory:
272+
// check if its in our custom list, NOTE should only do if custom list is enabled
273+
if (Properties.Settings.Default.projectPaths.Contains(projectPathToRemove))
274+
{
275+
Properties.Settings.Default.projectPaths.Remove(projectPathToRemove);
276+
Properties.Settings.Default.Save();
277+
Console.WriteLine("Deleted recent history item: " + projectPathToRemove + " from custom list");
278+
//return true;
279+
result = true;
280+
}
281+
282+
283+
return result;
264284
} // RemoveRecentProject()
265285

266286
} // class

UnityLauncherPro/MainWindow.xaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,8 +144,8 @@
144144
<MenuItem x:Name="menuBatchBuildAndroid" Header="Android" Click="MenuBatchBuildAndroid_Click"/>
145145
<MenuItem x:Name="menuBatchBuildIOS" Header="IOS" Click="MenuBatchBuildIOS_Click"/>
146146
</MenuItem>
147-
<!--<Separator/>
148-
<MenuItem x:Name="menuRemoveProject" Header="Remove from recent list" Click="MenuRemoveProject_Click" />-->
147+
<Separator/>
148+
<MenuItem x:Name="menuRemoveProject" Header="Remove from recent list" Click="MenuRemoveProject_Click" />
149149
</ContextMenu>
150150
</DataGrid.ContextMenu>
151151

UnityLauncherPro/MainWindow.xaml.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1132,6 +1132,13 @@ private void GridRecent_PreviewKeyDown(object sender, KeyEventArgs e)
11321132
var proc = Tools.LaunchProject(proj);
11331133
//ProcessHandler.Add(proj, proc);
11341134
break;
1135+
case Key.Delete:
1136+
// // TODO if have enabled deleting projects in settings, NOTE: this would then require undo also (if accidentally delete projects from list with few keypresses, the context menu is less accident prone)
1137+
// // if edit mode, dont override keys
1138+
if (IsEditingCell(gridRecent) == true) return;
1139+
e.Handled = true;
1140+
// MenuRemoveProject_Click(null, null);
1141+
break;
11351142
default:
11361143
break;
11371144
}
@@ -2312,7 +2319,7 @@ private void CmbPlatformSelection_DropDownClosed(object sender, EventArgs e)
23122319
var cmb = (ComboBox)sender;
23132320
//Console.WriteLine(cmb.SelectedValue);
23142321
var p = GetSelectedProject();
2315-
if (p != null && p.TargetPlatform!=null) p.TargetPlatform = cmb.SelectedValue.ToString();
2322+
if (p != null && p.TargetPlatform != null) p.TargetPlatform = cmb.SelectedValue.ToString();
23162323
}
23172324
catch (Exception ex)
23182325
{
@@ -2607,6 +2614,8 @@ private void BtnThemeEditor_Click(object sender, RoutedEventArgs e)
26072614

26082615
private void MenuRemoveProject_Click(object sender, RoutedEventArgs e)
26092616
{
2617+
// delete if enabled in settings
2618+
26102619
var proj = GetSelectedProject();
26112620
if (proj == null) return;
26122621
if (GetProjects.RemoveRecentProject(proj.Path))

0 commit comments

Comments
 (0)