mirror of
https://github.com/sourcegit-scm/sourcegit
synced 2025-06-07 11:54:59 +00:00
fix: OpenFolderPickerAsync
raise exception when selected a drive root such as E:\
Signed-off-by: leo <longshuang@msn.cn>
This commit is contained in:
parent
1bd2044589
commit
bc5deac9fe
8 changed files with 32 additions and 9 deletions
|
@ -6,6 +6,7 @@
|
|||
{
|
||||
WorkingDirectory = repo;
|
||||
Context = repo;
|
||||
Editor = EditorType.None;
|
||||
Args = $"format-patch {commit} -1 --output=\"{saveTo}\"";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -452,7 +452,9 @@ namespace SourceGit.ViewModels
|
|||
var selected = await storageProvider.OpenFolderPickerAsync(options);
|
||||
if (selected.Count == 1)
|
||||
{
|
||||
var saveTo = Path.Combine(selected[0].Path.LocalPath, Path.GetFileName(file.Path));
|
||||
var folder = selected[0];
|
||||
var folderPath = folder is { Path: { IsAbsoluteUri: true } path } ? path.LocalPath : folder?.Path.ToString();
|
||||
var saveTo = Path.Combine(folderPath, Path.GetFileName(file.Path));
|
||||
Commands.SaveRevisionFile.Run(_repo.FullPath, _commit.SHA, file.Path, saveTo);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -333,10 +333,12 @@ namespace SourceGit.ViewModels
|
|||
{
|
||||
log = _repo.CreateLog("Save as Patch");
|
||||
|
||||
var folder = picker[0];
|
||||
var folderPath = folder is { Path: { IsAbsoluteUri: true } path } ? path.LocalPath : folder?.Path.ToString();
|
||||
var succ = false;
|
||||
for (var i = 0; i < selected.Count; i++)
|
||||
{
|
||||
var saveTo = GetPatchFileName(picker[0].Path.LocalPath, selected[i], i);
|
||||
var saveTo = GetPatchFileName(folderPath, selected[i], i);
|
||||
succ = await Task.Run(() => new Commands.FormatPatch(_repo.FullPath, selected[i].SHA, saveTo).Use(log).Exec());
|
||||
if (!succ)
|
||||
break;
|
||||
|
@ -691,8 +693,10 @@ namespace SourceGit.ViewModels
|
|||
{
|
||||
log = _repo.CreateLog("Save as Patch");
|
||||
|
||||
var saveTo = GetPatchFileName(selected[0].Path.LocalPath, commit);
|
||||
var succ = new Commands.FormatPatch(_repo.FullPath, commit.SHA, saveTo).Use(log).Exec();
|
||||
var folder = selected[0];
|
||||
var folderPath = folder is { Path: { IsAbsoluteUri: true } path } ? path.LocalPath : folder?.Path.ToString();
|
||||
var saveTo = GetPatchFileName(folderPath, commit);
|
||||
var succ = await Task.Run(() => new Commands.FormatPatch(_repo.FullPath, commit.SHA, saveTo).Use(log).Exec());
|
||||
if (succ)
|
||||
App.SendNotification(_repo.FullPath, App.Text("SaveAsPatchSuccess"));
|
||||
}
|
||||
|
|
|
@ -23,7 +23,11 @@ namespace SourceGit.Views
|
|||
{
|
||||
var selected = await toplevel.StorageProvider.OpenFolderPickerAsync(options);
|
||||
if (selected.Count == 1)
|
||||
TxtLocation.Text = selected[0].Path.LocalPath;
|
||||
{
|
||||
var folder = selected[0];
|
||||
var folderPath = folder is { Path: { IsAbsoluteUri: true } path } ? path.LocalPath : folder?.Path.ToString();
|
||||
TxtLocation.Text = folderPath;
|
||||
}
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
|
|
|
@ -23,7 +23,11 @@ namespace SourceGit.Views
|
|||
{
|
||||
var selected = await toplevel.StorageProvider.OpenFolderPickerAsync(options);
|
||||
if (selected.Count == 1)
|
||||
TxtParentFolder.Text = selected[0].Path.LocalPath;
|
||||
{
|
||||
var folder = selected[0];
|
||||
var folderPath = folder is { Path: { IsAbsoluteUri: true } path } ? path.LocalPath : folder?.Path.ToString();
|
||||
TxtParentFolder.Text = folderPath;
|
||||
}
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
|
|
|
@ -32,7 +32,9 @@ namespace SourceGit.Views
|
|||
var selected = await StorageProvider.OpenFolderPickerAsync(options);
|
||||
if (selected.Count == 1)
|
||||
{
|
||||
workspace.Selected.DefaultCloneDir = selected[0].Path.LocalPath;
|
||||
var folder = selected[0];
|
||||
var folderPath = folder is { Path: { IsAbsoluteUri: true } path } ? path.LocalPath : folder?.Path.ToString();
|
||||
workspace.Selected.DefaultCloneDir = folderPath;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
|
|
@ -250,7 +250,9 @@ namespace SourceGit.Views
|
|||
var selected = await StorageProvider.OpenFolderPickerAsync(options);
|
||||
if (selected.Count == 1)
|
||||
{
|
||||
ViewModels.Preferences.Instance.GitDefaultCloneDir = selected[0].Path.LocalPath;
|
||||
var folder = selected[0];
|
||||
var folderPath = folder is { Path: { IsAbsoluteUri: true } path } ? path.LocalPath : folder?.Path.ToString();
|
||||
ViewModels.Preferences.Instance.GitDefaultCloneDir = folderPath;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
|
|
@ -35,7 +35,11 @@ namespace SourceGit.Views
|
|||
{
|
||||
var selected = await topLevel.StorageProvider.OpenFolderPickerAsync(options);
|
||||
if (selected.Count == 1)
|
||||
ViewModels.Welcome.Instance.OpenOrInitRepository(selected[0].Path.LocalPath, null, false);
|
||||
{
|
||||
var folder = selected[0];
|
||||
var folderPath = folder is { Path: { IsAbsoluteUri: true } path } ? path.LocalPath : folder?.Path.ToString();
|
||||
ViewModels.Welcome.Instance.OpenOrInitRepository(folderPath, null, false);
|
||||
}
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue