/
vasiukoff
/
sg
Обзор
Документация
Войти
/
vasiukoff
/
sg
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/ViewModels/ConfigureWorkspace.cs
85 строк
2 KB
Nathan Baulch
code_style: general cleanup (#1497)
03 июл 2025, 05:32
Не верифицирован
03 июл 2025, 05:32
ec17ea9
Код
Авторство
О чём код?
using System; using Avalonia.Collections; using CommunityToolkit.Mvvm.ComponentModel; namespace SourceGit.ViewModels { public class ConfigureWorkspace : ObservableObject { public AvaloniaList<Workspace> Workspaces { get; } public Workspace Selected { get => _selected; set { if (SetProperty(ref _selected, value)) CanDeleteSelected = value is { IsActive: false }; } } public bool CanDeleteSelected { get => _canDeleteSelected; private set => SetProperty(ref _canDeleteSelected, value); } public ConfigureWorkspace() { Workspaces = new(Preferences.Instance.Workspaces); } public void Add() { var workspace = new Workspace() { Name = $"Unnamed {DateTime.Now:yyyy-MM-dd HH:mm:ss}" }; Preferences.Instance.Workspaces.Add(workspace); Workspaces.Add(workspace); Selected = workspace; } public void Delete() { if (_selected == null || _selected.IsActive) return; Preferences.Instance.Workspaces.Remove(_selected); Workspaces.Remove(_selected); } public void MoveSelectedUp() { if (_selected == null) return; var idx = Workspaces.IndexOf(_selected); if (idx == 0) return; Workspaces.Move(idx - 1, idx); Preferences.Instance.Workspaces.RemoveAt(idx); Preferences.Instance.Workspaces.Insert(idx - 1, _selected); } public void MoveSelectedDown() { if (_selected == null) return; var idx = Workspaces.IndexOf(_selected); if (idx == Workspaces.Count - 1) return; Workspaces.Move(idx + 1, idx); Preferences.Instance.Workspaces.RemoveAt(idx); Preferences.Instance.Workspaces.Insert(idx + 1, _selected); } private Workspace _selected = null; private bool _canDeleteSelected = false; } }