public void ChkRecovery() { var recoveryFiles = Directory.GetFiles(QuizCore.QUIZ_RECOVERY_FOLDER); if (recoveryFiles.Length > 0) { var quizRecovery = new QuizRecovery(recoveryFiles); if (quizRecovery.ShowDialog() == DialogResult.OK) { QuizRecoveryData = quizRecovery.QuizRecoveryData; //QuizPath = quizRecovery.QuizRecoveryData.QuizPath; LoadQuiz(quizRecovery.QuizRecoveryData.Quiz, quizRecovery.QuizRecoveryData.QuizPath, true); ChangedSinceLastSave = true; } } }
public QuizEditor(bool chkRecovery = true) { InitializeComponent(); ++Program.QuizEditorsOpen; if (Program.openQuizEditors.Count > 0) { var last = Program.openQuizEditors.Last(); WindowState = last.WindowState; if (WindowState == FormWindowState.Normal) { Size = last.Size; } } else { WindowState = Program.frmDashboard.WindowState; if (WindowState == FormWindowState.Normal) { Size = Program.frmDashboard.Size; } } this.Location = new Point(Program.frmDashboard.Location.X + (Program.frmDashboard.Size.Width / 2) - (this.Size.Width / 2), Program.frmDashboard.Location.Y + (Program.frmDashboard.Size.Height / 2) - (this.Size.Height / 2) ); AddCard(EMPTY_WORD_PAIRS_COUNT); QuizRecoveryData = new QuizRecoveryData(QuizPath); if (chkRecovery) { ChkRecovery(); } SetTheme(); if (MetaData.PRE_RELEASE) { this.Text += $" v{Application.ProductVersion} PRE-RELEASE"; } }
public void LoadQuiz(Quiz quiz = null, string quizPath = null, bool fromRecovery = false) { if (ChangedSinceLastSave) { //var msg = MessageBox.Show("You have unsaved changes. Save before loading a new quiz?", "SteelQuiz", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); var saveDontSave = new SaveDontSave(this, SystemIcons.Warning, true, "The project contains unsaved changes. Save before loading a new quiz?", "Save before loading new quiz? - SteelQuiz"); saveDontSave.ShowDialog(); if (saveDontSave.SaveDialogResult == SaveDontSave.SaveResult.Save) { if (!SaveQuiz()) { return; } } else if (saveDontSave.SaveDialogResult == SaveDontSave.SaveResult.Cancel) { return; } } if (!fromRecovery) { DeleteRecovery(); } if (quiz == null) { //ofd_quiz.InitialDirectory = ConfigManager.Config.SyncConfig.QuizFolders[0]; var ofd = ofd_quiz.ShowDialog(); if (ofd == DialogResult.OK) { QuizPath = ofd_quiz.FileName; } else { return; } try { quiz = JsonConvert.DeserializeObject <Quiz>(AtomicIO.AtomicRead(QuizPath)); } catch (AtomicException ex) { // Should never be reached as path exists throw ex; } } if (quizPath != null) { QuizPath = quizPath; } UpdateUndoRedoStacks = false; SetCards(quiz.Cards.Count + 2); QuizGuid = quiz.GUID; cmb_lang1.Text = quiz.CardFrontType; cmb_lang2.Text = quiz.CardBackType; for (int i = 0; i < quiz.Cards.Count; ++i) { var ctrl = flp_cards.Controls.OfType <QuizEditorCard>().ElementAt(i); var card = quiz.Cards[i]; ctrl.Guid = card.Guid; ctrl.txt_front.Text = card.Front; ctrl.FrontSynonyms = card.FrontSynonyms; ctrl.txt_back.Text = card.Back; ctrl.BackSynonyms = card.BackSynonyms; ctrl.ComparisonRules.Data = (StringComp.Rules)FixEnum(card.SmartComparisonRules); } if (!fromRecovery) { QuizRecoveryData = new QuizRecoveryData(QuizPath); ChangedSinceLastSave = false; } UndoStack.Clear(); RedoStack.Clear(); UpdateUndoRedoStacks = true; SetGlobalSmartComparisonState(); }