Esempio n. 1
0
        /// <summary>
        /// A settings dialog to change the comparison rules for one wordpair.
        /// </summary>
        /// <param name="comparisonRules">The current comparison rules</param>
        public SmartComparisonSettings(StringComp.Rules comparisonRules)
        {
            InitializeComponent();
            SetTheme();

            Rules = comparisonRules;
        }
Esempio n. 2
0
        private Quiz ConstructQuiz()
        {
            var quiz = new Quiz(cmb_lang1.Text, cmb_lang2.Text, MetaData.QUIZ_FILE_FORMAT_VERSION);

            quiz.GUID = QuizGuid;

            ulong i = 0;

            foreach (var cardControl in flp_cards.Controls.OfType <QuizEditorCard>().Where(x => !CardEmpty(x)))
            {
                cardControl.RemoveSynonymsEqualToWords();

                StringComp.Rules comparisonRules = cardControl.ComparisonRules.Data;

                var card = new Card(cardControl.txt_front.Text, cardControl.txt_back.Text, comparisonRules, cardControl.FrontSynonyms, cardControl.BackSynonyms);
                card.Guid = cardControl.Guid;
                quiz.Cards.Add(card);
                ++i;
            }

            return(quiz);
        }
Esempio n. 3
0
        private UndoRedoActionPair SetGlobalRuleState(StringComp.Rules rules, bool enabled)
        {
            var undoActions = new List <Action>();
            var redoActions = new List <Action>();

            foreach (var wprules in flp_cards.Controls.OfType <QuizEditorCard>().Select(x => x.ComparisonRules))
            {
                StringComp.Rules newval;
                StringComp.Rules oldval = wprules.Data;

                if (enabled)
                {
                    newval = wprules.Data | rules;
                }
                else
                {
                    newval = wprules.Data & ~rules;
                }

                if (newval == oldval)
                {
                    continue;
                }

                undoActions.Add(wprules.SetSemiSilentUR(oldval));
                redoActions.Add(wprules.SetSemiSilentUR(newval));

                wprules.SetSemiSilent(newval);
            }

            return(new UndoRedoActionPair(
                       undoActions.ToArray(),
                       redoActions.ToArray(),
                       "Global set comparison rules state",
                       new OwnerControlData(this, this.Parent)
                       ));
        }
Esempio n. 4
0
        private static void ChkAddWordPair(this IList <Card> wpList, string word1, string word2, StringComp.Rules rules, bool multipleTranslationsAsDifferentWordPairs)
        {
            foreach (var wp in wpList)
            {
                if (word1 == wp.Front)
                {
                    if (word2 == wp.Back)
                    {
                        return;
                    }
                    else if (!multipleTranslationsAsDifferentWordPairs)
                    {
                        wp.BackSynonyms.Add(word2);
                        return;
                    }
                }
                else if (word2 == wp.Back && !multipleTranslationsAsDifferentWordPairs)
                {
                    wp.FrontSynonyms.Add(word1);
                    return;
                }
            }

            var wordPair = new Card(word1, word2, rules);

            wpList.Add(wordPair);
        }