public void FetchChangeData() { if (ChangeDataFetched == false) { P4.Options describeOptions = new P4.ChangeCmdOptions(P4.ChangeCmdFlags.IncludeJobs); if (_changeData.Id > 0) { describeOptions = new P4.DescribeCmdOptions(P4.DescribeChangelistCmdFlags.Shelved | P4.DescribeChangelistCmdFlags.Omit, -1, -1); } P4.Changelist sc = Scm.GetChangelist(_changeData.Id, describeOptions); if (sc != null) { if ((sc.ShelvedFiles != null) && (sc.ShelvedFiles.Count > 0)) { _changeData.ShelvedFiles = sc.ShelvedFiles; } else { _changeData.ShelvedFiles = null; } if ((sc.Jobs != null) && (sc.Jobs.Count > 0)) { _changeData.Jobs = sc.Jobs; } else { _changeData.Jobs = null; } } ChangeDataFetched = true; } }
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(); }
public static string ChangeListToString(P4.Changelist change) { string line = change.Description; line = line.Replace('\r', ' '); line = line.Replace('\n', ' '); return(string.Format("{0} {1}", change.Id, line)); }
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(); }
public void SetData(P4.Changelist changeData, SwarmServer.Review reviewData) { _changeData = changeData; //_reviewData = reviewData; FileDataFetched = false; ChangeDataFetched = false; ImageIndex = (int)CenterImages.ShelvedFolder; }
public void SetData(P4.Changelist changeData, SwarmServer.Review reviewData) { _changeData = changeData; _reviewData = reviewData; FileDataFetched = false; ChangeDataFetched = false; InitSubitems(); SelectImagesFromMetaData(); }
private P4.Changelist SaveNumberedChangelist() { P4.Changelist editChange = _scm.GetChangelist(ChangeListId); IList <P4.Job> jobs = SelectedJobList; editChange.Jobs = null; if (jobs != null && jobs.Count > 0) { P4.Options fixOptions = new P4.FixJobsCmdOptions(P4.FixJobsCmdFlags.None, -1, null); P4.Connection con = _scm.Connection.Repository.Connection; editChange.initialize(con); editChange.FixJobs(jobs, fixOptions); } jobs = UnselectedJobList; editChange.Jobs = null; if (jobs != null && jobs.Count > 0) { P4.Options fixOptions = new P4.FixJobsCmdOptions(P4.FixJobsCmdFlags.Delete, -1, null); P4.Connection con = _scm.Connection.Repository.Connection; editChange.initialize(con); editChange.FixJobs(jobs, fixOptions); } if (editChange.OwnerName != _scm.Connection.User) { return(editChange); } editChange = _scm.GetChangelist(ChangeListId); editChange.Type = ChangeListType.Public; if (RestrictAccessCB.Checked == true) { editChange.Type = ChangeListType.Restricted; } editChange.Description = DescriptionTB.Text; editChange.Files = null; ChangeList = _scm.SaveSubmittedChangelist(editChange); return(editChange); }
public P4ChangeTreeListViewItem(TreeListViewItem parentItem, P4.Changelist changeData, P4ScmProvider scm, IList <object> fields) : base() { ParentItem = parentItem; Fields = fields; NodeType = nodeType.Pending; // default Scm = scm; Tag = changeData; Ours = (changeData.ClientId == Scm.Connection.Workspace); if (Ours) { P4.Options opts = new P4.Options(); if (changeData.Id > 0) { opts["-e"] = changeData.Id.ToString(); } else { opts["-e"] = "default"; NodeType.Set(nodeType.Default); } opts["-Ru"] = null; opts["-m"] = "1"; P4.FileSpec fs = new P4.FileSpec(new P4.ClientPath(@"//" + Scm.Connection.Workspace + @"/..."), null); List <P4.FileSpec> lfs = new List <P4.FileSpec>(); lfs.Add(fs); IList <P4.FileMetaData> unresolved = Scm.GetFileMetaData(lfs, opts); if ((unresolved != null) && (unresolved.Count > 0)) { NeedsResolve = true; } } _changeData = changeData; // don't call InitSubitems() or SelectImagesFromMetaData() yet if (changeData.Id > 0) { _reviewData = Scm.Connection.Swarm.IsChangelistAttachedToReview(changeData.Id); } InitSubitems(); SelectImagesFromMetaData(); }
private void browseBtn_Click(object sender, EventArgs e) { SubmittedChangelistsBrowserDlg dlg = new SubmittedChangelistsBrowserDlg(scm, "get_revision"); if (DialogResult.Cancel != dlg.ShowDialog()) { if (dlg.SelectedChangelist != null) { P4.Changelist changeToAdd = scm.GetChangelist(dlg.SelectedChangelist.Id); if (changeToAdd != null) { addChangeToFixesLV(changeToAdd); attachedFixes.Add(changeToAdd); } } } }
private void path1BrowseBtn_Click(object sender, EventArgs e) { if (specifier1stCB.SelectedIndex == 1) // changelist { string path = path1TB.Text; SubmittedChangelistsBrowserDlg dlg = new SubmittedChangelistsBrowserDlg(_scm, "diff_" + path); if (DialogResult.Cancel != dlg.ShowDialog()) { _changelistToAdd = dlg.SelectedChangelist; if (_changelistToAdd != null) { Text = _changelistToAdd.Id.ToString(); } } } if (specifier1stCB.SelectedIndex == 3) // label { LabelsBrowserDlg dlg = new LabelsBrowserDlg(); if (DialogResult.OK == dlg.ShowDialog(this)) { P4.Label label = dlg.Label; if (label != null) { path1ValueTB.Text = label.Id; } } } if (specifier1stCB.SelectedIndex == 4) // workspace { WorkspacesBrowserDlg dlg = new WorkspacesBrowserDlg(_scm, "diff_against", null, null); if (DialogResult.Cancel != dlg.ShowDialog()) { _workspaceToAdd = dlg.SelectedWorkspace; if (_workspaceToAdd != null) { path1ValueTB.Text = _workspaceToAdd.Name.ToString(); } } } }
private void browseBtn_Click(object sender, EventArgs e) { if (specifierCB.SelectedIndex == 1) // changelist { SubmittedChangelistsBrowserDlg dlg = new SubmittedChangelistsBrowserDlg(_scm, "get_revision"); if (DialogResult.Cancel != dlg.ShowDialog()) { if (dlg.SelectedChangelist != null) { _changelistToAdd = dlg.SelectedChangelist; ValueTB.Text = _changelistToAdd.Id.ToString(); } } } if (specifierCB.SelectedIndex == 3) // label { LabelsBrowserDlg dlg = new LabelsBrowserDlg(); if (DialogResult.OK == dlg.ShowDialog(this)) { P4.Label label = dlg.Label; if (label != null) { ValueTB.Text = label.Id; } } } if (specifierCB.SelectedIndex == 4) // workspace { WorkspacesBrowserDlg dlg = new WorkspacesBrowserDlg(_scm, "get_revision", null, null); if (DialogResult.Cancel != dlg.ShowDialog()) { if (dlg.SelectedWorkspace != null) { ValueTB.Text = dlg.SelectedWorkspace.Name.ToString(); } } } }
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 actionBtn_Click(object sender, EventArgs e) { previewTB.Clear(); string sourceSelection = string.Empty; if (sourceCB.Enabled) { sourceSelection = this.sourceCB.SelectedItem.ToString(); } else if (sourceTB.Enabled) { sourceSelection = this.sourceTB.Text; } P4.Stream effectiveTarget = _scm.GetStream(_target, null, null); P4.Stream effectiveSource = _scm.GetStream(sourceSelection, null, null); if (effectiveSource == null || effectiveTarget == null) { return; } if (effectiveTarget.Type == P4.StreamType.Virtual) { if (effectiveTarget.BaseParent != null) { effectiveTarget = _scm.GetStream(effectiveTarget.BaseParent.Path, null, null); } else if (effectiveTarget.Parent != null) { effectiveTarget = _scm.GetStream(effectiveTarget.Parent.Path, null, null); } } if (effectiveSource.Type == P4.StreamType.Virtual) { if (effectiveSource.BaseParent != null) { effectiveSource = _scm.GetStream(effectiveSource.BaseParent.Path, null, null); } else if (effectiveSource.Parent != null) { effectiveSource = _scm.GetStream(effectiveSource.Parent.Path, null, null); } } P4.Options opts = new P4.Options(); IList <P4.FileSpec> files = new List <P4.FileSpec>(); if ((effectiveSource.Parent != null && effectiveSource.Parent.Path == effectiveTarget.Id) || (effectiveSource.BaseParent != null && effectiveSource.BaseParent.Path == effectiveTarget.Id)) { opts["-S"] = effectiveSource.Id; } else if ((effectiveTarget.Parent != null && effectiveTarget.Parent.Path == effectiveSource.Id) || (effectiveTarget.BaseParent != null && effectiveTarget.BaseParent.Path == effectiveSource.Id)) { opts["-S"] = effectiveTarget.Id; opts["-r"] = null; } if (_action == "merge") { files = _scm.MergeFiles(opts); } else if (_action == "copy") { files = _scm.CopyFiles(opts); } P4.P4CommandResult results = _scm.Connection.Repository.Connection.LastResults; string preview = null; if (_scm.Connection.Repository.Connection.LastResults.ErrorList != null) { previewTB.Text = preview; foreach (P4.P4ClientError error in _scm.Connection.Repository.Connection.LastResults.ErrorList) { previewTB.AppendText(error.ErrorMessage); } DialogResult = DialogResult.None; return; } if (files != null) { // if there are files to merge or copy, offer // changelist selection and submit or save int count = files.Count(); string target = targetTB.Text; string action = null; string summary = string.Empty; P4.Changelist getDesc = _scm.GetChangelist(-1); string newChangeDescription = getDesc.Description; IList <P4.Changelist> changes = _scm.GetAvailibleChangelists(-1); if (count > 1) { if (_action == "merge") { summary = string.Format(Resources.P4VsProviderService_MergeSummary, count); if (newChangeDescription == null || newChangeDescription == Resources.DefaultChangeListDescription) { newChangeDescription = string.Format( Resources.P4VsProviderService_MergeChangeDescription, target); } } else if (_action == "copy") { summary = string.Format(Resources.P4VsProviderService_CopySummary, count); if (newChangeDescription == null || newChangeDescription == Resources.DefaultChangeListDescription) { newChangeDescription = string.Format( Resources.P4VsProviderService_CopyChangeDescription, target); } if (submitCopiedRB.Checked) { string[] fileStringArray = new string[count]; for (int idx = 0; idx < count; idx++) { fileStringArray[idx] = files[idx].LocalPath.Path; } _scm.SubmitFiles(newChangeDescription, null, false, fileStringArray); return; } } } else { if (_action == "merge") { summary = Resources.P4VsProviderService_Merge1Summary; if (newChangeDescription == null || newChangeDescription == Resources.DefaultChangeListDescription) { newChangeDescription = string.Format( Resources.P4VsProviderService_Merge1ChangeDescription, target); } } else if (_action == "copy") { summary = Resources.P4VsProviderService_Copy1Summary; if (newChangeDescription == null || newChangeDescription == Resources.DefaultChangeListDescription) { newChangeDescription = string.Format( Resources.P4VsProviderService_Copy1ChangeDescription, target); } if (submitCopiedRB.Checked) { _scm.SubmitFiles(newChangeDescription, null, false, files[0].LocalPath.Path); return; } } } int changeListId = -1; P4.Changelist changelist = SelectChangelistDlg.ShowChooseChangelistSubmit( summary, changes, ref newChangeDescription, out action, true, true, _scm); changeListId = changelist.Id; if (changeListId == -2) { // user hit 'No' return; } opts = new P4.Options(); if (changeListId > 0) { opts["-c"] = changeListId.ToString(); } P4.Changelist changeToSubmit = _scm.Connection.Repository.NewChangelist(); if (changeListId == -1) { // Overwrite new changelist files. If default has files in it, a new // changelist will automatically get those files. changeToSubmit.Files = files as IList <P4.FileMetaData>; changeToSubmit.Description = changelist.Description; changeToSubmit = _scm.SaveChangelist(changeToSubmit, null); opts["-c"] = changeToSubmit.Id.ToString(); changeListId = changeToSubmit.Id; } if (opts.ContainsKey("-c")) { Int32 c = Convert.ToInt32(opts["-c"]); changeToSubmit = _scm.GetChangelist(c); _scm.MoveFilesToChangeList(c, changelist.Description, files); changeListId = changeToSubmit.Id; } // done, unless submit was hit if (action == "submit") { changeToSubmit.Description = changelist.Description; if (changeListId > 0) { SubmitDlg.SubmitPendingChanglist(changeToSubmit, changeToSubmit.Files, _scm); } else { IList <string> list = new List <string>(); foreach (P4.FileSpec fs in files) { list.Add(fs.LocalPath.Path.ToString()); } SubmitDlg.SubmitFiles(list, _scm, false, changeToSubmit.Description); } } } returnedFiles = files; DialogResult = DialogResult.OK; return; }
public static int ShowChooseChangelistMove(string prompt, IList <string> files, IList <P4.Changelist> items, ref string NewChangeDescription, P4ScmProvider scm) { if (ActiveChangeList > -1) { CurrentChangeListLastUse = DateTime.Now; // NewChangeDescription = CurrentChangeDescription; return(CurrentChangeList); } SelectChangelistDlg2 dlg = new SelectChangelistDlg2(prompt, files, items); dlg.DontShowAgainCB.Enabled = false; dlg.DontShowAgainCB.Visible = false; dlg.saveToChangelistBtn.Visible = false; dlg.submitBtn.Visible = false; dlg.NewChangelistDescription = NewChangeDescription; dlg.OkBtn.Visible = true; dlg.CancelBtn.Visible = true; dlg.YesBtn1.Visible = false; dlg.NoBtn1.Visible = false; dlg.YesBtn2.Visible = false; dlg.NoBtn2.Visible = false; dlg.BtnBar.Controls.Clear(); dlg.BtnBar.Controls.Add(dlg.BtnSpacer); dlg.BtnBar.Controls.Add(dlg.OkBtn); dlg.BtnBar.Controls.Add(dlg.CancelBtn); dlg.OkBtn.Column = 1; dlg.CancelBtn.Column = 2; dlg.BtnBar.InitializeGrid(true); if (dlg.ShowDialog() == DialogResult.Cancel) { CurrentChangeList = -2; return(CurrentChangeList); } int changelistId = dlg.Result; if (changelistId == -1) { P4.Changelist newChange = scm.Connection.Repository.NewChangelist(); // Make sure files is empty. If default has files in it, a new changelist // will automatically get those files. newChange.Files = new List <P4.FileMetaData>(); newChange.Description = dlg.DescriptionTB.Text; newChange = scm.SaveChangelist(newChange, null); if (newChange != null) { return(newChange.Id); } else { return(changelistId); } } CurrentChangeListLastUse = DateTime.Now; CurrentChangeList = changelistId; return(changelistId); }
private void OkBtn_Click(object sender, EventArgs e) { int changeId = -1; if (ItemsCB.SelectedIndex >= 2) { string[] parts = ItemsCB.Text.Split(' '); if (parts.Length > 0) { int.TryParse(parts[0], out changeId); } } else if (ItemsCB.SelectedIndex == 0) { // new changelist P4.Changelist change = SccService.ScmProvider.Connection.Repository.NewChangelist(); change.Description = "Reconciled offline work"; // Make sure files is empty. If default has files in it, a new changelist // will automatically get those files. change.Files = new List <P4.FileMetaData>(); change = SccService.ScmProvider.SaveChangelist(change, null); changeId = change.Id; } // otherwise it's the default else if (ItemsCB.SelectedIndex == 1) { changeId = 0; } IList <P4.FileSpec> dlgList = new List <P4.FileSpec>(); foreach (ListViewItem item in listView1.Items) { if (item.Checked) { P4.FileSpec fs = new P4.FileSpec(); fs.LocalPath = new P4.LocalPath(item.Tag.ToString()); dlgList.Add(fs); } } foreach (ListViewItem item in listView2.Items) { if (item.Checked) { P4.FileSpec fs = new P4.FileSpec(); fs.LocalPath = new P4.LocalPath(item.Tag.ToString()); dlgList.Add(fs); } } foreach (ListViewItem item in listView3.Items) { if (item.Checked) { P4.FileSpec fs = new P4.FileSpec(); fs.LocalPath = new P4.LocalPath(item.Tag.ToString()); dlgList.Add(fs); } } // do nothing if there are no files selected on click of Reconcile if (dlgList.Count > 0) { P4.Options sFlags = new P4.Options(P4.ReconcileFilesCmdFlags.NotOpened, changeId); IList <P4.FileSpec> recList = SccService.ScmProvider.ReconcileStatus(dlgList, sFlags); SccService.ScmProvider.BroadcastChangelistUpdate(this, new P4ScmProvider.ChangelistUpdateArgs(changeId, P4ScmProvider.ChangelistUpdateArgs.UpdateType.ContentUpdate)); } this.Close(); }
public static void ShelveFiles(IList<P4.FileMetaData> files, P4.Changelist changelist, P4ScmProvider ScmProvider, bool ShowUi) { ShelveFileDlg dlg = new ShelveFileDlg(ScmProvider); bool shelvedFiles = changelist.Shelved; dlg.ChangelistId = changelist.Id; if ((files != null) && (files.Count > 0)) { List<P4.FileMetaData> linkedFiles = new List<P4.FileMetaData>(); foreach (P4.FileMetaData fmd in files) { if (fmd.MovedFile != null) { P4.FileMetaData movedFmd = ScmProvider.GetFileMetaData(fmd.MovedFile.Path); linkedFiles.Add(movedFmd); } } foreach (P4.FileMetaData fmd in linkedFiles) { files.Add(fmd); } dlg.SelectedFileList = files; } if (dlg.SelectedFileList.Count <= 0) { dlg.SelectAllCB.Checked = true; } if (!(shelvedFiles)) { dlg.ClearChangelistTB.Checked = false; dlg.ClearChangelistTB.Enabled = false; } DialogResult res = DialogResult.OK; dlg.Description = Resources.ShelveFileDlg_FilesShelvedFromDefaultChangelist; if (changelist.Id > 0) { dlg.Description = string.Format( Resources.ShelveFileDlg_FilesShelvedFromNumberedChangelist, changelist.Id); } if (ShowUi) { res = dlg.ShowDialog(); } if (res == DialogResult.Cancel) { return; } // If requested delete the existing shelved flags if ((changelist.Id > 0) && (dlg.ReplaceExistingShelvedFiles)) { if (ScmProvider.ShelveFiles(changelist.Id, null, P4.ShelveFilesCmdFlags.Delete, true, null) == false) { return; } } P4.ShelveFilesCmdFlags flags = P4.ShelveFilesCmdFlags.Force; if (dlg.DontShelveUnchangedFiles) { flags |= ShelveFilesCmdFlags.LeaveUnchanged; } // Shelve the files if (ScmProvider.ShelveFiles(changelist.Id, dlg.Description, flags, dlg.SelectedFileList) == false) { return; } // If requested, revert the files after shelving if (dlg.RevertAfterShelving) { ScmProvider.RevertFiles(false, true, null, dlg.GetSelectedFiles().ToArray()); } ScmProvider.BroadcastChangelistUpdate(null, new P4ScmProvider.ChangelistUpdateArgs(changelist.Id, P4ScmProvider.ChangelistUpdateArgs.UpdateType.ContentUpdate)); }
public void CheckoutResource(IList <string> sel) { IList <VSITEMSELECTION> nodes = SccService.SelectedNodes; IList <string> lockedFiles = new List <string>(); IList <string> lockUsers = new List <string>(); IList <string> staleFiles = new List <string>(); IList <string> checkoutFiles = new List <string>(); for (int idx = 0; idx < sel.Count; idx++) { string file = sel[idx]; bool isWildcard = file.EndsWith("...") || file.EndsWith("*"); if (isWildcard == false) { P4.FileMetaData fmd = null; if (string.IsNullOrEmpty(file) == false) { fmd = SccService.ScmProvider.Fetch(file); } if (fmd != null && fmd.HeadType.Modifiers.HasFlag(P4.FileTypeModifier.ExclusiveOpen) && fmd.OtherOpen > 0) { // Show the error for exclusive open file and continue // without adding file to list of files to checkout P4ErrorDlg.Show(Resources.P4VsProvider_ExclusiveOpenError, false, false); continue; } if ((fmd == null) || (fmd.HeadAction == P4.FileAction.Delete)) { sel.RemoveAt(idx--); continue; } if (fmd.OtherLock) { lockedFiles.Add(fmd.LocalPath.Path); string otherlocks = string.Empty; foreach (string otherLock in fmd.OtherLockUserClients) { if (string.IsNullOrEmpty(otherlocks) == false) { otherlocks += ","; } otherlocks += otherLock; } lockUsers.Add(otherlocks); } if (fmd.IsStale) { staleFiles.Add(fmd.LocalPath.Path); } } else { IList <P4.FileMetaData> fmdList = SccService.ScmProvider.GetFileMetaData(null, file); foreach (P4.FileMetaData fmd in fmdList) { if (fmd.OtherLock) { lockedFiles.Add(fmd.LocalPath.Path); string otherlocks = string.Empty; foreach (string otherLock in fmd.OtherLockUserClients) { if (string.IsNullOrEmpty(otherlocks) == false) { otherlocks += ","; } otherlocks += otherLock; } lockUsers.Add(otherlocks); } if (fmd.IsStale) { staleFiles.Add(fmd.LocalPath.Path); } } } checkoutFiles.Add(file); } if ((lockedFiles != null) && (lockedFiles.Count > 0)) { string lockWarning = Resources.WarningStyle_Locked_Prompt; if (FileListWarningDlg.Show(lockedFiles, lockUsers, FileListWarningDlg.WarningStyle.Locked) == DialogResult.Cancel) { return; } } if ((staleFiles != null) && (staleFiles.Count > 0)) { DialogResult answer = FileListWarningDlg.Show(staleFiles, null, FileListWarningDlg.WarningStyle.GetLatest); if (answer == DialogResult.Cancel) { return; } if (answer == DialogResult.OK) { if (!SccService.SyncFiles(null, staleFiles)) { return; } } } if (checkoutFiles.Count < 1) { return; } P4.Changelist getDesc = SccService.ScmProvider.GetChangelist(-1); if (getDesc == null) { return; } string newChangeDescription = getDesc.Description; if (newChangeDescription == Resources.DefaultChangeListDescription) { newChangeDescription = Resources.P4VsProvider_CheckoutFilesDefaultChangelistDescription; } IList <P4.Changelist> changes = SccService.ScmProvider.GetAvailibleChangelists(-1); int changeListId = -1; string prompt = Resources.P4VsProvider_CheckoutFilePrompt; if (sel.Count >= 2) { prompt = Resources.P4VsProvider_CheckoutFilesPrompt; } changeListId = SelectChangelistDlg2.ShowChooseChangelistYesNo(prompt, checkoutFiles, changes, ref newChangeDescription); if (changeListId < -1) { // user hit cancel return; } if (string.IsNullOrEmpty(newChangeDescription)) { newChangeDescription = Resources.P4VsProvider_CheckoutFilesDefaultChangelistDescription; } SelectChangelistDlg.CurrentChangeList = SccService.CheckoutFiles(sel, changeListId, newChangeDescription); // now refresh the selected nodes' glyphs Glyphs.RefreshNodesGlyphs(nodes, sel); }
public static int ShowChooseChangelistMove(string prompt, IList <P4.Changelist> items, ref string NewChangeDescription, P4ScmProvider scm) { if (Preferences.LocalSettings.GetBool("PromptForChanglist", true)) { if (ActiveChangeList > -1) { CurrentChangeListLastUse = DateTime.Now; // NewChangeDescription = CurrentChangeDescription; return(CurrentChangeList); } SelectChangelistDlg dlg = new SelectChangelistDlg(prompt, items); dlg.DontShowAgainCB.Enabled = false; dlg.DontShowAgainCB.Visible = false; dlg.saveToChangelistBtn.Visible = false; dlg.submitBtn.Visible = false; dlg.NewChangelistDescription = NewChangeDescription; dlg.OkBtn.Visible = true; dlg.CancelBtn.Visible = true; dlg.CancelButton = dlg.CancelBtn; dlg.CheckoutAndSaveBtn.Visible = false; dlg.SkipSaveBtn.Visible = false; dlg.SaveAsBtn.Visible = false; dlg.CancelSaveBtn.Visible = false; dlg.CancelEditBtn.Visible = false; dlg.EditFileBtn.Visible = false; dlg.CheckoutBtn.Visible = false; dlg.BtnPanel.Controls.Clear(); dlg.BtnPanel.Controls.Add(dlg.BtnPanelBuffer); //dlg.BtnPanel.Controls.Add(dlg.CancelEditBtn); dlg.BtnPanel.Controls.Add(dlg.CancelBtn); //dlg.BtnPanel.Controls.Add(dlg.CancelSaveBtn); //dlg.BtnPanel.Controls.Add(dlg.SkipSaveBtn); //dlg.BtnPanel.Controls.Add(dlg.SaveAsBtn); //dlg.BtnPanel.Controls.Add(dlg.CheckoutAndSaveBtn); //dlg.BtnPanel.Controls.Add(dlg.CheckoutBtn); //dlg.BtnPanel.Controls.Add(dlg.EditFileBtn); //dlg.BtnPanel.Controls.Add(dlg.submitBtn); dlg.BtnPanel.Controls.Add(dlg.OkBtn); //dlg.BtnPanel.Controls.Add(dlg.saveToChangelistBtn); dlg.OkBtn.Column = 1; dlg.CancelBtn.Column = 2; dlg.BtnPanel.InitializeGrid(true); if (dlg.ShowDialog() == DialogResult.Cancel) { CurrentChangeList = -2; return(CurrentChangeList); } int changelistId = dlg.Result; if (changelistId == -1) { P4.Changelist newChange = scm.Connection.Repository.NewChangelist(); // Make sure files is empty. If default has files in it, a new changelist // will automatically get those files. newChange.Files = null; newChange.Description = dlg.DescriptionTB.Text; newChange = scm.SaveChangelist(newChange, null); return(newChange.Id); } CurrentChangeListLastUse = DateTime.Now; CurrentChangeList = changelistId; return(changelistId); } else { return(P4VsProvider.Instance.ChangeLists.ActiveChangeList); } }
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); } } }
public ChangelistItem(P4.Changelist _change) { change = _change; }
public static void ChangeFileType(P4ScmProvider scm, IList <string> paths) { FileAttributesDlg dlg = new FileAttributesDlg(scm); int changelistId = 0; IList <string> CheckedinFiles = new List <string>(); IList <string> CheckedoutFiles = new List <string>(); IList <P4.FileMetaData> fmd = scm.GetFileMetaData(paths, null); P4.FileType ft = null; if (fmd != null) { foreach (P4.FileMetaData md in fmd) { if (ft == null) { ft = md.Type; if (md.Change > 0) { changelistId = md.Change; } } else { // only keep the base type if all the same if (ft.BaseType != md.Type.BaseType) { ft.BaseType = P4.BaseFileType.Unspecified; } // only keep fags that are the same ft.Modifiers &= md.Type.Modifiers; if (changelistId != md.Change) { changelistId = 0; } } if (md.Action == P4.FileAction.None) { CheckedinFiles.Add(md.LocalPath.Path); } else { CheckedoutFiles.Add(md.LocalPath.Path); } } } dlg.FileType = ft; dlg.TargetChangelistId = changelistId; if (dlg.ShowDialog() == DialogResult.Cancel) { return; } int targetChangelist = dlg.TargetChangelistId; P4.Options options = null; if (targetChangelist < 0) { // if selected, create a new numbered changelist with the files. P4.Changelist change = scm.Connection.Repository.NewChangelist(); change.Description = "<P4VS Change FileType>"; change.ClientId = scm.Connection.Repository.Connection.Client.Name; change.OwnerName = scm.Connection.Repository.Connection.UserName; change.Files = null; // new List<P4.FileMetaData>(); P4.Changelist newChange = scm.Connection.Repository.CreateChangelist(change); targetChangelist = newChange.Id; } if (CheckedoutFiles.Count > 0) { options = new P4.ReopenCmdOptions(targetChangelist, dlg.FileType); if ((options.ContainsKey("-t")) && (string.IsNullOrEmpty(options["-t"]) == false)) { scm.ReopenFiles(P4.FileSpec.LocalSpecList(CheckedoutFiles), options); } } if (CheckedinFiles.Count > 0) { options = new P4.EditCmdOptions(P4.EditFilesCmdFlags.None, targetChangelist, dlg.FileType); if ((options.ContainsKey("-t")) && (string.IsNullOrEmpty(options["-t"]) == false)) { scm.EditFiles(P4.FileSpec.LocalSpecList(CheckedinFiles), options); } } scm.BroadcastChangelistUpdate(null, new P4ScmProvider.ChangelistUpdateArgs(targetChangelist, P4ScmProvider.ChangelistUpdateArgs.UpdateType.Edit)); }
public static P4.Changelist ShowChooseChangelistSubmit(string prompt, IList <P4.Changelist> items, ref string NewChangeDescription, out string action, bool streams, bool integ, P4ScmProvider scm) { action = null; P4.Changelist changelist = scm.Connection.Repository.NewChangelist(); // Make sure files is empty. If default has files in it, a new changelist // will automatically get those files. changelist.Files = new List <P4.FileMetaData>(); if (Preferences.LocalSettings.GetBool("PromptForChanglist", true) || integ == true) { SelectChangelistDlg dlg = new SelectChangelistDlg(prompt, items); dlg.saveToChangelistBtn.Enabled = true; dlg.saveToChangelistBtn.Visible = true; dlg.submitBtn.Enabled = true; dlg.submitBtn.Visible = true; if (streams) { dlg.CancelBtn.Visible = false; dlg.CancelBtn.Enabled = false; dlg.ControlBox = false; dlg.BtnPanel.Controls.Clear(); dlg.BtnPanel.Controls.Add(dlg.BtnPanelBuffer); dlg.BtnPanel.Controls.Add(dlg.saveToChangelistBtn); dlg.BtnPanel.Controls.Add(dlg.submitBtn); dlg.saveToChangelistBtn.Column = 1; dlg.submitBtn.Column = 2; dlg.submitBtn.Column = 3; dlg.BtnPanel.InitializeGrid(true); } else { dlg.CancelBtn.Visible = true; dlg.BtnPanel.Controls.Clear(); dlg.BtnPanel.Controls.Add(dlg.BtnPanelBuffer); dlg.BtnPanel.Controls.Add(dlg.saveToChangelistBtn); dlg.BtnPanel.Controls.Add(dlg.submitBtn); dlg.BtnPanel.Controls.Add(dlg.CancelBtn); dlg.saveToChangelistBtn.Column = 1; dlg.submitBtn.Column = 2; dlg.submitBtn.Column = 3; dlg.CancelBtn.Column = 4; dlg.BtnPanel.InitializeGrid(true); } dlg.NewChangelistDescription = NewChangeDescription; dlg.CancelButton = dlg.CancelBtn; dlg.OkBtn.Visible = false; dlg.CheckoutAndSaveBtn.Visible = false; dlg.SkipSaveBtn.Visible = false; dlg.SaveAsBtn.Visible = false; dlg.CancelSaveBtn.Visible = false; dlg.CancelEditBtn.Visible = false; dlg.EditFileBtn.Visible = false; dlg.CheckoutBtn.Visible = false; //dlg.BtnPanel.Controls.Add(dlg.CancelEditBtn); //dlg.BtnPanel.Controls.Add(dlg.CancelBtn); //dlg.BtnPanel.Controls.Add(dlg.CancelSaveBtn); //dlg.BtnPanel.Controls.Add(dlg.SkipSaveBtn); //dlg.BtnPanel.Controls.Add(dlg.SaveAsBtn); //dlg.BtnPanel.Controls.Add(dlg.CheckoutAndSaveBtn); //dlg.BtnPanel.Controls.Add(dlg.CheckoutBtn); //dlg.BtnPanel.Controls.Add(dlg.EditFileBtn); if (dlg.ShowDialog() == DialogResult.Cancel) { return(null); } if (dlg.DialogResult == DialogResult.OK) { // Save to Changelist changelist.Description = dlg.DescriptionTB.Text; return(changelist); } if (dlg.DialogResult == DialogResult.Yes) { // Submit... action = "submit"; changelist.Description = dlg.DescriptionTB.Text; return(changelist); } int changelistId = dlg.Result; if (changelistId == -1) { changelist.Description = dlg.DescriptionTB.Text; } return(changelist); } else { changelist = P4VsProvider.CurrentScm.GetChangelist(P4VsProvider.Instance.ChangeLists.ActiveChangeList, null); return(changelist); } }