private static bool CopyImageToClipboard(DomEventArgs ge, string bookFolderPath)
{
var imageElement = GetImageNode(ge);
if(imageElement != null)
{
var url = HtmlDom.GetImageElementUrl(imageElement);
if(String.IsNullOrEmpty(url.NotEncoded))
return false;
var path = Path.Combine(bookFolderPath, url.NotEncoded);
try
{
using(var image = PalasoImage.FromFileRobustly(path))
{
PortableClipboard.CopyImageToClipboard(image);
}
return true;
}
catch (NotImplementedException)
{
var msg = LocalizationManager.GetDynamicString("Bloom", "ImageToClipboard",
"Copying an image to the clipboard is not yet implemented in Bloom for Linux.",
"message for messagebox warning to user");
var header = LocalizationManager.GetDynamicString("Bloom", "NotImplemented",
"Not Yet Implemented", "header for messagebox warning to user");
MessageBox.Show(msg, header);
}
catch (ExternalException e)
{
Logger.WriteEvent("CopyImageToClipboard -> ExternalException: " + e.Message);
var msg = LocalizationManager.GetDynamicString("Bloom", "EditTab.Image.CopyImageFailed",
"Bloom had problems using your computer's clipboard. Some other program may be interfering.") +
Environment.NewLine + Environment.NewLine +
LocalizationManager.GetDynamicString("Bloom", "EditTab.Image.TryRestart",
"Try closing other programs and restart your computer if necessary.");
MessageBox.Show(msg);
}
catch (Exception e)
{
Debug.Fail(e.Message);
Logger.WriteEvent("CopyImageToClipboard:" + e.Message);
}
}
return false;
}