private void removeFixToolStripMenuItem_Click(object sender, EventArgs e) { // remove the selected changelist from the job P4.Changelist selected = fixesLV.SelectedItems[0].Tag as P4.Changelist; try { P4.Options opts = new P4.Options(P4.FixJobsCmdFlags.Delete, -1, null); IList <P4.Fix> fixToRemove = selected.FixJobs(opts, currentJob); } catch (Exception ex) { scm.ShowException(ex); return; } attachedFixes.Remove(selected); P4FileTreeListViewItem itemToRemove = fixesLV.SelectedItems[0] as P4FileTreeListViewItem; foreach (TreeListViewItem child in itemToRemove.ChildNodes) { fixesLV.Items.Remove(child); } fixesLV.Nodes.Remove(itemToRemove); fixesLV.Items.Remove(itemToRemove); fixesLV.BuildTreeList(); }
private void addChangeToFixesLV(P4.Changelist change) { if (change != null) { ListViewItem[] dupe = fixesLV.Items.Find(change.Id.ToString(), false); if (dupe.Length == 0) { List <object> changeFields = new List <object>(); changeFields.Add(change.Id.ToString()); changeFields.Add(change.ClientId.ToString()); // check for date format if (p4Date() == true) { DateTime local = change.ModifiedDate; // we need a pref for local time, until then, don't do this: //local = TimeZone.CurrentTimeZone.ToLocalTime(local); changeFields.Add(local.ToString("yyyy/MM/dd HH:mm:ss")); } else { DateTime local = change.ModifiedDate; // we need a pref for local time, until then, don't do this: //local = TimeZone.CurrentTimeZone.ToLocalTime(local); changeFields.Add(string.Format("{0} {1}", local.ToShortDateString(), local.ToShortTimeString())); } changeFields.Add(change.OwnerName.ToString()); changeFields.Add(change.Type.ToString()); changeFields.Add(change.Description.ToString()); P4FileTreeListViewItem changeItem = new P4FileTreeListViewItem(null, null, changeFields); changeItem.Tag = change; if (change.Pending) { changeItem.CenterImageIndices.Clear(); changeItem.CenterImageIndices.Add(6); } else { changeItem.CenterImageIndices.Clear(); changeItem.CenterImageIndices.Add(15); } changeItem.Checked = true; changeItem.Name = change.Id.ToString(); FileMetaData blank = new FileMetaData(); P4FileTreeListViewItem childItem = new P4FileTreeListViewItem(changeItem, blank, changeFields); changeItem.ChildNodes.Add(childItem); changeItem.Collapse(); fixesLV.Nodes.Add(changeItem); } } fixesLV.BuildTreeList(); }
private void fixesContextMenuStrip_Opening(object sender, CancelEventArgs e) { // check to confirm that an item is selected if (fixesLV.SelectedItems != null && fixesLV.SelectedItems.Count > 0) { // check here to confirm that a changelist is the selected item P4FileTreeListViewItem selected = fixesLV.SelectedItems[0] as P4FileTreeListViewItem; P4.FileMetaData file = selected.FileData; if (selected.ParentItem == null) { P4.Changelist fix = selected.Tag as P4.Changelist; if (fix != null && fix.Jobs != null && fix.Jobs.ContainsKey(currentJob.Id)) { removeFixToolStripMenuItem.Enabled = true; removeFixToolStripMenuItem.Visible = true; diffAgainstPreviousToolStripMenuItem.Enabled = false; diffAgainstPreviousToolStripMenuItem.Visible = false; } else { e.Cancel = true; } } else if (file != null && file.HeadRev > 1) { diffAgainstPreviousToolStripMenuItem.Enabled = true; diffAgainstPreviousToolStripMenuItem.Visible = true; removeFixToolStripMenuItem.Enabled = false; removeFixToolStripMenuItem.Visible = false; } else { e.Cancel = true; } } else { e.Cancel = true; } }
private void fixesLV_BeforeExpand(object Sender, TreeListViewEventArgs args) { P4.Changelist changeToExpand = args.Node.Tag as P4.Changelist; args.Node.ChildNodes.Clear(); if ((changeToExpand.Files == null || changeToExpand.Files.Count == 0) && (changeToExpand.Jobs == null || changeToExpand.Jobs.Count == 0)) { return; } foreach (P4.FileMetaData file in changeToExpand.Files) { IList <object> fields = new List <object>(); fields.Add(file.DepotPath + "#" + file.HeadRev.ToString()); P4FileTreeListViewItem childItem = new P4FileTreeListViewItem(args.Node, file, fields); childItem.Tag = file; if (!(changeToExpand.Pending)) { childItem.LeftImageIndices.Clear(); childItem.RightImageIndices.Clear(); if (file.Action == P4.FileAction.Add || file.Action == P4.FileAction.AddInto || file.Action == P4.FileAction.Added) { childItem.CenterImageIndices.Clear(); childItem.CenterImageIndices.Add(17); //add icon } if (file.Action == P4.FileAction.None) { childItem.CenterImageIndices.Clear(); childItem.CenterImageIndices.Add(18); //archive icon } if (file.Action == P4.FileAction.Branch || file.Action == P4.FileAction.BranchFrom || file.Action == P4.FileAction.BranchInto) { childItem.CenterImageIndices.Clear(); childItem.CenterImageIndices.Add(19); //branch icon } if (file.Action == P4.FileAction.Delete || file.Action == P4.FileAction.DeleteFrom || file.Action == P4.FileAction.DeleteInto) { childItem.CenterImageIndices.Clear(); childItem.CenterImageIndices.Add(20); //delete icon } if (file.Action == P4.FileAction.Edit || file.Action == P4.FileAction.EditFrom || file.Action == P4.FileAction.EditIgnored || file.Action == P4.FileAction.EditInto) { childItem.CenterImageIndices.Clear(); childItem.CenterImageIndices.Add(21); //edit icon } if (file.Action == P4.FileAction.Integrate || file.Action == P4.FileAction.CopyFrom || file.Action == P4.FileAction.CopyInto || file.Action == P4.FileAction.MergeFrom || file.Action == P4.FileAction.MergeInto) { childItem.CenterImageIndices.Clear(); childItem.CenterImageIndices.Add(22); //integrate icon } if (file.Action == P4.FileAction.MoveAdd) { childItem.CenterImageIndices.Clear(); childItem.CenterImageIndices.Add(23); //moveadd icon } if (file.Action == P4.FileAction.MoveDelete) { childItem.CenterImageIndices.Clear(); childItem.CenterImageIndices.Add(24); //movedelete icon } if (file.Action == P4.FileAction.Purge) { childItem.CenterImageIndices.Clear(); childItem.CenterImageIndices.Add(25); //purge icon } } args.Node.ChildNodes.Add(childItem); } if (changeToExpand.Jobs != null) { foreach (KeyValuePair <string, string> job in changeToExpand.Jobs) { IList <object> fields = new List <object>(); fields.Add(job.Key); P4FileTreeListViewItem childItem = new P4FileTreeListViewItem(args.Node, null, fields); childItem.CenterImageIndices.Clear(); childItem.LeftImageIndices.Clear(); childItem.RightImageIndices.Clear(); childItem.CenterImageIndices.Add(16); //job icon args.Node.ChildNodes.Add(childItem); } } }