logic: implemented support for non-ascii characters in fulltext search
* fixed non-ascii characters not working in normal symbol search * implemented support for non-ascii characters in fulltext search * fixed fulltext search not working for symbols with lowest and highest character codes in a file * using wstring in FullTextSearchIndex (causes this index to be dependent on text encoding selected in app settings) * implemented rebuilding FullTextSearchIndex if used text encoding changed in app settings * added utility lib
This commit is contained in:
@@ -13,6 +13,7 @@
|
||||
#include "utility/messaging/type/MessageActivateSourceLocations.h"
|
||||
#include "utility/messaging/type/MessageActivateTokenIds.h"
|
||||
#include "utility/messaging/type/MessageTooltipShow.h"
|
||||
#include "utility/TextCodec.h"
|
||||
#include "utility/utility.h"
|
||||
|
||||
std::vector<QtCodeField::AnnotationColor> QtCodeField::s_annotationColors;
|
||||
@@ -48,14 +49,14 @@ QtCodeField::QtCodeField(
|
||||
displayCode.pop_back();
|
||||
}
|
||||
|
||||
QTextCodec* codec = QTextCodec::codecForName(ApplicationSettings::getInstance()->getTextEncoding().c_str());
|
||||
if (codec)
|
||||
TextCodec codec(ApplicationSettings::getInstance()->getTextEncoding().c_str());
|
||||
if (codec.isValid())
|
||||
{
|
||||
QString convertedDisplayCode(codec->toUnicode(displayCode.c_str()));
|
||||
QString convertedDisplayCode = QString::fromStdWString(codec.decode(displayCode));
|
||||
setPlainText(convertedDisplayCode);
|
||||
if (displayCode.size() != size_t(convertedDisplayCode.length()))
|
||||
{
|
||||
LOG_INFO("Converting displayed code to " + codec->name().toStdString() + " resulted in offset of source locations. Correcting this now.");
|
||||
LOG_INFO("Converting displayed code to " + codec.getName() + " resulted in offset of source locations. Correcting this now.");
|
||||
createMultibyteCharacterLocationCache();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user