Merge pull request #189 from workgroupengineering/feature/Clone_Populate_URL

feature: Allow populating the repository URL from the clipboard
This commit is contained in:
leo 2024-06-20 09:15:16 +08:00 committed by GitHub
commit 0a35d8a22d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 28 additions and 0 deletions

View file

@ -317,6 +317,18 @@ namespace SourceGit
}); });
} }
public static async Task<string> GetClipboardTextAsync()
{
if (Current.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
{
if (desktop.MainWindow.Clipboard is { } clipboard)
{
return await clipboard.GetTextAsync();
}
}
return default;
}
private ResourceDictionary _activeLocale = null; private ResourceDictionary _activeLocale = null;
private ResourceDictionary _colorOverrides = null; private ResourceDictionary _colorOverrides = null;
private Models.INotificationReceiver _notificationReceiver = null; private Models.INotificationReceiver _notificationReceiver = null;

View file

@ -56,6 +56,22 @@ namespace SourceGit.ViewModels
_page = launcher.ActivePage; _page = launcher.ActivePage;
View = new Views.Clone() { DataContext = this }; View = new Views.Clone() { DataContext = this };
App.GetClipboardTextAsync()
.ContinueWith(t =>
{
if (t.IsFaulted)
{
t.Exception.Handle(static _ => true);
}
else if (t.IsCompleted)
{
var result = t.Result;
if (Models.Remote.IsValidURL(result))
{
Remote = result;
}
}
});
} }
public static ValidationResult ValidateRemote(string remote, ValidationContext _) public static ValidationResult ValidateRemote(string remote, ValidationContext _)