private void MenuItemMissingDust_OnClick(object sender, RoutedEventArgs e) { var deck = DeckPickerList.GetSelectedDeckVersion(); if (deck == null) { return; } this.ShowMissingCardsMessage(deck); }
private void BtnClipboard_OnClick(object sender, RoutedEventArgs e) { var deck = DeckPickerList.GetSelectedDeckVersion(); if (deck == null) { return; } Clipboard.SetText(Helper.DeckToIdString(deck)); this.ShowMessage("", "copied to clipboard"); Logger.WriteLine("Copied " + deck.GetDeckInfo() + " to clipboard", "Export"); }
private async void BtnSaveToFile_OnClick(object sender, RoutedEventArgs e) { var deck = DeckPickerList.GetSelectedDeckVersion(); if (deck == null) { return; } var path = Helper.GetValidFilePath("SavedDecks", deck.Name, ".xml"); XmlManager <Deck> .Save(path, deck); await ShowSavedFileMessage(path, "SavedDecks"); Logger.WriteLine("Saved " + deck.GetDeckInfo() + " to file: " + path, "Export"); }
private async void BtnCancelEdit_Click(object sender, RoutedEventArgs e) { if (_newDeckUnsavedChanges) { var result = await this.ShowMessageAsync(EditingDeck? "Cancel editing" : "Cancel deck creation", EditingDeck? "All changes made to the deck will be lost." : "The new deck will be lost.", MessageDialogStyle.AffirmativeAndNegative); if (result != MessageDialogResult.Affirmative) { return; } } ListViewDeck.ItemsSource = DeckPickerList.SelectedDeck != null?DeckPickerList.GetSelectedDeckVersion().Cards : null; CloseNewDeck(); EditingDeck = false; editedDeckName = string.Empty; }
private async void BtnScreenhot_Click(object sender, RoutedEventArgs e) { if (DeckPickerList.SelectedDeck == null) { return; } Logger.WriteLine("Creating screenshot of " + DeckPickerList.GetSelectedDeckVersion().GetDeckInfo(), "Screenshot"); var screenShotWindow = new PlayerWindow(Config.Instance, DeckPickerList.GetSelectedDeckVersion().Cards, true); screenShotWindow.Show(); screenShotWindow.Top = 0; screenShotWindow.Left = 0; await Task.Delay(100); var source = PresentationSource.FromVisual(screenShotWindow); if (source == null) { return; } var dpiX = 96.0 * source.CompositionTarget.TransformToDevice.M11; var dpiY = 96.0 * source.CompositionTarget.TransformToDevice.M22; var fileName = Helper.ScreenshotDeck(screenShotWindow.ListViewPlayer, dpiX, dpiY, DeckPickerList.GetSelectedDeckVersion().Name); screenShotWindow.Shutdown(); if (fileName == null) { await this.ShowMessageAsync("", "Error saving screenshot"); } else { await ShowSavedFileMessage(fileName, "Screenshots"); } }
private async void BtnCloneSelectedVersion_Click(object sender, RoutedEventArgs e) { var deck = DeckPickerList.GetSelectedDeckVersion(); if (deck == null) { return; } var cloneStats = (await this.ShowMessageAsync("Clone game history?", "(Cloned games do not count towards class or overall stats.)", MessageDialogStyle.AffirmativeAndNegative, new MetroDialogSettings { AffirmativeButtonText = "clone history", NegativeButtonText = "do not clone history" })) == MessageDialogResult.Affirmative; var clone = (Deck)deck.Clone(); clone.ResetVersions(); var originalStatsEntry = clone.DeckStats; while (DeckList.DecksList.Any(d => d.Name == clone.Name)) { var settings = new MetroDialogSettings { AffirmativeButtonText = "Set", DefaultText = clone.Name }; var name = await this.ShowInputAsync("Name already exists", "You already have a deck with that name, please select a different one.", settings); if (string.IsNullOrEmpty(name)) { return; } clone.Name = name; } DeckList.DecksList.Add(clone); DeckPickerList.AddAndSelectDeck(clone); WriteDecks(); var newStatsEntry = DeckStatsList.Instance.DeckStats.FirstOrDefault(d => d.Name == clone.Name); if (newStatsEntry == null) { newStatsEntry = new DeckStats(clone.Name); DeckStatsList.Instance.DeckStats.Add(newStatsEntry); } //clone game stats if (cloneStats) { foreach (var game in originalStatsEntry.Games) { newStatsEntry.AddGameResult(game.CloneWithNewId()); } Logger.WriteLine("cloned gamestats"); } DeckStatsList.Save(); DeckPickerList.UpdateList(); }