Skip to content

Commit 62d9ddd

Browse files
committed
[#] Clean up code and catch exceptions to prompt
1 parent c2b43bb commit 62d9ddd

17 files changed

+275
-39
lines changed

PasteEx/Core/ClipData.cs renamed to PasteEx/Core/ClipboardData.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
namespace PasteEx.Core
77
{
8-
public class ClipData
8+
public class ClipboardData
99
{
1010
public IDataObject IAcquisition { get; set; }
1111

@@ -21,7 +21,7 @@ protected virtual void OnSaveCompleted()
2121
SaveCompleted?.Invoke();
2222
}
2323

24-
public ClipData(IDataObject iDataObject)
24+
public ClipboardData(IDataObject iDataObject)
2525
{
2626
IAcquisition = iDataObject;
2727
Storage = new DataObject();

PasteEx/Core/Processor/BaseProcessor.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ namespace PasteEx.Core
66
public abstract class BaseProcessor
77
{
88

9-
public ClipData Data { get; set; }
9+
public ClipboardData Data { get; set; }
1010

11-
public BaseProcessor(ClipData clipData)
11+
public BaseProcessor(ClipboardData clipData)
1212
{
1313
Data = clipData;
1414
}

PasteEx/Core/Processor/FileProcessor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ namespace PasteEx.Core
88
{
99
public class FileProcessor : BaseProcessor
1010
{
11-
public FileProcessor(ClipData clipData) : base(clipData)
11+
public FileProcessor(ClipboardData clipData) : base(clipData)
1212
{
1313
Data = clipData;
1414
}

PasteEx/Core/Processor/HtmlProcessor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ namespace PasteEx.Core
77
{
88
public class HtmlProcessor : BaseProcessor
99
{
10-
public HtmlProcessor(ClipData clipData) : base(clipData)
10+
public HtmlProcessor(ClipboardData clipData) : base(clipData)
1111
{
1212
Data = clipData;
1313
}

PasteEx/Core/Processor/ImageProcessor.cs

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public class ImageProcessor : BaseProcessor
1919

2020
private string analyzeExt;
2121

22-
public ImageProcessor(ClipData clipData) : base(clipData)
22+
public ImageProcessor(ClipboardData clipData) : base(clipData)
2323
{
2424
Data = clipData;
2525
}
@@ -209,21 +209,32 @@ private Bitmap GetImageFromDataObjectOld(DataObject retrievedData)
209209
return bitmap;
210210
}
211211

212-
private void GetImageFromUrl(string url, string path)
212+
private async void GetImageFromUrl(string url, string path)
213213
{
214214
WebClient client = new WebClient();
215215
client.DownloadFileCompleted += (sender, e) =>
216216
{
217-
OnSaveAsFileCompleted();
217+
//...
218218
};
219219
client.DownloadProgressChanged += (sender, e) =>
220220
{
221221
//this.proBarDownLoad.Minimum = 0;
222222
//this.proBarDownLoad.Maximum = (int)e.TotalBytesToReceive;
223223
//this.proBarDownLoad.Value = (int)e.BytesReceived;
224-
FormMain.GetInstance().ChangeTsslCurrentLocation($"下载图片中...{e.ProgressPercentage}%");
224+
FormMain.GetInstance().ChangeTsslCurrentLocation(
225+
String.Format(Resources.Resource_zh_CN.TipPictureDownloading, e.ProgressPercentage));
225226
};
226-
client.DownloadFileTaskAsync(new Uri(url), path);
227+
try
228+
{
229+
await client.DownloadFileTaskAsync(new Uri(url), path);
230+
}
231+
catch (Exception ex)
232+
{
233+
Logger.Error(ex);
234+
MessageBox.Show(Resources.Resource_zh_CN.TipDownloadFailed + " : " + ex.Message,
235+
Resources.Resource_zh_CN.TitleError, MessageBoxButtons.OK, MessageBoxIcon.Error);
236+
}
237+
OnSaveAsFileCompleted();
227238
}
228239
}
229240
}

PasteEx/Core/Processor/RtfProcessor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ namespace PasteEx.Core
77
{
88
public class RtfProcessor : BaseProcessor
99
{
10-
public RtfProcessor(ClipData clipData) : base(clipData)
10+
public RtfProcessor(ClipboardData clipData) : base(clipData)
1111
{
1212
Data = clipData;
1313
}

PasteEx/Core/Processor/TextProcessor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ namespace PasteEx.Core
1010
{
1111
public class TextProcessor : BaseProcessor
1212
{
13-
public TextProcessor(ClipData clipData) : base(clipData)
13+
public TextProcessor(ClipboardData clipData) : base(clipData)
1414
{
1515
Data = clipData;
1616
}

PasteEx/FormMain.cs

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
using PasteEx.Core;
22
using System;
3-
using System.ComponentModel;
43
using System.IO;
5-
using System.Net;
64
using System.Text;
7-
using System.Threading.Tasks;
85
using System.Windows.Forms;
96

107
namespace PasteEx
@@ -13,7 +10,7 @@ public partial class FormMain : Form
1310
{
1411
private static FormMain dialogue = null;
1512

16-
private ClipData data;
13+
private ClipboardData data;
1714

1815
private string currentLocation;
1916

@@ -54,7 +51,7 @@ public FormMain(string location)
5451

5552
private void FormMain_Load(object sender, EventArgs e)
5653
{
57-
data = new ClipData(Clipboard.GetDataObject());
54+
data = new ClipboardData(Clipboard.GetDataObject());
5855
data.SaveCompleted += () => Application.Exit(); // exit when save completed
5956
string[] extensions = data.Analyze();
6057
cboExtension.Items.AddRange(extensions);
@@ -214,7 +211,7 @@ private void btnSave_Click(object sender, EventArgs e)
214211

215212
if (File.Exists(path))
216213
{
217-
DialogResult result = MessageBox.Show(String.Format("目标文件{0}已经存在,是否覆盖?", path),
214+
DialogResult result = MessageBox.Show(String.Format(Resources.Resource_zh_CN.TipTargetFileExisted, path),
218215
Resources.Resource_zh_CN.Title, MessageBoxButtons.YesNo, MessageBoxIcon.Question);
219216
if (result == DialogResult.Yes)
220217
{
@@ -279,7 +276,7 @@ protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
279276

280277
public static void QuickPasteEx(string location)
281278
{
282-
ClipData data = new ClipData(Clipboard.GetDataObject());
279+
ClipboardData data = new ClipboardData(Clipboard.GetDataObject());
283280
string[] extensions = data.Analyze();
284281

285282
if (extensions.Length > 0)
@@ -293,14 +290,15 @@ public static void QuickPasteEx(string location)
293290
string path = location + GenerateFileName(currentLocation, extensions[0]) + "." + extensions[0];
294291
if (!Directory.Exists(currentLocation))
295292
{
296-
MessageBox.Show("粘贴目标路径不存在",
293+
Console.WriteLine(Resources.Resource_zh_CN.TipTargetPathNotExist);
294+
MessageBox.Show(Resources.Resource_zh_CN.TipTargetPathNotExist,
297295
Resources.Resource_zh_CN.Title, MessageBoxButtons.OK, MessageBoxIcon.Warning);
298296
}
299297
else
300298
{
301299
if (File.Exists(path))
302300
{
303-
DialogResult result = MessageBox.Show(String.Format("目标文件{0}已经存在,是否覆盖?", path),
301+
DialogResult result = MessageBox.Show(String.Format(Resources.Resource_zh_CN.TipTargetFileExisted, path),
304302
Resources.Resource_zh_CN.Title, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
305303
if (result == DialogResult.Yes)
306304
{
@@ -319,7 +317,8 @@ public static void QuickPasteEx(string location)
319317
}
320318
else
321319
{
322-
MessageBox.Show("剪贴板内容为空或不被支持",
320+
Console.WriteLine(Resources.Resource_zh_CN.TipAnalyzeFailedWithoutPrompt);
321+
MessageBox.Show(Resources.Resource_zh_CN.TipAnalyzeFailedWithoutPrompt,
323322
Resources.Resource_zh_CN.Title, MessageBoxButtons.OK, MessageBoxIcon.Warning);
324323
}
325324
}

PasteEx/Library/Kernel32.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
using System;
2+
using System.Runtime.InteropServices;
3+
4+
namespace PasteEx.Library
5+
{
6+
internal class Kernel32
7+
{
8+
[DllImport("kernel32.dll", EntryPoint = "GetStdHandle", SetLastError = true, CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
9+
internal static extern IntPtr GetStdHandle(int nStdHandle);
10+
11+
[DllImport("kernel32.dll", EntryPoint = "AllocConsole", SetLastError = true, CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
12+
internal static extern int AllocConsole();
13+
14+
[DllImport("kernel32.dll")]
15+
internal static extern bool AttachConsole(int dwProcessId);
16+
17+
}
18+
}

PasteEx/PasteEx.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@
6464
<Reference Include="System.Xml" />
6565
</ItemGroup>
6666
<ItemGroup>
67+
<Compile Include="Library\Kernel32.cs" />
6768
<Compile Include="Core\Processor\BaseProcessor.cs" />
6869
<Compile Include="Core\ClipData.cs" />
6970
<Compile Include="Core\Processor\FileProcessor.cs" />
@@ -84,6 +85,7 @@
8485
<DependentUpon>FormSetting.cs</DependentUpon>
8586
</Compile>
8687
<Compile Include="Client.cs" />
88+
<Compile Include="Util\CommandLine.cs" />
8789
<Compile Include="Util\Device.cs" />
8890
<Compile Include="Util\EasyJson.cs" />
8991
<Compile Include="Util\ImageHelper.cs" />

0 commit comments

Comments
 (0)