diff --git a/src/lib/component/controller/ScreenSearchController.cpp b/src/lib/component/controller/ScreenSearchController.cpp index e107cd18..085dec33 100644 --- a/src/lib/component/controller/ScreenSearchController.cpp +++ b/src/lib/component/controller/ScreenSearchController.cpp @@ -54,7 +54,7 @@ void ScreenSearchController::addResponder(ScreenSearchResponder* responder) } } -void ScreenSearchController::search(const std::string& query, const std::set& responderNames) +void ScreenSearchController::search(const std::wstring& query, const std::set& responderNames) { { std::lock_guard lock(m_matchMutex); diff --git a/src/lib/component/controller/ScreenSearchController.h b/src/lib/component/controller/ScreenSearchController.h index f763e85c..1d1ab2f5 100644 --- a/src/lib/component/controller/ScreenSearchController.h +++ b/src/lib/component/controller/ScreenSearchController.h @@ -23,7 +23,7 @@ public: virtual void foundMatches(ScreenSearchResponder* responder, size_t matchCount); void addResponder(ScreenSearchResponder* responder); - void search(const std::string& query, const std::set& responderNames); + void search(const std::wstring& query, const std::set& responderNames); void activateMatch(bool next); void clearMatches(); diff --git a/src/lib/component/controller/helper/ScreenSearchInterfaces.h b/src/lib/component/controller/helper/ScreenSearchInterfaces.h index 3110fd95..44cc7406 100644 --- a/src/lib/component/controller/helper/ScreenSearchInterfaces.h +++ b/src/lib/component/controller/helper/ScreenSearchInterfaces.h @@ -19,7 +19,7 @@ public: virtual std::string getName() const = 0; virtual bool isVisible() const = 0; - virtual void findMatches(ScreenSearchSender* sender, const std::string& query) = 0; + virtual void findMatches(ScreenSearchSender* sender, const std::wstring& query) = 0; virtual void activateMatch(size_t matchIndex) = 0; virtual void deactivateMatch(size_t matchIndex) = 0; virtual void clearMatches() = 0; diff --git a/src/lib_gui/qt/element/QtCodeArea.cpp b/src/lib_gui/qt/element/QtCodeArea.cpp index 5317711c..bf3eba3e 100644 --- a/src/lib_gui/qt/element/QtCodeArea.cpp +++ b/src/lib_gui/qt/element/QtCodeArea.cpp @@ -13,19 +13,20 @@ #include #include "data/location/SourceLocationFile.h" +#include "qt/element/QtCodeNavigator.h" +#include "qt/utility/QtContextMenu.h" +#include "settings/ApplicationSettings.h" +#include "settings/ColorScheme.h" #include "utility/messaging/type/MessageActivateLocalSymbols.h" #include "utility/messaging/type/MessageFocusIn.h" #include "utility/messaging/type/MessageFocusOut.h" #include "utility/messaging/type/MessageMoveIDECursor.h" #include "utility/messaging/type/MessageShowErrors.h" +#include "utility/TextCodec.h" #include "utility/utility.h" #include "utility/utilityApp.h" #include "utility/utilityString.h" -#include "qt/element/QtCodeNavigator.h" -#include "qt/utility/QtContextMenu.h" -#include "settings/ColorScheme.h" - MouseWheelOverScrollbarFilter::MouseWheelOverScrollbarFilter() { } @@ -399,9 +400,10 @@ QRectF QtCodeArea::getLineRectForLineNumber(uint lineNumber) const return blockBoundingGeometry(block); } -void QtCodeArea::findScreenMatches(const std::string& query, std::vector>* screenMatches) +void QtCodeArea::findScreenMatches(const std::wstring& query, std::vector>* screenMatches) { - const std::string& code = utility::toLowerCase(getCode()); + TextCodec codec(ApplicationSettings::getInstance()->getTextEncoding()); + const std::wstring& code = utility::toLowerCase(codec.decode(getCode())); size_t pos = 0; while (pos != std::string::npos) { diff --git a/src/lib_gui/qt/element/QtCodeArea.h b/src/lib_gui/qt/element/QtCodeArea.h index 8c029024..2fd66529 100644 --- a/src/lib_gui/qt/element/QtCodeArea.h +++ b/src/lib_gui/qt/element/QtCodeArea.h @@ -83,7 +83,7 @@ public: QRectF getLineRectForLineNumber(uint lineNumber) const; - void findScreenMatches(const std::string& query, std::vector>* screenMatches); + void findScreenMatches(const std::wstring& query, std::vector>* screenMatches); void clearScreenMatches(); protected: diff --git a/src/lib_gui/qt/element/QtCodeFile.cpp b/src/lib_gui/qt/element/QtCodeFile.cpp index 78da87c2..efd3d691 100644 --- a/src/lib_gui/qt/element/QtCodeFile.cpp +++ b/src/lib_gui/qt/element/QtCodeFile.cpp @@ -393,7 +393,7 @@ void QtCodeFile::updateTitleBar() m_titleBar->getTitleButton()->updateTexts(); } -void QtCodeFile::findScreenMatches(const std::string& query, std::vector>* screenMatches) +void QtCodeFile::findScreenMatches(const std::wstring& query, std::vector>* screenMatches) { if (m_fileSnippet && m_fileSnippet->isVisible()) { diff --git a/src/lib_gui/qt/element/QtCodeFile.h b/src/lib_gui/qt/element/QtCodeFile.h index aca30604..66b39584 100644 --- a/src/lib_gui/qt/element/QtCodeFile.h +++ b/src/lib_gui/qt/element/QtCodeFile.h @@ -60,7 +60,7 @@ public: void updateSnippets(); void updateTitleBar(); - void findScreenMatches(const std::string& query, std::vector>* screenMatches); + void findScreenMatches(const std::wstring& query, std::vector>* screenMatches); public slots: void clickedMinimizeButton(); diff --git a/src/lib_gui/qt/element/QtCodeFileList.cpp b/src/lib_gui/qt/element/QtCodeFileList.cpp index 20be22ef..4af39e12 100644 --- a/src/lib_gui/qt/element/QtCodeFileList.cpp +++ b/src/lib_gui/qt/element/QtCodeFileList.cpp @@ -246,7 +246,7 @@ void QtCodeFileList::onWindowFocus() } } -void QtCodeFileList::findScreenMatches(const std::string& query, std::vector>* screenMatches) +void QtCodeFileList::findScreenMatches(const std::wstring& query, std::vector>* screenMatches) { for (QtCodeFile* file : m_files) { diff --git a/src/lib_gui/qt/element/QtCodeFileList.h b/src/lib_gui/qt/element/QtCodeFileList.h index a9f482a6..7db3620c 100644 --- a/src/lib_gui/qt/element/QtCodeFileList.h +++ b/src/lib_gui/qt/element/QtCodeFileList.h @@ -44,7 +44,7 @@ public: virtual void onWindowFocus(); - virtual void findScreenMatches(const std::string& query, std::vector>* screenMatches); + virtual void findScreenMatches(const std::wstring& query, std::vector>* screenMatches); void setFileMinimized(const FilePath path); void setFileSnippets(const FilePath path); diff --git a/src/lib_gui/qt/element/QtCodeFileSingle.cpp b/src/lib_gui/qt/element/QtCodeFileSingle.cpp index 8f5f4f68..4c678dfa 100644 --- a/src/lib_gui/qt/element/QtCodeFileSingle.cpp +++ b/src/lib_gui/qt/element/QtCodeFileSingle.cpp @@ -215,7 +215,7 @@ void QtCodeFileSingle::onWindowFocus() m_titleBar->getTitleButton()->updateTexts(); } -void QtCodeFileSingle::findScreenMatches(const std::string& query, std::vector>* screenMatches) +void QtCodeFileSingle::findScreenMatches(const std::wstring& query, std::vector>* screenMatches) { if (m_area) { diff --git a/src/lib_gui/qt/element/QtCodeFileSingle.h b/src/lib_gui/qt/element/QtCodeFileSingle.h index d2e5bd5c..fb4bf213 100644 --- a/src/lib_gui/qt/element/QtCodeFileSingle.h +++ b/src/lib_gui/qt/element/QtCodeFileSingle.h @@ -45,7 +45,7 @@ public: virtual void onWindowFocus() override; virtual void findScreenMatches( - const std::string& query, std::vector>* screenMatches) override; + const std::wstring& query, std::vector>* screenMatches) override; const FilePath& getCurrentFilePath() const; bool hasFileCached(const FilePath& filePath) const; diff --git a/src/lib_gui/qt/element/QtCodeNavigateable.h b/src/lib_gui/qt/element/QtCodeNavigateable.h index ef093a9b..bc6fd496 100644 --- a/src/lib_gui/qt/element/QtCodeNavigateable.h +++ b/src/lib_gui/qt/element/QtCodeNavigateable.h @@ -38,7 +38,7 @@ public: virtual void onWindowFocus() = 0; - virtual void findScreenMatches(const std::string& query, std::vector>* screenMatches) = 0; + virtual void findScreenMatches(const std::wstring& query, std::vector>* screenMatches) = 0; protected: void ensureWidgetVisibleAnimated(const QWidget* parentWidget, const QWidget *childWidget, QRectF rect, bool animated, ScrollTarget target); diff --git a/src/lib_gui/qt/element/QtCodeNavigator.cpp b/src/lib_gui/qt/element/QtCodeNavigator.cpp index 6bda371f..0999d0d5 100644 --- a/src/lib_gui/qt/element/QtCodeNavigator.cpp +++ b/src/lib_gui/qt/element/QtCodeNavigator.cpp @@ -596,7 +596,7 @@ void QtCodeNavigator::refreshStyle() clearCaches(); } -size_t QtCodeNavigator::findScreenMatches(const std::string& query) +size_t QtCodeNavigator::findScreenMatches(const std::wstring& query) { clearScreenMatches(); diff --git a/src/lib_gui/qt/element/QtCodeNavigator.h b/src/lib_gui/qt/element/QtCodeNavigator.h index 362a69b7..94624ab0 100644 --- a/src/lib_gui/qt/element/QtCodeNavigator.h +++ b/src/lib_gui/qt/element/QtCodeNavigator.h @@ -93,7 +93,7 @@ public: void refreshStyle(); - size_t findScreenMatches(const std::string& query); + size_t findScreenMatches(const std::wstring& query); void activateScreenMatch(size_t matchIndex); void deactivateScreenMatch(size_t matchIndex); void clearScreenMatches(); diff --git a/src/lib_gui/qt/element/QtCodeSnippet.cpp b/src/lib_gui/qt/element/QtCodeSnippet.cpp index f4aa14fe..e9a7c5bf 100644 --- a/src/lib_gui/qt/element/QtCodeSnippet.cpp +++ b/src/lib_gui/qt/element/QtCodeSnippet.cpp @@ -187,7 +187,7 @@ std::string QtCodeSnippet::getCode() const return m_codeArea->getCode(); } -void QtCodeSnippet::findScreenMatches(const std::string& query, std::vector>* screenMatches) +void QtCodeSnippet::findScreenMatches(const std::wstring& query, std::vector>* screenMatches) { m_codeArea->findScreenMatches(query, screenMatches); } diff --git a/src/lib_gui/qt/element/QtCodeSnippet.h b/src/lib_gui/qt/element/QtCodeSnippet.h index bf71e188..86ff4be9 100644 --- a/src/lib_gui/qt/element/QtCodeSnippet.h +++ b/src/lib_gui/qt/element/QtCodeSnippet.h @@ -50,7 +50,7 @@ public: std::string getCode() const; - void findScreenMatches(const std::string& query, std::vector>* screenMatches); + void findScreenMatches(const std::wstring& query, std::vector>* screenMatches); private slots: void clickedTitle(); diff --git a/src/lib_gui/qt/element/QtScreenSearchBox.cpp b/src/lib_gui/qt/element/QtScreenSearchBox.cpp index ca0eb39b..0d5a67a1 100644 --- a/src/lib_gui/qt/element/QtScreenSearchBox.cpp +++ b/src/lib_gui/qt/element/QtScreenSearchBox.cpp @@ -206,7 +206,7 @@ void QtScreenSearchBox::findMatches() } } - controller->search(m_searchBox->text().toLower().toStdString(), responderNames); + controller->search(m_searchBox->text().toLower().toStdWString(), responderNames); } ); } diff --git a/src/lib_gui/qt/view/QtCodeView.cpp b/src/lib_gui/qt/view/QtCodeView.cpp index 11b2217b..4f368e00 100644 --- a/src/lib_gui/qt/view/QtCodeView.cpp +++ b/src/lib_gui/qt/view/QtCodeView.cpp @@ -49,7 +49,7 @@ bool QtCodeView::isVisible() const return m_widget->isVisible(); } -void QtCodeView::findMatches(ScreenSearchSender* sender, const std::string& query) +void QtCodeView::findMatches(ScreenSearchSender* sender, const std::wstring& query) { m_onQtThread( [sender, query, this]() diff --git a/src/lib_gui/qt/view/QtCodeView.h b/src/lib_gui/qt/view/QtCodeView.h index 5b99e0b2..13e6c014 100644 --- a/src/lib_gui/qt/view/QtCodeView.h +++ b/src/lib_gui/qt/view/QtCodeView.h @@ -20,7 +20,7 @@ public: // ScreenSearchResponder implementation virtual bool isVisible() const; - virtual void findMatches(ScreenSearchSender* sender, const std::string& query); + virtual void findMatches(ScreenSearchSender* sender, const std::wstring& query); virtual void activateMatch(size_t matchIndex); virtual void deactivateMatch(size_t matchIndex); virtual void clearMatches(); diff --git a/src/lib_gui/qt/view/QtGraphView.cpp b/src/lib_gui/qt/view/QtGraphView.cpp index 128c9b5c..bb2899a0 100644 --- a/src/lib_gui/qt/view/QtGraphView.cpp +++ b/src/lib_gui/qt/view/QtGraphView.cpp @@ -189,7 +189,7 @@ bool QtGraphView::isVisible() const return QtViewWidgetWrapper::getWidgetOfView(this)->isVisible(); } -void QtGraphView::findMatches(ScreenSearchSender* sender, const std::string& query) +void QtGraphView::findMatches(ScreenSearchSender* sender, const std::wstring& query) { m_onQtThread( [sender, query, this]() diff --git a/src/lib_gui/qt/view/QtGraphView.h b/src/lib_gui/qt/view/QtGraphView.h index fd659c50..602333d8 100644 --- a/src/lib_gui/qt/view/QtGraphView.h +++ b/src/lib_gui/qt/view/QtGraphView.h @@ -41,7 +41,7 @@ public: // ScreenSearchResponder implementation virtual bool isVisible() const; - virtual void findMatches(ScreenSearchSender* sender, const std::string& query); + virtual void findMatches(ScreenSearchSender* sender, const std::wstring& query); virtual void activateMatch(size_t matchIndex); virtual void deactivateMatch(size_t matchIndex); virtual void clearMatches(); diff --git a/src/lib_gui/qt/view/graphElements/QtGraphNode.cpp b/src/lib_gui/qt/view/graphElements/QtGraphNode.cpp index 6addf1ff..9e93af6a 100644 --- a/src/lib_gui/qt/view/graphElements/QtGraphNode.cpp +++ b/src/lib_gui/qt/view/graphElements/QtGraphNode.cpp @@ -271,7 +271,7 @@ void QtGraphNode::showNodeRecursive() } } -void QtGraphNode::matchNameRecursive(const std::string& query, std::vector* matchedNodes) +void QtGraphNode::matchNameRecursive(const std::wstring& query, std::vector* matchedNodes) { matchName(query, matchedNodes); @@ -473,10 +473,10 @@ void QtGraphNode::notifyEdgesAfterMove() } } -void QtGraphNode::matchName(const std::string& query, std::vector* matchedNodes) +void QtGraphNode::matchName(const std::wstring& query, std::vector* matchedNodes) { m_isActiveMatch = false; - std::string name = utility::encodeToUtf8(getName()); + const std::wstring name = getName(); size_t pos = utility::toLowerCase(name).find(query); if (pos != std::string::npos) @@ -490,9 +490,9 @@ void QtGraphNode::matchName(const std::string& query, std::vector* m_matchRect->show(); m_matchText->show(); - std::string matchName(name.length(), ' '); + std::wstring matchName(name.length(), L' '); matchName.replace(pos, query.length(), name.substr(pos, query.length())); - m_matchText->setText(matchName.c_str()); + m_matchText->setText(QString::fromStdWString(matchName)); matchedNodes->push_back(this); diff --git a/src/lib_gui/qt/view/graphElements/QtGraphNode.h b/src/lib_gui/qt/view/graphElements/QtGraphNode.h index 1c0e9499..9807834d 100644 --- a/src/lib_gui/qt/view/graphElements/QtGraphNode.h +++ b/src/lib_gui/qt/view/graphElements/QtGraphNode.h @@ -77,7 +77,7 @@ public: void showNodeRecursive(); - void matchNameRecursive(const std::string& query, std::vector* matchedNodes); + void matchNameRecursive(const std::wstring& query, std::vector* matchedNodes); void removeNameMatch(); void setActiveMatch(bool active); @@ -107,7 +107,7 @@ protected: void notifyEdgesAfterMove(); - virtual void matchName(const std::string& query, std::vector* matchedNodes); + virtual void matchName(const std::wstring& query, std::vector* matchedNodes); void setStyle(const GraphViewStyle::NodeStyle& style); diff --git a/src/lib_gui/qt/view/graphElements/QtGraphNodeAccess.h b/src/lib_gui/qt/view/graphElements/QtGraphNodeAccess.h index 1e978868..fa3c8152 100644 --- a/src/lib_gui/qt/view/graphElements/QtGraphNodeAccess.h +++ b/src/lib_gui/qt/view/graphElements/QtGraphNodeAccess.h @@ -24,7 +24,7 @@ public: void hideLabel(); protected: - virtual void matchName(const std::string& query, std::vector* matchedNodes) override {} + virtual void matchName(const std::wstring& query, std::vector* matchedNodes) override {} private: AccessKind m_accessKind; diff --git a/src/lib_gui/qt/view/graphElements/QtGraphNodeExpandToggle.h b/src/lib_gui/qt/view/graphElements/QtGraphNodeExpandToggle.h index 8927348d..a6f545fd 100644 --- a/src/lib_gui/qt/view/graphElements/QtGraphNodeExpandToggle.h +++ b/src/lib_gui/qt/view/graphElements/QtGraphNodeExpandToggle.h @@ -20,7 +20,7 @@ public: virtual void updateStyle(); protected: - virtual void matchName(const std::string& query, std::vector* matchedNodes) {} + virtual void matchName(const std::wstring& query, std::vector* matchedNodes) {} private: QGraphicsPixmapItem* m_icon; diff --git a/src/lib_gui/qt/view/graphElements/QtGraphNodeQualifier.h b/src/lib_gui/qt/view/graphElements/QtGraphNodeQualifier.h index c5197319..378584cd 100644 --- a/src/lib_gui/qt/view/graphElements/QtGraphNodeQualifier.h +++ b/src/lib_gui/qt/view/graphElements/QtGraphNodeQualifier.h @@ -26,7 +26,7 @@ protected: virtual void hoverEnterEvent(QGraphicsSceneHoverEvent* event); virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent* event); - virtual void matchName(const std::string& query, std::vector* matchedNodes) {} + virtual void matchName(const std::wstring& query, std::vector* matchedNodes) {} private: const NameHierarchy m_qualifierName;