private async void AddToNewGroup_Click(object sender, RoutedEventArgs e) { var selectedItems = imagesGridView.SelectedItems.Select(i => i as ImageItem).ToList(); await SelectedContentFolder.GroupImagesAsync(selectedItems); SelectedContentFolder.ReorderImages(); }
public async Task SetTagsToFilter(List <string> tags) { int cntrState = ++SetTagsToFilterRequestCntr; Source.StopTasks(); // giving the data source time to cancel its work await Task.Delay(500); if (cntrState == SetTagsToFilterRequestCntr) { await SelectedContentFolder?.SetTagsToFilter(tags); } }
private async void RemoveImageFromAlbum_Click(object sender, RoutedEventArgs e) { var files = imagesGridView.SelectedItems; string title = "Remove image"; string message = $"Are you sure you want to remove this image from {SelectedContentFolder?.Name}?"; if (files.Count == 0) { return; } else if (files.Count > 1) { title = "Remove images"; message = $"Are you sure you want to remove those images from {SelectedContentFolder?.Name}?"; } ContentDialog removeImageDialog = new ContentDialog { Title = title, Content = message, PrimaryButtonText = "Remove", CloseButtonText = "Cancel" }; ContentDialogResult result = await removeImageDialog.ShowAsync(); // Delete the file if the user clicked the primary button. /// Otherwise, do nothing. if (result == ContentDialogResult.Primary) { foreach (var file in files) { if (file is ImageItem imageItem) { try { await DatabaseAccessService.DeleteImageAsync(imageItem.DatabaseId); } catch (Exception) { var messageDialog = new MessageDialog("Operation failed"); await messageDialog.ShowAsync(); } } } await SelectedContentFolder.UpdateQueryAsync(); } }
private void SelectGroup_Click(object sender, RoutedEventArgs e) { if (RightTappedImageItem?.Group is null) { return; } var group = SelectedContentFolder.GetGroupOfImageItems(RightTappedImageItem.Group.Id); imagesGridView.SelectedItems.Clear(); foreach (var item in group) { imagesGridView.SelectedItems.Add(item); } }
private async void ThumbnailGrid_Drop(object sender, DragEventArgs e) { var targetGroup = ((sender as Grid).DataContext as ImageItem).Group; if (targetGroup is null || targetGroup.Id < 0) { return; } foreach (var item in DragAndDropHelper.DraggedItems) { await(item as ImageItem).AddToGroupAsync(targetGroup); } if (DragAndDropHelper.DraggedItems.Count > 0) { SelectedContentFolder.ReorderImages(); } }
private async void MergeGroups_Click(object sender, RoutedEventArgs e) { var selectedItems = imagesGridView.SelectedItems; var allItems = SelectedContentFolder.GetRawImageItems(); if (selectedItems.Count < 2) { return; } var baseGroup = (selectedItems[0] as ImageItem).Group; var prevGroup = baseGroup; var selectedGroups = new List <DatabaseSimilaritygroup>(); foreach (ImageItem item in selectedItems) { if (item.Group != prevGroup) { prevGroup = item.Group; selectedGroups.Add(prevGroup); } } bool reorder = false; foreach (var item in allItems) { if (selectedGroups.Contains(item.Group)) { await item.AddToGroupAsync(baseGroup); reorder = true; } } if (reorder) { SelectedContentFolder.ReorderImages(); } }