119 lines
3.5 KiB
C#
119 lines
3.5 KiB
C#
|
using System.Diagnostics;
|
||
|
using PdbFind.Gui.Properties;
|
||
|
using PdbFind.Lib;
|
||
|
|
||
|
namespace PdbFind.Gui
|
||
|
{
|
||
|
public partial class FormPdbFind : Form
|
||
|
{
|
||
|
public FormPdbFind()
|
||
|
{
|
||
|
InitializeComponent();
|
||
|
|
||
|
textBoxSysStore.Text = Settings.Default.SymStore;
|
||
|
}
|
||
|
|
||
|
private void buttonSymStoreBrowse_Click(object sender, EventArgs e)
|
||
|
{
|
||
|
using var fbd = new FolderBrowserDialog();
|
||
|
fbd.InitialDirectory = textBoxSysStore.Text;
|
||
|
if (fbd.ShowDialog() == DialogResult.OK)
|
||
|
{
|
||
|
if (!string.IsNullOrWhiteSpace(fbd.SelectedPath) && Directory.Exists(fbd.SelectedPath))
|
||
|
{
|
||
|
textBoxSysStore.Text = fbd.SelectedPath;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private void FormPdbFind_FormClosed(object sender, FormClosedEventArgs e)
|
||
|
{
|
||
|
Settings.Default.SymStore = textBoxSysStore.Text;
|
||
|
Settings.Default.Save();
|
||
|
}
|
||
|
|
||
|
private void buttonPdbExplore_Click(object sender, EventArgs e)
|
||
|
{
|
||
|
var pdb = textBoxPdbFile.Text;
|
||
|
if (!string.IsNullOrWhiteSpace(pdb) && File.Exists(pdb))
|
||
|
{
|
||
|
ShowSelectedInExplorer.FileOrFolder(pdb);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private void buttonPeFileBrowse_Click(object sender, EventArgs e)
|
||
|
{
|
||
|
using var ofd = new OpenFileDialog();
|
||
|
ofd.CheckFileExists = true;
|
||
|
ofd.Multiselect = false;
|
||
|
var pe = textBoxPeFile.Text;
|
||
|
if (!string.IsNullOrWhiteSpace(pe) && File.Exists(pe))
|
||
|
{
|
||
|
ofd.InitialDirectory = Path.GetDirectoryName(pe);
|
||
|
ofd.FileName = Path.GetFileName(pe);
|
||
|
}
|
||
|
|
||
|
if (ofd.ShowDialog() == DialogResult.OK)
|
||
|
{
|
||
|
if (File.Exists(ofd.FileName))
|
||
|
{
|
||
|
textBoxPeFile.Text = ofd.FileName;
|
||
|
LocatePdb();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private void LocatePdb()
|
||
|
{
|
||
|
var store = textBoxSysStore.Text;
|
||
|
var pe = textBoxPeFile.Text;
|
||
|
|
||
|
if (string.IsNullOrWhiteSpace(store) || !Directory.Exists(store))
|
||
|
{
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if (string.IsNullOrWhiteSpace(pe) || !File.Exists(pe))
|
||
|
{
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
try
|
||
|
{
|
||
|
textBoxPdbFile.Text = Locator.LocatePdbInStore(pe, store);
|
||
|
}
|
||
|
catch (Exception e)
|
||
|
{
|
||
|
MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private void textBoxPeFile_TextChanged(object sender, EventArgs e)
|
||
|
{
|
||
|
textBoxPdbFile.Text = "";
|
||
|
}
|
||
|
|
||
|
private void buttonLocatePdb_Click(object sender, EventArgs e)
|
||
|
{
|
||
|
LocatePdb();
|
||
|
}
|
||
|
|
||
|
private void FormPdbFind_DragEnter(object sender, DragEventArgs e)
|
||
|
{
|
||
|
if (e.Data != null && e.Data.GetDataPresent(DataFormats.FileDrop))
|
||
|
{
|
||
|
e.Effect = DragDropEffects.Copy;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private void FormPdbFind_DragDrop(object sender, DragEventArgs e)
|
||
|
{
|
||
|
var files = (string[]?)e.Data?.GetData(DataFormats.FileDrop);
|
||
|
if (files is { Length: > 0 })
|
||
|
{
|
||
|
textBoxPeFile.Text = files.First();
|
||
|
LocatePdb();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|