B2021-052 allow for table cell text font size change when the text ends in a setpoint or transition link

This commit is contained in:
John Jenko 2021-04-22 14:13:30 +00:00
parent 814d26f713
commit 6d9a3f5f4e
2 changed files with 46 additions and 9 deletions

View File

@ -2628,14 +2628,16 @@ namespace Volian.Controls.Library
// C2021-005 set the selected cell(s) or cell text to the passed in font size // C2021-005 set the selected cell(s) or cell text to the passed in font size
public void SetFontSize(float newSize) public void SetFontSize(float newSize)
{ {
if (SelectedText == null || SelectedText == "") // table cell selected if (SelectedText == null || SelectedText == "") // empty table cell selected
Rtf = SetFontSizeReplace(Rtf, newSize); Rtf = SetFontSizeReplace(Rtf, newSize);
else else
{ {
// table cell text selected // table cell text selected
int selst = SelectionStart; int selst = SelectionStart;
int selln = SelectionLength; int selln = SelectionLength;
SelectedRtf = SetFontSizeReplace(SelectedRtf, newSize); // set font size of seleted text string newrtf = SelectedRtf; //B2021-052 use a temporary variable to allow easy debugging
newrtf = SetFontSizeReplace(newrtf, newSize); // changes the /fs## command in the rtf string
SelectedRtf = newrtf;// replace the selected portion with the updated font size version of the rtf
Select(selst, selln); // re-select the cell text Select(selst, selln); // re-select the cell text
} }
} }
@ -2823,7 +2825,7 @@ namespace Volian.Controls.Library
{ {
// is this an allowable symbol/character: // is this an allowable symbol/character:
for (int j = 0; j < sl.Count; j++) for (int j = 0; j < sl.Count; j++)
{ {
if (sym == allowableSymbols[j]) if (sym == allowableSymbols[j])
{ {
sb = sb.Append((char)(Convert.ToInt32(allowableSymbols[j]))); sb = sb.Append((char)(Convert.ToInt32(allowableSymbols[j])));
@ -2835,12 +2837,14 @@ namespace Volian.Controls.Library
if (!didCharReplace) if (!didCharReplace)
{ {
sb = sb.Append("?"); sb = sb.Append("?");
didCharReplace = true; didCharReplace = true;
hasBadChar = true; hasBadChar = true;
}
} }
if (!didCharReplace) if (!didCharReplace)
sb = sb.Append(ptext[i]); sb = sb.Append(ptext[i]);
}
if (!didCharReplace)
sb = sb.Append(ptext[i]);
} }
ptext = sb.ToString(); ptext = sb.ToString();
ptext = ptext.Replace("\u2013", "-"); // Replace EN Dash with hyphen ptext = ptext.Replace("\u2013", "-"); // Replace EN Dash with hyphen

View File

@ -2561,7 +2561,7 @@ namespace Volian.Controls.Library
else else
applyStyle(); // not in a grid, apply style to current step type applyStyle(); // not in a grid, apply style to current step type
} }
//C2021-005 the font size for the selected talbe cell(s) //C2021-005 the font size for the selected table cell(s)
private float GetTableCellFontSize(SelectionOption selOpt) private float GetTableCellFontSize(SelectionOption selOpt)
{ {
// return 0 if there are multiple font sizes or just an invalid selection // return 0 if there are multiple font sizes or just an invalid selection
@ -2652,12 +2652,18 @@ namespace Volian.Controls.Library
MyStepRTB.Select(0, 0); MyStepRTB.Select(0, 0);
break; break;
} }
MyStepRTB.SetFontSize(newSize); ChangeTableTextFontSize(newSize); // Apply font size to selected cells
} }
MyFlexGrid.Select(cr); MyFlexGrid.Select(cr);
} }
else else
MyStepRTB.SetFontSize(newSize); // not in a grid, apply style to current step type {
int ss = MyStepRTB.SelectionStart;
int sl = MyStepRTB.SelectionLength;
MyStepRTB.OnReturnToEditor(this, new EventArgs());
MyStepRTB.Select(ss, sl);
ChangeTableTextFontSize(newSize);
}
} }
else else
{ {
@ -2671,10 +2677,37 @@ namespace Volian.Controls.Library
int sl = MyStepRTB.SelectionLength; int sl = MyStepRTB.SelectionLength;
MyStepRTB.OnReturnToEditor(this, new EventArgs()); MyStepRTB.OnReturnToEditor(this, new EventArgs());
MyStepRTB.Select(ss, sl); MyStepRTB.Select(ss, sl);
MyStepRTB.SetFontSize(newSize); ChangeTableTextFontSize(newSize);
} }
} }
} }
// B2021-052 table cell text that ends with a link (RO or Transition) was not accepting a change in font size
private void ChangeTableTextFontSize(float newSize)
{
int ss = MyStepRTB.SelectionStart;
int sl = MyStepRTB.SelectionLength;
bool addedSpace = false;
// B2021-052 if the table cell text end with a link, then append a space to the end and reselect the text
if ((sl == MyStepRTB.TextLength || MyStepRTB.SelectedText.EndsWith("[END>")) && MyStepRTB.Text.EndsWith("[END>"))
{
addedSpace = true;
MyStepRTB.OnReturnToEditor(this, new EventArgs()); //reset and refocus to the table cell rtf edtior
MyStepRTB.AppendText(" ");
MyStepRTB.Select(ss, sl);
}
MyStepRTB.SetFontSize(newSize); // change the font size of the selection
// B2021-052 if a space as added, remove the space
if (addedSpace)
{
MyStepRTB.OnReturnToEditor(this, new EventArgs());
MyStepRTB.Select(MyStepRTB.TextLength - 1, 1); // select the space at the end of the text
MyStepRTB.SelectedText = ""; // remove the space
MyStepRTB.Select(ss, sl);
}
}
private void ToggleBold() private void ToggleBold()
{ {
RTBAPI.ToggleBold(!RTBAPI.IsBold(_MyStepRTB), _MyStepRTB, _MyStepRTB.SelectionLength == 0 ? RTBAPI.RTBSelection.SCF_DEFAULT : RTBAPI.RTBSelection.SCF_SELECTION); RTBAPI.ToggleBold(!RTBAPI.IsBold(_MyStepRTB), _MyStepRTB, _MyStepRTB.SelectionLength == 0 ? RTBAPI.RTBSelection.SCF_DEFAULT : RTBAPI.RTBSelection.SCF_SELECTION);