B2021-094 - Fixed shortcut keystroke usage for the GoTo button <Shift><Ctrl><G> when used multiple times #468

Merged
mschill merged 1 commits from B2021-094_keystroke4GoTo into Development 2024-11-18 14:59:13 -05:00
4 changed files with 30 additions and 10 deletions

View File

@ -504,7 +504,6 @@ namespace ROEditor
// if a specific RO was passed in. Load the xml tree from it to the root & then // if a specific RO was passed in. Load the xml tree from it to the root & then
// edit it through the ctlXmledit. // edit it through the ctlXmledit.
// from the input tbl string, get a table name. // from the input tbl string, get a table name.
ArrayList levelRecids = new ArrayList(); ArrayList levelRecids = new ArrayList();
int itbl = System.Convert.ToInt32(specificro.Substring(0,4),16); int itbl = System.Convert.ToInt32(specificro.Substring(0,4),16);
string stbl = System.Convert.ToString(itbl,10); string stbl = System.Convert.ToString(itbl,10);
@ -594,7 +593,6 @@ namespace ROEditor
return; return;
} }
roTreeView.SelectedNode = trnd; roTreeView.SelectedNode = trnd;
} }
protected void roTreeView_AfterSelect (object sender, protected void roTreeView_AfterSelect (object sender,
@ -676,12 +674,14 @@ namespace ROEditor
//if Ctrl/Shift Key is held down //if Ctrl/Shift Key is held down
if (ROsSelectedforMultiMove == null) if (ROsSelectedforMultiMove == null)
ROsSelectedforMultiMove = new List<TreeNode>(); ROsSelectedforMultiMove = new List<TreeNode>();
// B2021-094 added check that Control and Alt keys were not pressed with shift key
if ((Control.ModifierKeys & Keys.Shift) != 0) // if user does the <Ctrl><Shift><G> keystroke (Goto selected RO from step editor)
// but only lifts up on the G key, it was dropping down into this code below
// and getting a null reference error upon initial entry in to the RO Editor
if ((Control.ModifierKeys & Keys.Shift) != 0 && (Control.ModifierKeys & Keys.Control) == 0 && (Control.ModifierKeys & Keys.Alt) == 0)
{ {
//if shift is held down, clear existing nodes then add the range of nodes //if shift is held down, clear existing nodes then add the range of nodes
roTreeView_ClearAllMultiSelect(); roTreeView_ClearAllMultiSelect();
if (PreviousNode.Index < CurrentNode.Index) if (PreviousNode.Index < CurrentNode.Index)
{ {
//Traverse Down //Traverse Down

View File

@ -1078,7 +1078,13 @@ namespace Volian.Controls.Library
} }
else if (searchValue.Contains("#Link:ReferencedObject")) // RO Link (roid) else if (searchValue.Contains("#Link:ReferencedObject")) // RO Link (roid)
{ {
searchValue = searchValue.Replace("1[END>", string.Empty).Trim(); // we where only removing the END if the searchValue ended in "1[END>"
// but sometimes it ended in "2[END>" and cause a null reference error
// - was seen only running via Visual Studio debugger
// I cleaned up the code to remove in ether case so that we get the expected roid value - jsj 11-18-2024
string substr = searchValue.Substring(searchValue.LastIndexOf(" "));
if (substr.Contains("[END>"))
searchValue = searchValue.Substring(0, searchValue.Length - substr.Length);
string roid = ROFSTLookup.FormatRoidKey(searchValue.Substring(searchValue.LastIndexOf(" ")), true); string roid = ROFSTLookup.FormatRoidKey(searchValue.Substring(searchValue.LastIndexOf(" ")), true);
if (roid != selectedChld.roid) if (roid != selectedChld.roid)

View File

@ -30,7 +30,8 @@ namespace Volian.Controls.Library
//We need to check to see if the current database has been updated with the necessary changes //We need to check to see if the current database has been updated with the necessary changes
//to the folder configuration value. If so then build the list of available to be returned //to the folder configuration value. If so then build the list of available to be returned
//to the calling code //to the calling code
if (fList == null) // added check for a list count of zero. Was getting null error from data gotten from customer
if (fList == null || fList.Count == 0)
{ {
_MyLog.InfoFormat("Filtered format list not available: Database update needed for config value of top folder record"); _MyLog.InfoFormat("Filtered format list not available: Database update needed for config value of top folder record");
return RawList; return RawList;

View File

@ -1376,7 +1376,9 @@ namespace Volian.Controls.Library
public static String GetDefaultKeyValue(String key) public static String GetDefaultKeyValue(String key)
{ {
object xxx = null; object xxx = null;
return Registry.GetValue(key, "", xxx).ToString(); // fixed null reference error - appeared only while debugged - for user was handled via Try/Catch and ignored
object gtval = Registry.GetValue(key, "", xxx);
return (string)((gtval != null) ? gtval.ToString() : gtval);
} }
private EditItem FindStepAfter(string types, int contenttype) private EditItem FindStepAfter(string types, int contenttype)
{ {
@ -3132,7 +3134,13 @@ namespace Volian.Controls.Library
// a referenced object, bring up ReferencedObject Editor (for now, just put up a message box. // a referenced object, bring up ReferencedObject Editor (for now, just put up a message box.
if (_MyStepRTB.MyLinkText != null && _MyStepRTB.MyLinkText.IndexOf("Transition") > -1) if (_MyStepRTB.MyLinkText != null && _MyStepRTB.MyLinkText.IndexOf("Transition") > -1)
{ {
_MyEditItem.MyStepPanel.OnLinkClicked(sender, new StepPanelLinkEventArgs(_MyStepRTB.MyLinkText)); // B2021-094 fix for <Shift><Ctrl><G> key stroke for GoTo Transition or RO link
// Needed to clear the selection of the link or it will be used the next time
// <Shift><Ctrl><G> is used
string lnkText = _MyStepRTB.MyLinkText; // save the transition link information
_MyStepRTB.SetSelection(0, 0); // Clear the selection of the transition link
// note _MyStepRTB.DeselectAll() did not work all the time
_MyEditItem.MyStepPanel.OnLinkClicked(sender, new StepPanelLinkEventArgs(lnkText));
} }
else else
{ {
@ -3155,7 +3163,12 @@ namespace Volian.Controls.Library
} }
else else
{ {
LinkText lt = new LinkText(_MyStepRTB.MyLinkText); LinkText lt = new LinkText(_MyStepRTB.MyLinkText); // save the RO link information
// B2021-094 fix for <Shift><Ctrl><G> key stroke for GoTo Transition or RO link
// Needed to clear the selection of the link or it will be used the next time
// <Shift><Ctrl><G> is used
_MyStepRTB.SetSelection(0, 0); // clear the selection of the RO link
// note _MyStepRTB.DeselectAll() did not work all the time
//B2023-104 If we could not get the MyRoUsageInfo then we have a bad RO Link. Tell user to re-link the RO //B2023-104 If we could not get the MyRoUsageInfo then we have a bad RO Link. Tell user to re-link the RO
if (lt.MyRoUsageInfo != null) if (lt.MyRoUsageInfo != null)
{ {