mirror of
https://github.com/ShareX/ShareX.git
synced 2024-07-07 15:35:47 +12:00
Merge pull request #1094 from mpistrich/master
Reopen save as dialog on errors after capture
This commit is contained in:
commit
9b3677c9a2
|
@ -24,8 +24,10 @@
|
||||||
#endregion License Information (GPL v3)
|
#endregion License Information (GPL v3)
|
||||||
|
|
||||||
using ShareX.HelpersLib;
|
using ShareX.HelpersLib;
|
||||||
|
using ShareX.Properties;
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
namespace ShareX
|
namespace ShareX
|
||||||
{
|
{
|
||||||
|
@ -46,6 +48,9 @@ public string Write(string filePath)
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
DebugHelper.WriteException(e);
|
DebugHelper.WriteException(e);
|
||||||
|
MessageBox.Show(new Form() { WindowState = FormWindowState.Maximized, TopMost = true },
|
||||||
|
string.Format(Resources.ImageData_Write_Error + "\r\n\r\n" + e, filePath), "ShareX",
|
||||||
|
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
}
|
}
|
||||||
|
|
||||||
return string.Empty;
|
return string.Empty;
|
||||||
|
|
9
ShareX/Properties/Resources.Designer.cs
generated
9
ShareX/Properties/Resources.Designer.cs
generated
|
@ -1035,6 +1035,15 @@ public class Resources {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Could not write image to path {0}..
|
||||||
|
/// </summary>
|
||||||
|
public static string ImageData_Write_Error {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("ImageData_Write_Error", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -811,4 +811,7 @@ Would you like to restart ShareX?</value>
|
||||||
<data name="vn" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="vn" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\vn.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\vn.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ImageData_Write_Error" xml:space="preserve">
|
||||||
|
<value>Could not write image to path {0}.</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -561,24 +561,38 @@ private bool DoAfterCaptureJobs()
|
||||||
{
|
{
|
||||||
using (SaveFileDialog sfd = new SaveFileDialog())
|
using (SaveFileDialog sfd = new SaveFileDialog())
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(lastSaveAsFolder) || !Directory.Exists(lastSaveAsFolder))
|
bool imageSaved = false;
|
||||||
{
|
|
||||||
lastSaveAsFolder = Info.TaskSettings.CaptureFolder;
|
|
||||||
}
|
|
||||||
|
|
||||||
sfd.InitialDirectory = lastSaveAsFolder;
|
do
|
||||||
sfd.FileName = Info.FileName;
|
|
||||||
sfd.DefaultExt = Path.GetExtension(Info.FileName).Substring(1);
|
|
||||||
sfd.Filter = string.Format("*{0}|*{0}|All files (*.*)|*.*", Path.GetExtension(Info.FileName));
|
|
||||||
sfd.Title = Resources.UploadTask_DoAfterCaptureJobs_Choose_a_folder_to_save + " " + Path.GetFileName(Info.FileName);
|
|
||||||
|
|
||||||
if (sfd.ShowDialog() == DialogResult.OK && !string.IsNullOrEmpty(sfd.FileName))
|
|
||||||
{
|
{
|
||||||
Info.FilePath = sfd.FileName;
|
if (string.IsNullOrEmpty(lastSaveAsFolder) || !Directory.Exists(lastSaveAsFolder))
|
||||||
lastSaveAsFolder = Path.GetDirectoryName(Info.FilePath);
|
{
|
||||||
imageData.Write(Info.FilePath);
|
lastSaveAsFolder = Info.TaskSettings.CaptureFolder;
|
||||||
DebugHelper.WriteLine("Image saved to file with dialog: " + Info.FilePath);
|
}
|
||||||
}
|
|
||||||
|
sfd.InitialDirectory = lastSaveAsFolder;
|
||||||
|
sfd.FileName = Info.FileName;
|
||||||
|
sfd.DefaultExt = Path.GetExtension(Info.FileName).Substring(1);
|
||||||
|
sfd.Filter = string.Format("*{0}|*{0}|All files (*.*)|*.*", Path.GetExtension(Info.FileName));
|
||||||
|
sfd.Title = Resources.UploadTask_DoAfterCaptureJobs_Choose_a_folder_to_save + " " + Path.GetFileName(Info.FileName);
|
||||||
|
|
||||||
|
if (sfd.ShowDialog() == DialogResult.OK && !string.IsNullOrEmpty(sfd.FileName))
|
||||||
|
{
|
||||||
|
Info.FilePath = sfd.FileName;
|
||||||
|
lastSaveAsFolder = Path.GetDirectoryName(Info.FilePath);
|
||||||
|
imageSaved = imageData.Write(Info.FilePath) == Info.FilePath;
|
||||||
|
|
||||||
|
if (imageSaved)
|
||||||
|
{
|
||||||
|
DebugHelper.WriteLine("Image saved to file with dialog: " + Info.FilePath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// User cancelled the dialog - stop image saving retries.
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
} while (!imageSaved);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue