When using mono, remove images from the help file. Mono blows up when reading the images for some reason.
This commit is contained in:
parent
fc52fe3236
commit
ab060f622d
@ -10,6 +10,7 @@ using System.Windows.Forms;
|
|||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Resources;
|
using System.Resources;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
|
||||||
|
|
||||||
namespace EduNetworkBuilder
|
namespace EduNetworkBuilder
|
||||||
@ -81,21 +82,117 @@ namespace EduNetworkBuilder
|
|||||||
}
|
}
|
||||||
if (WhatToShow == RTFWindowContents.help)
|
if (WhatToShow == RTFWindowContents.help)
|
||||||
{
|
{
|
||||||
myRTF = Properties.Resources.Help;
|
myRTF = SafeRTF(Properties.Resources.Help);
|
||||||
rtbContent.Rtf = myRTF;
|
rtbContent.Rtf = myRTF;
|
||||||
}
|
}
|
||||||
else if (WhatToShow == RTFWindowContents.about)
|
else if (WhatToShow == RTFWindowContents.about)
|
||||||
{
|
{
|
||||||
myRTF = Properties.Resources.about;
|
myRTF = SafeRTF(Properties.Resources.about);
|
||||||
rtbContent.Rtf = myRTF;
|
rtbContent.Rtf = myRTF;
|
||||||
}
|
}
|
||||||
else if (WhatToShow == RTFWindowContents.release_notes)
|
else if (WhatToShow == RTFWindowContents.release_notes)
|
||||||
{
|
{
|
||||||
myRTF = Properties.Resources.ReleaseNotes;
|
myRTF = SafeRTF(Properties.Resources.ReleaseNotes);
|
||||||
rtbContent.Rtf = myRTF;
|
rtbContent.Rtf = myRTF;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// When running using Mono (on Linux) the RTF reader fails on some images.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="inRTF"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public string SafeRTF(string inRTF)
|
||||||
|
{
|
||||||
|
string What = string.Copy(inRTF);
|
||||||
|
if (!NB.IsRunningOnMono()) return What;
|
||||||
|
string newWhat = "";
|
||||||
|
List<string> ToMatch = new List<string>();
|
||||||
|
ToMatch.Add(@"{\nonshppict");
|
||||||
|
ToMatch.Add(@"{\*\shppict");
|
||||||
|
ToMatch.Add(@"{\pict");
|
||||||
|
|
||||||
|
string MatchedSoFar = "";
|
||||||
|
int count = 0;
|
||||||
|
int posincompare = 0;
|
||||||
|
bool Foundit = false;
|
||||||
|
bool FoundPartMatch = false;
|
||||||
|
int posinfile = 0;
|
||||||
|
using (var ms = new MemoryStream())
|
||||||
|
{
|
||||||
|
var sw = new StreamWriter(ms);
|
||||||
|
foreach (char c in What)
|
||||||
|
{
|
||||||
|
posinfile++;
|
||||||
|
if (posinfile % 10000 == 0)
|
||||||
|
Console.WriteLine(" Place " + posinfile);
|
||||||
|
if (Foundit)
|
||||||
|
{
|
||||||
|
if (c == '{') count++;
|
||||||
|
if (c == '}') count--;
|
||||||
|
if (count == 0)
|
||||||
|
{
|
||||||
|
Foundit = false; //We have finished finding it.
|
||||||
|
posincompare = 0;//start from the beginning again
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MatchedSoFar += c;
|
||||||
|
FoundPartMatch = false;
|
||||||
|
for(int i=0; i< ToMatch.Count; i++)
|
||||||
|
{
|
||||||
|
int howfar = MatchedSoFar.Length;
|
||||||
|
if (ToMatch[i].Length < howfar) howfar = ToMatch[i].Length;
|
||||||
|
if (MatchedSoFar.Equals(ToMatch[i].Substring(0,howfar)))
|
||||||
|
{
|
||||||
|
FoundPartMatch = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (FoundPartMatch)
|
||||||
|
{
|
||||||
|
posincompare++;
|
||||||
|
for (int i = 0; i < ToMatch.Count; i++)
|
||||||
|
{
|
||||||
|
if (ToMatch[i].Equals(MatchedSoFar))
|
||||||
|
Foundit = true;
|
||||||
|
}
|
||||||
|
if (Foundit)
|
||||||
|
{
|
||||||
|
posincompare = 0;
|
||||||
|
Foundit = true;
|
||||||
|
count = 1; //There is one { in the compare string
|
||||||
|
MatchedSoFar = "";//reset it
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (posincompare > 0)
|
||||||
|
{
|
||||||
|
//newWhat += picstart.Substring(0, posincompare);
|
||||||
|
sw.Write(MatchedSoFar); //What has matched up to this point
|
||||||
|
posincompare = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//newWhat += c;
|
||||||
|
sw.Write(c);
|
||||||
|
}
|
||||||
|
MatchedSoFar = ""; //reset it
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Console.WriteLine(" Place " + posinfile);
|
||||||
|
sw.Flush();
|
||||||
|
ms.Position = 0;
|
||||||
|
var sr = new StreamReader(ms);
|
||||||
|
newWhat = sr.ReadToEnd();
|
||||||
|
}
|
||||||
|
return newWhat;
|
||||||
|
}
|
||||||
|
|
||||||
public void JumpToSelection(string WhatToFind)
|
public void JumpToSelection(string WhatToFind)
|
||||||
{
|
{
|
||||||
int indexToText = rtbContent.Find(WhatToFind);
|
int indexToText = rtbContent.Find(WhatToFind);
|
||||||
|
Loading…
Reference in New Issue
Block a user