eliot-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Eliot-dev] eliot/qt dic_wizard.cpp


From: Olivier Teulière
Subject: [Eliot-dev] eliot/qt dic_wizard.cpp
Date: Sun, 16 May 2010 10:05:10 +0000

CVSROOT:        /cvsroot/eliot
Module name:    eliot
Changes by:     Olivier Teulière <ipkiss>       10/05/16 10:05:10

Modified files:
        qt             : dic_wizard.cpp 

Log message:
        Fixed a bug and added a sanity checks (no duplicate entries in the word 
list)

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/eliot/qt/dic_wizard.cpp?cvsroot=eliot&r1=1.2&r2=1.3

Patches:
Index: dic_wizard.cpp
===================================================================
RCS file: /cvsroot/eliot/eliot/qt/dic_wizard.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- dic_wizard.cpp      15 May 2010 12:20:20 -0000      1.2
+++ dic_wizard.cpp      16 May 2010 10:05:09 -0000      1.3
@@ -99,11 +99,13 @@
     if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
         return false;
 
+    QSet<QString> words;
     QMap<QChar, int> lettersWithLine;
     int lineNb = 1;
     QTextStream in(&file);
     while (!in.atEnd()) {
         QString line = in.readLine().toUpper();
+        words.insert(line);
         for (int i = 0; i < line.size(); ++i)
         {
             if (!lettersWithLine.contains(line[i]))
@@ -136,7 +138,17 @@
                              QMessageBox::Ok);
         errorBox.setInformativeText(_q("Please correct the word list."));
         errorBox.exec();
+        return false;
+    }
 
+    // Detect duplicate entries in the word list
+    if (words.size() != lineNb - 1)
+    {
+        QString msg = _q("The word list contains duplicate entries.");
+        QMessageBox errorBox(QMessageBox::Critical, _q("Eliot"), msg,
+                             QMessageBox::Ok);
+        errorBox.setInformativeText(_q("Please correct the word list."));
+        errorBox.exec();
         return false;
     }
 
@@ -234,7 +246,7 @@
         m_model->setData(m_model->index(rowNum, 3),
                          (bool)QString("AEIOUY").contains(ch));
         m_model->setData(m_model->index(rowNum, 4),
-                         (bool)QString("AEIOU").contains(ch));
+                         !(bool)QString("AEIOU").contains(ch));
     }
 
     // Add another line for the joker



reply via email to

[Prev in Thread] Current Thread [Next in Thread]