mirror of
https://github.com/greenshot/greenshot
synced 2025-07-16 10:03:44 -07:00
BUG-2114 / BUG-2095 / FEATURE-998 : Some more consolidation of the code.
This commit is contained in:
parent
2caa0d3d55
commit
e620cb93ec
3 changed files with 13 additions and 64 deletions
|
@ -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());
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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}\""))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue