]> jfr.im git - irc/kvirc/KVIrc.git/commitdiff
Address @IceN9ne's review.
authorAndrio Celos <redacted>
Sun, 30 Jul 2017 08:48:46 +0000 (18:48 +1000)
committerBenjamin Staneck <redacted>
Thu, 28 Dec 2017 19:13:57 +0000 (20:13 +0100)
src/kvirc/kernel/KviOptions.cpp
src/kvirc/ui/KviUserListView.cpp
src/modules/options/OptionsWidget_input.h

index 114847b9911d865bf55c87a896d513f7aa3d83b1..8f26ffdc0b2fe9099ff8c20c5e8a9b2e1cc711ba 100644 (file)
@@ -637,7 +637,7 @@ KviUIntOption g_uintOptionsTable[KVI_NUM_UINT_OPTIONS] = {
        UINT_OPTION("MaximumBlowFishKeySize", 56, KviOption_sectFlagNone),
        UINT_OPTION("CustomCursorWidth", 1, KviOption_resetUpdateGui),
        UINT_OPTION("UserListMinimumWidth", 100, KviOption_sectFlagUserListView | KviOption_resetUpdateGui | KviOption_groupTheme),
-       UINT_OPTION("NickCompletionOrder", 2, KviOption_sectFlagNone)
+       UINT_OPTION("NickCompletionOrder", 2, KviOption_sectFlagInput)
 };
 
 #define FONT_OPTION(_name, _face, _size, _flags) \
index a055d1ee4c80483c81e1998ec472c5fc213e7c3f..97378bd1160dc107a632b474f21ca26470f646b9 100644 (file)
@@ -507,48 +507,39 @@ bool KviUserListView::completeNickStandard(const QString & szBegin, QString & sz
                        //              if(kvi_strEqualCI(entry->m_szNick.ptr(),c->currentNickName())
                        //      }
 
-                       if(pEntry->m_szNick.length() >= szBegin.length())
+                       if(pEntry->m_szNick.length() < szBegin.length()) continue;
+                       // No match if it's shorter than the prefix entered.
+
+                       bool bEqual = KviQString::equalCIN(szBegin, pEntry->m_szNick, szBegin.length());
+                       if(!bEqual && KVI_OPTION_BOOL(KviOption_boolIgnoreSpecialCharactersInNickCompletion))
                        {
-                               bool bEqual = KviQString::equalCIN(szBegin, pEntry->m_szNick, szBegin.length());
-                               if(!bEqual && KVI_OPTION_BOOL(KviOption_boolIgnoreSpecialCharactersInNickCompletion))
-                               {
-                                       QString szTmp = pEntry->m_szNick;
-                                       szTmp.remove(QRegExp("[^a-zA-Z0-9]"));
-                                       bEqual = KviQString::equalCIN(szBegin, szTmp, szBegin.length());
-                               }
+                               QString szTmp = pEntry->m_szNick;
+                               szTmp.remove(QRegExp("[^a-zA-Z0-9]"));
+                               bEqual = KviQString::equalCIN(szBegin, szTmp, szBegin.length());
+                       }
 
-                               if(bEqual)
+                       if(bEqual)
+                       {
+                               // Matching entry; insert it into the list.
+                               std::list<QString>::iterator it;
+                               switch(KVI_OPTION_UINT(KviOption_uintNickCompletionOrder))
                                {
-                                       // Matching entry; insert it into the list.
-                                       std::list<QString>::iterator it;
-                                       switch (KVI_OPTION_UINT(KviOption_uintNickCompletionOrder))
-                                       {
-                                               case 0:  // As listed
-                                                       m_CompletionList->push_back(pEntry->m_szNick);
-                                                       break;
-                                               case 1:  // Alphabetical
-                                                       for (it = m_CompletionList->begin(); it != m_CompletionList->end(); ++it)
-                                                       {
-                                                               if ((KviQString::cmpCI(pEntry->m_szNick, *it,
-                                                                       KVI_OPTION_BOOL(KviOption_boolPlaceNickWithNonAlphaCharsAtEnd)) < 0))
-                                                               {
-                                                                       break;
-                                                               }
-                                                       }
-                                                       m_CompletionList->insert(it, pEntry->m_szNick);
-                                                       break;
-                                               default:  // Last action time
-                                                       for (it = m_CompletionList->begin(); it != m_CompletionList->end(); ++it)
-                                                       {
-                                                               if (pEntry->m_lastActionTime > (*m_pEntryDict->find(*it)).m_lastActionTime)
-                                                               {
-                                                                       break;
-                                                               }
-                                                       }
-                                                       m_CompletionList->insert(it, pEntry->m_szNick);
-                                                       break;
-                                       }
-
+                                       case 0:  // As listed
+                                               m_CompletionList->push_back(pEntry->m_szNick);
+                                               break;
+                                       case 1:  // Alphabetical
+                                               it = std::find_if(m_CompletionList->begin(), m_CompletionList->end(), [pEntry] (QString n) -> bool {
+                                                       return (KviQString::cmpCI(pEntry->m_szNick, n, KVI_OPTION_BOOL(KviOption_boolPlaceNickWithNonAlphaCharsAtEnd)) < 0);
+                                               });
+                                               m_CompletionList->insert(it, pEntry->m_szNick);
+                                               break;
+                                       default:  // Last action time
+                                               it = std::find_if(m_CompletionList->begin(), m_CompletionList->end(),
+                                                       [this, &pEntry] (const QString & n) {
+                                                               return pEntry->m_lastActionTime > m_pEntryDict->find(n)->m_lastActionTime;
+                                                       });
+                                               m_CompletionList->insert(it, pEntry->m_szNick);
+                                               break;
                                }
                        }
                }
@@ -559,15 +550,8 @@ bool KviUserListView::completeNickStandard(const QString & szBegin, QString & sz
 
        if(!szSkipAfter.isEmpty())
        {
-               while(it != m_CompletionList->end())
-               {
-                       if(KviQString::equalCI(szSkipAfter, *it))
-                       {
-                               ++it;
-                               break;
-                       }
-                       ++it;
-               }
+               it = std::find_if(it, m_CompletionList->end(), [szSkipAfter] (QString n) -> bool { return KviQString::equalCI(szSkipAfter, n); });
+               if(it != m_CompletionList->end()) ++it;
        }
 
        if(it != m_CompletionList->end())
@@ -577,7 +561,7 @@ bool KviUserListView::completeNickStandard(const QString & szBegin, QString & sz
                if(bAppendMask)
                {
                        KviUserListEntry * entry = m_pEntryDict->find(*it);
-                       if (entry)
+                       if(entry)
                        {
                                szBuffer += "!";
                                szBuffer += entry->m_pGlobalData->user();
index 0021cecba76ec79839c478909de7209c0313041e..bd6e81c116f3c744b418f82b0298b15973ebb079 100644 (file)
@@ -61,7 +61,7 @@ public:
        OptionsWidget_inputFeatures(QWidget * parent);
        ~OptionsWidget_inputFeatures();
 
-       virtual void commit();
+       void commit() override;
 };
 
 #endif //!_OPTW_INPUT_H_