public override void DeleteItem() { GuiBuilderWindow w = (GuiBuilderWindow)CurrentNode.DataItem; string fn = FileService.AbsoluteToRelativePath(w.Project.Project.BaseDirectory, w.SourceCodeFile); using (ConfirmWindowDeleteDialog dialog = new ConfirmWindowDeleteDialog(w.Name, fn, w.RootWidget)) { if (dialog.Run() == (int)Gtk.ResponseType.Yes) { if (dialog.DeleteFile) { ProjectFile file = w.Project.Project.GetProjectFile(w.SourceCodeFile); if (file != null) { w.Project.Project.Files.Remove(file); } } w.Project.Remove(w); w.Project.SaveProject(false); IdeApp.ProjectOperations.SaveAsync(w.Project.Project); } } }
public override void DeleteItem() { // Don't allow deleting action groups local to a window GuiBuilderWindow w = (GuiBuilderWindow)CurrentNode.GetParentDataItem(typeof(GuiBuilderWindow), false); if (w != null) { return; } Project project = (Project)CurrentNode.GetParentDataItem(typeof(Project), false); Stetic.ActionGroupInfo group = (Stetic.ActionGroupInfo)CurrentNode.DataItem; GuiBuilderProject gproject = GtkDesignInfo.FromProject(project).GuiBuilderProject; string sfile = gproject.GetSourceCodeFile(group); if (sfile != null) { using (ConfirmWindowDeleteDialog dialog = new ConfirmWindowDeleteDialog(group.Name, sfile, group)) { if (dialog.Run() == (int)Gtk.ResponseType.Yes) { if (dialog.DeleteFile) { ProjectFile file = project.GetProjectFile(sfile); if (file != null) { project.Files.Remove(file); } } gproject.RemoveActionGroup(group); gproject.SaveProject(false); IdeApp.ProjectOperations.Save(project); } } } }