sourcegit/src/ViewModels/Workspace.cs
mpagani eeba761061 feat: add workspace-specific default clone directory functionality
- Implemented logic in Clone.cs to set ParentFolder based on the active workspace's DefaultCloneDir if available, falling back to the global GitDefaultCloneDir.
- Added DefaultCloneDir property to Workspace.cs to store the default clone directory for each workspace.
- Updated ConfigureWorkspace.axaml to include a TextBox and Button for setting the DefaultCloneDir in the UI.
- Implemented folder selection functionality in ConfigureWorkspace.axaml.cs to allow users to choose a directory for cloning.
- This closes issue #1145
2025-04-14 10:29:24 +02:00

66 lines
1.5 KiB
C#

using System.Collections.Generic;
using Avalonia.Media;
using CommunityToolkit.Mvvm.ComponentModel;
namespace SourceGit.ViewModels
{
public class Workspace : ObservableObject
{
public string Name
{
get => _name;
set => SetProperty(ref _name, value);
}
public uint Color
{
get => _color;
set
{
if (SetProperty(ref _color, value))
OnPropertyChanged(nameof(Brush));
}
}
public List<string> Repositories
{
get;
set;
} = new List<string>();
public int ActiveIdx
{
get;
set;
} = 0;
public bool IsActive
{
get => _isActive;
set => SetProperty(ref _isActive, value);
}
public bool RestoreOnStartup
{
get => _restoreOnStartup;
set => SetProperty(ref _restoreOnStartup, value);
}
public string DefaultCloneDir
{
get => _defaultCloneDir;
set => SetProperty(ref _defaultCloneDir, value);
}
public IBrush Brush
{
get => new SolidColorBrush(_color);
}
private string _name = string.Empty;
private uint _color = 4278221015;
private bool _isActive = false;
private bool _restoreOnStartup = true;
private string _defaultCloneDir = string.Empty;
}
}