Changeset 349


Ignore:
Timestamp:
08/03/10 20:39:59 (19 months ago)
Author:
antonbatenev.ya.ru
Message:

Замена метода определения идентификаторов для исключения их из проверки спеллчекером

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/spellchecker.cpp

    r268 r349  
    111111                format.setUnderlineStyle(QTextCharFormat::NoUnderline); 
    112112        else 
     113        { 
    113114                format.setUnderlineStyle(QTextCharFormat::SpellCheckUnderline); 
    114115                format.setUnderlineColor(Qt::red); 
     116        } 
    115117 
    116118        setFormat(start, length, format); 
     
    147149                        QString word = text.mid(pos, len); 
    148150 
    149                         if (m_stop_words.contains(word) == false && isMixCase(word) == false) 
     151                        if (m_stop_words.contains(word) == false && isNativeCase(word) == true) 
    150152                        { 
    151153                                QByteArray data = word.toUtf8(); 
     
    210212                if (pos == 0) 
    211213                { 
    212                         if (m_stop_words.contains(text) == true || isMixCase(text) == true) 
     214                        if (m_stop_words.contains(text) == true || isNativeCase(text) == false) 
    213215                                return 0; 
    214216 
     
    267269//---------------------------------------------------------------------------------------------- 
    268270 
    269 bool ASpellChecker::isMixCase (const QString& text) 
     271bool ASpellChecker::isNativeCase (const QString& text) 
    270272{ 
    271273        int lower = 0; 
     274        int upper = 0; 
    272275 
    273276        for (int i = 0; i < text.length(); i++) 
    274                 if (text[i].isUpper() == true && lower > 0) 
    275                         return true; 
     277        { 
     278                if (text[i].isUpper() == true) 
     279                { 
     280                        upper++; 
     281 
     282                        if (lower > 0) 
     283                                return false; 
     284                } 
    276285                else if (text[i].isLower() == true) 
     286                { 
    277287                        lower++; 
    278288 
    279         return false; 
     289                        if (upper > 1) 
     290                                return false; 
     291                } 
     292        } 
     293 
     294        return true; 
    280295} 
    281296//---------------------------------------------------------------------------------------------- 
  • trunk/spellchecker.h

    r268 r349  
    7373 
    7474                /*! 
    75                  * \brief Метод определения слов со смешанным регистром (исключается из проверки) 
    76                  * Актуально только для латиницы 
     75                 * \brief Метод определения слов со "сбитым" регистром (эти слова исключаются из проверки) 
     76                 * Используется только для латиницы, чтобы игнорировать составные идентификаторы в участках кода 
    7777                 * \param text слово для проверки 
    78                  * \return true, если слово в смешанном регистре (isMixCase) 
     78                 * \return true, если слово с естественным регистром букв, 
     79                 * false, если слово со "сбитым" регистром букв: 
     80                 * 
     81                 * country - true - слово в нижнем регистре 
     82                 * USSR - true - аббревиатура 
     83                 * Russia - true - имена собственные могут начинаться с заглавной 
     84                 * camelCase - false - заглавная буква в середине слова 
     85                 * TUrl - false - более одной заглавной буквы при наличии строчных 
     86                 * 
    7987                 */ 
    80                 bool isMixCase (const QString& text); 
     88                bool isNativeCase (const QString& text); 
    8189 
    8290                /*! 
  • trunk/version.h

    r346 r349  
    2020 * \brief Дата билда (заменяется автоматически при каждом билде в version.h, что и приводит к смене номера ревизии) 
    2121 */ 
    22 #define AVALON_DATE "Втр Июл 20 21:10:08 MSD 2010" 
     22#define AVALON_DATE "Втр Авг  3 20:13:10 MSD 2010" 
    2323 
    2424#endif 
Note: See TracChangeset for help on using the changeset viewer.