visual fixes

This commit is contained in:
Alex Bezdieniezhnykh
2025-05-17 19:34:02 +03:00
parent d02550f5a0
commit dae342b70e
3 changed files with 17 additions and 6 deletions
+3 -2
View File
@@ -7,9 +7,10 @@ using Azaion.Common.Extensions;
namespace Azaion.Common.DTO; namespace Azaion.Common.DTO;
public class AnnotationThumbnail(Annotation annotation) : INotifyPropertyChanged public class AnnotationThumbnail(Annotation annotation, bool isValidator) : INotifyPropertyChanged
{ {
public Annotation Annotation { get; set; } = annotation; public Annotation Annotation { get; set; } = annotation;
public bool IsValidator { get; set; } = isValidator;
private BitmapImage? _thumbnail; private BitmapImage? _thumbnail;
public BitmapImage? Thumbnail public BitmapImage? Thumbnail
@@ -29,7 +30,7 @@ public class AnnotationThumbnail(Annotation annotation) : INotifyPropertyChanged
public string ImageName => Path.GetFileName(Annotation.ImagePath); public string ImageName => Path.GetFileName(Annotation.ImagePath);
public string CreatedEmail => Annotation.CreatedEmail; public string CreatedEmail => Annotation.CreatedEmail;
public bool IsSeed => Annotation.AnnotationStatus == AnnotationStatus.Created; public bool IsSeed => IsValidator && Annotation.AnnotationStatus == AnnotationStatus.Created;
public event PropertyChangedEventHandler? PropertyChanged; public event PropertyChangedEventHandler? PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string? propertyName = null) protected virtual void OnPropertyChanged([CallerMemberName] string? propertyName = null)
+7 -2
View File
@@ -8,6 +8,7 @@ using Azaion.Common.DTO.Config;
using Azaion.Common.Events; using Azaion.Common.Events;
using Azaion.Common.Services; using Azaion.Common.Services;
using Azaion.CommonSecurity.DTO; using Azaion.CommonSecurity.DTO;
using Azaion.CommonSecurity.Services;
using LinqToDB; using LinqToDB;
using MediatR; using MediatR;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
@@ -36,6 +37,7 @@ public partial class DatasetExplorer
private readonly IMediator _mediator; private readonly IMediator _mediator;
public readonly List<DetectionClass> AnnotationsClasses; public readonly List<DetectionClass> AnnotationsClasses;
private IAzaionApi _azaionApi;
public bool ThumbnailLoading { get; set; } public bool ThumbnailLoading { get; set; }
@@ -49,7 +51,8 @@ public partial class DatasetExplorer
IGalleryService galleryService, IGalleryService galleryService,
FormState formState, FormState formState,
IDbFactory dbFactory, IDbFactory dbFactory,
IMediator mediator) IMediator mediator,
IAzaionApi azaionApi)
{ {
InitializeComponent(); InitializeComponent();
@@ -59,6 +62,7 @@ public partial class DatasetExplorer
_galleryService = galleryService; _galleryService = galleryService;
_dbFactory = dbFactory; _dbFactory = dbFactory;
_mediator = mediator; _mediator = mediator;
_azaionApi = azaionApi;
var photoModes = Enum.GetValues(typeof(PhotoMode)).Cast<PhotoMode>().ToList(); var photoModes = Enum.GetValues(typeof(PhotoMode)).Cast<PhotoMode>().ToList();
_annotationsDict = _annotationConfig.DetectionClasses.SelectMany(cls => photoModes.Select(mode => (int)mode + cls.Id)) _annotationsDict = _annotationConfig.DetectionClasses.SelectMany(cls => photoModes.Select(mode => (int)mode + cls.Id))
@@ -87,6 +91,7 @@ public partial class DatasetExplorer
ThumbnailsView.SelectionChanged += (_, _) => ThumbnailsView.SelectionChanged += (_, _) =>
{ {
StatusText.Text = $"Обрано: {ThumbnailsView.SelectedItems.Count} | {ThumbnailsView.SelectedIndex} / {SelectedAnnotations.Count}"; StatusText.Text = $"Обрано: {ThumbnailsView.SelectedItems.Count} | {ThumbnailsView.SelectedIndex} / {SelectedAnnotations.Count}";
ValidateBtn.Visibility = ThumbnailsView.SelectedItems.Cast<AnnotationThumbnail>().Any(x => x.IsSeed) ValidateBtn.Visibility = ThumbnailsView.SelectedItems.Cast<AnnotationThumbnail>().Any(x => x.IsSeed)
? Visibility.Visible ? Visibility.Visible
: Visibility.Hidden; : Visibility.Hidden;
@@ -288,7 +293,7 @@ public partial class DatasetExplorer
.OrderBy(x => x.Value.AnnotationStatus) .OrderBy(x => x.Value.AnnotationStatus)
.ThenByDescending(x => x.Value.CreatedDate)) .ThenByDescending(x => x.Value.CreatedDate))
{ {
var annThumb = new AnnotationThumbnail(ann.Value); var annThumb = new AnnotationThumbnail(ann.Value, _azaionApi.CurrentUser.Role.IsValidator());
SelectedAnnotations.Add(annThumb); SelectedAnnotations.Add(annThumb);
SelectedAnnotationDict.Add(annThumb.Annotation.Name, annThumb); SelectedAnnotationDict.Add(annThumb.Annotation.Name, annThumb);
} }
@@ -7,18 +7,23 @@ using Azaion.Common.DTO;
using Azaion.Common.DTO.Queue; using Azaion.Common.DTO.Queue;
using Azaion.Common.Events; using Azaion.Common.Events;
using Azaion.Common.Services; using Azaion.Common.Services;
using Azaion.CommonSecurity.DTO;
using Azaion.CommonSecurity.Services;
using MediatR; using MediatR;
namespace Azaion.Dataset; namespace Azaion.Dataset;
public class DatasetExplorerEventHandler( public class DatasetExplorerEventHandler(
DatasetExplorer datasetExplorer, DatasetExplorer datasetExplorer,
IAnnotationService annotationService) : IAnnotationService annotationService,
IAzaionApi azaionApi) :
INotificationHandler<KeyEvent>, INotificationHandler<KeyEvent>,
INotificationHandler<DatasetExplorerControlEvent>, INotificationHandler<DatasetExplorerControlEvent>,
INotificationHandler<AnnotationCreatedEvent>, INotificationHandler<AnnotationCreatedEvent>,
INotificationHandler<AnnotationsDeletedEvent> INotificationHandler<AnnotationsDeletedEvent>
{ {
private readonly IAzaionApi _azaionApi = azaionApi;
private readonly Dictionary<Key, PlaybackControlEnum> _keysControlEnumDict = new() private readonly Dictionary<Key, PlaybackControlEnum> _keysControlEnumDict = new()
{ {
{ Key.Enter, PlaybackControlEnum.SaveAnnotations }, { Key.Enter, PlaybackControlEnum.SaveAnnotations },
@@ -122,7 +127,7 @@ public class DatasetExplorerEventHandler(
if (annotation.Classes.Contains(selectedClass) || selectedClass == -1) if (annotation.Classes.Contains(selectedClass) || selectedClass == -1)
{ {
var index = 0; var index = 0;
var annThumb = new AnnotationThumbnail(annotation); var annThumb = new AnnotationThumbnail(annotation, _azaionApi.CurrentUser.Role.IsValidator());
if (datasetExplorer.SelectedAnnotationDict.ContainsKey(annThumb.Annotation.Name)) if (datasetExplorer.SelectedAnnotationDict.ContainsKey(annThumb.Annotation.Name))
{ {
datasetExplorer.SelectedAnnotationDict.Remove(annThumb.Annotation.Name); datasetExplorer.SelectedAnnotationDict.Remove(annThumb.Annotation.Name);