private void comboboxRouteEncoding_SelectedIndexChanged(object sender, EventArgs e)
{
int i = comboboxRouteEncoding.SelectedIndex;
if (Result.RouteFile == null && Result.ErrorFile != null)
{
//Workaround for the route worker thread
Result.RouteFile = Result.ErrorFile;
}
if (comboboxRouteEncoding.Tag == null)
{
if (!(i >= 0 & i < EncodingCodepages.Length)) return;
Result.RouteEncoding = System.Text.Encoding.GetEncoding(EncodingCodepages[i]);
if (i == 0)
{
// remove from cache
for (int j = 0; j < Interface.CurrentOptions.RouteEncodings.Length; j++)
{
if (Interface.CurrentOptions.RouteEncodings[j].Value == Result.RouteFile)
{
Interface.CurrentOptions.RouteEncodings[j] =
Interface.CurrentOptions.RouteEncodings[Interface.CurrentOptions.RouteEncodings.Length - 1];
Array.Resize<TextEncoding.EncodingValue>(ref Interface.CurrentOptions.RouteEncodings,
Interface.CurrentOptions.RouteEncodings.Length - 1);
break;
}
}
}
else
{
// add to cache
int j;
for (j = 0; j < Interface.CurrentOptions.RouteEncodings.Length; j++)
{
if (Interface.CurrentOptions.RouteEncodings[j].Value == Result.RouteFile)
{
Interface.CurrentOptions.RouteEncodings[j].Codepage = EncodingCodepages[i];
break;
}
}
if (j == Interface.CurrentOptions.RouteEncodings.Length)
{
Array.Resize<TextEncoding.EncodingValue>(ref Interface.CurrentOptions.RouteEncodings, j + 1);
Interface.CurrentOptions.RouteEncodings[j].Codepage = EncodingCodepages[i];
Interface.CurrentOptions.RouteEncodings[j].Value = Result.RouteFile;
}
}
ShowRoute(true);
}
}