BUG-2114 / BUG-2095 / FEATURE-998 : Some more consolidation of the code.

This commit is contained in:
Robin 2017-01-27 20:46:26 +01:00
parent 2caa0d3d55
commit e620cb93ec
3 changed files with 13 additions and 64 deletions

View file

@ -21,7 +21,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing; using System.Drawing;
using System.Drawing.Drawing2D; using System.Drawing.Drawing2D;
using System.IO; using System.IO;
@ -1003,24 +1002,12 @@ namespace Greenshot {
} }
private void OpenDirectoryMenuItemClick(object sender, EventArgs e) { private void OpenDirectoryMenuItemClick(object sender, EventArgs e) {
var path = Path.GetDirectoryName(_surface.LastSaveFullPath); ExplorerHelper.OpenInExplorer(_surface.LastSaveFullPath);
if (path == null)
{
return;
}
var processStartInfo = new ProcessStartInfo("explorer")
{
Arguments = path,
UseShellExecute = false
};
using (var process = new Process()) {
process.StartInfo = processStartInfo;
process.Start();
}
} }
#endregion #endregion
private void BindFieldControls() { private void BindFieldControls() {
// TODO: This is actually risky, if there are no references than the objects may be garbage collected
new BidirectionalBinding(btnFillColor, "SelectedColor", _surface.FieldAggregator.GetField(FieldType.FILL_COLOR), "Value", NotNullValidator.GetInstance()); new BidirectionalBinding(btnFillColor, "SelectedColor", _surface.FieldAggregator.GetField(FieldType.FILL_COLOR), "Value", NotNullValidator.GetInstance());
new BidirectionalBinding(btnLineColor, "SelectedColor", _surface.FieldAggregator.GetField(FieldType.LINE_COLOR), "Value", NotNullValidator.GetInstance()); new BidirectionalBinding(btnLineColor, "SelectedColor", _surface.FieldAggregator.GetField(FieldType.LINE_COLOR), "Value", NotNullValidator.GetInstance());
new BidirectionalBinding(lineThicknessUpDown, "Value", _surface.FieldAggregator.GetField(FieldType.LINE_THICKNESS), "Value", DecimalIntConverter.GetInstance(), NotNullValidator.GetInstance()); new BidirectionalBinding(lineThicknessUpDown, "Value", _surface.FieldAggregator.GetField(FieldType.LINE_THICKNESS), "Value", DecimalIntConverter.GetInstance(), NotNullValidator.GetInstance());

View file

@ -507,55 +507,17 @@ namespace Greenshot.Helpers {
return; return;
} }
ISurface surface = eventArgs.Surface; ISurface surface = eventArgs.Surface;
if (surface != null && eventArgs.MessageType == SurfaceMessageTyp.FileSaved) { if (surface != null)
if (!string.IsNullOrEmpty(surface.LastSaveFullPath)) { {
string errorMessage = null; switch (eventArgs.MessageType)
var path = Path.GetDirectoryName(surface.LastSaveFullPath); {
try { case SurfaceMessageTyp.FileSaved:
ExplorerHelper.OpenInExplorer(path); ExplorerHelper.OpenInExplorer(surface.LastSaveFullPath);
} break;
catch (Exception ex) case SurfaceMessageTyp.UploadedUri:
{ Process.Start(surface.UploadUrl);
errorMessage = ex.Message; break;
}
// Added fallback for when the explorer can't be found
// TODO: Check if this makes sense
if (errorMessage != null) {
try {
string windowsPath = Environment.GetEnvironmentVariable("SYSTEMROOT");
if (windowsPath != null)
{
string explorerPath = Path.Combine(windowsPath, "explorer.exe");
if (File.Exists(explorerPath))
{
var lastSaveDirectory = Path.GetDirectoryName(surface.LastSaveFullPath);
if (lastSaveDirectory != null)
{
var processStartInfo = new ProcessStartInfo(explorerPath)
{
Arguments = lastSaveDirectory,
UseShellExecute = false
};
using (var process = new Process()) {
process.StartInfo = processStartInfo;
process.Start();
}
}
errorMessage = null;
}
}
}
catch
{
// ignored
}
}
if (errorMessage != null) {
MessageBox.Show($"{errorMessage}\r\nexplorer.exe {surface.LastSaveFullPath}", "explorer.exe", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
} }
} else if (!string.IsNullOrEmpty(surface?.UploadUrl)) {
Process.Start(surface.UploadUrl);
} }
Log.DebugFormat("Deregistering the BalloonTipClicked"); Log.DebugFormat("Deregistering the BalloonTipClicked");
RemoveEventHandler(sender, e); RemoveEventHandler(sender, e);

View file

@ -32,7 +32,7 @@ namespace GreenshotPlugin.Core
} }
} }
// Check if path is a file // Check if path is a file
else if (File.Exists(path)) if (File.Exists(path))
{ {
// Start the explorer process and select the file // Start the explorer process and select the file
using (var explorer = Process.Start("explorer.exe", $"/select,\"{path}\"")) using (var explorer = Process.Start("explorer.exe", $"/select,\"{path}\""))