Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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();
        }
Ejemplo n.º 3
0
 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;
     }
 }
Ejemplo n.º 4
0
        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);
                }
            }
        }