ui: Clear screen search matches when anything in the view changes (issue #660)

This commit is contained in:
Eberhard Graether
2019-01-10 15:53:09 +01:00
parent 322c353898
commit 545969161e
3 changed files with 122 additions and 9 deletions
@@ -147,3 +147,73 @@ size_t ScreenSearchController::getResponderId(ScreenSearchResponder* responder)
return 0;
}
void ScreenSearchController::handleMessage(MessageActivateAll* message)
{
clearMatches();
}
void ScreenSearchController::handleMessage(MessageActivateErrors* message)
{
clearMatches();
}
void ScreenSearchController::handleMessage(MessageActivateFullTextSearch* message)
{
clearMatches();
}
void ScreenSearchController::handleMessage(MessageActivateLegend* message)
{
clearMatches();
}
void ScreenSearchController::handleMessage(MessageActivateLocalSymbols* message)
{
clearMatches();
}
void ScreenSearchController::handleMessage(MessageActivateTokens* message)
{
clearMatches();
}
void ScreenSearchController::handleMessage(MessageActivateTrail* message)
{
clearMatches();
}
void ScreenSearchController::handleMessage(MessageActivateTrailEdge* message)
{
clearMatches();
}
void ScreenSearchController::handleMessage(MessageChangeFileView* message)
{
clearMatches();
}
void ScreenSearchController::handleMessage(MessageCodeShowDefinition* message)
{
clearMatches();
}
void ScreenSearchController::handleMessage(MessageDeactivateEdge* message)
{
clearMatches();
}
void ScreenSearchController::handleMessage(MessageGraphNodeBundleSplit* message)
{
clearMatches();
}
void ScreenSearchController::handleMessage(MessageGraphNodeExpand* message)
{
clearMatches();
}
void ScreenSearchController::handleMessage(MessageGraphNodeHide* message)
{
clearMatches();
}
@@ -5,12 +5,40 @@
#include <set>
#include "Controller.h"
#include "ScreenSearchInterfaces.h"
#include "MessageActivateAll.h"
#include "MessageActivateErrors.h"
#include "MessageActivateFullTextSearch.h"
#include "MessageActivateLegend.h"
#include "MessageActivateLocalSymbols.h"
#include "MessageActivateTokens.h"
#include "MessageActivateTrail.h"
#include "MessageActivateTrailEdge.h"
#include "MessageChangeFileView.h"
#include "MessageCodeShowDefinition.h"
#include "MessageDeactivateEdge.h"
#include "MessageGraphNodeBundleSplit.h"
#include "MessageGraphNodeExpand.h"
#include "MessageGraphNodeHide.h"
#include "MessageListener.h"
#include "ScreenSearchInterfaces.h"
class ScreenSearchController
: public Controller
, public ScreenSearchSender
, public MessageListener<MessageActivateAll>
, public MessageListener<MessageActivateErrors>
, public MessageListener<MessageActivateFullTextSearch>
, public MessageListener<MessageActivateLegend>
, public MessageListener<MessageActivateLocalSymbols>
, public MessageListener<MessageActivateTokens>
, public MessageListener<MessageActivateTrail>
, public MessageListener<MessageActivateTrailEdge>
, public MessageListener<MessageChangeFileView>
, public MessageListener<MessageCodeShowDefinition>
, public MessageListener<MessageDeactivateEdge>
, public MessageListener<MessageGraphNodeBundleSplit>
, public MessageListener<MessageGraphNodeExpand>
, public MessageListener<MessageGraphNodeHide>
{
public:
virtual ~ScreenSearchController() = default;
@@ -30,6 +58,21 @@ public:
private:
size_t getResponderId(ScreenSearchResponder* responder) const;
void handleMessage(MessageActivateAll* message) override;
void handleMessage(MessageActivateErrors* message) override;
void handleMessage(MessageActivateFullTextSearch* message) override;
void handleMessage(MessageActivateLegend* message) override;
void handleMessage(MessageActivateLocalSymbols* message) override;
void handleMessage(MessageActivateTokens* message) override;
void handleMessage(MessageActivateTrail* message) override;
void handleMessage(MessageActivateTrailEdge* message) override;
void handleMessage(MessageChangeFileView* message) override;
void handleMessage(MessageCodeShowDefinition* message) override;
void handleMessage(MessageDeactivateEdge* message) override;
void handleMessage(MessageGraphNodeBundleSplit* message) override;
void handleMessage(MessageGraphNodeExpand* message) override;
void handleMessage(MessageGraphNodeHide* message) override;
std::vector<ScreenSearchResponder*> m_responders;
std::vector<std::pair<size_t, size_t>> m_matches;
@@ -5,29 +5,29 @@
#include "MessageBase.h"
#include "MessageListener.h"
#include "MessageActivateLegend.h"
#include "MessageCodeShowDefinition.h"
#include "MessageActivateErrors.h"
#include "MessageShowError.h"
#include "MessageHistoryRedo.h"
#include "MessageHistoryToPosition.h"
#include "MessageHistoryUndo.h"
#include "MessageIndexingFinished.h"
#include "MessageActivateAll.h"
#include "MessageActivateErrors.h"
#include "MessageActivateFullTextSearch.h"
#include "MessageActivateLegend.h"
#include "MessageActivateLocalSymbols.h"
#include "MessageActivateTokens.h"
#include "MessageActivateTrail.h"
#include "MessageActivateTrailEdge.h"
#include "MessageChangeFileView.h"
#include "MessageCodeShowDefinition.h"
#include "MessageDeactivateEdge.h"
#include "MessageGraphNodeBundleSplit.h"
#include "MessageGraphNodeExpand.h"
#include "MessageGraphNodeHide.h"
#include "MessageGraphNodeMove.h"
#include "MessageHistoryRedo.h"
#include "MessageHistoryToPosition.h"
#include "MessageHistoryUndo.h"
#include "MessageIndexingFinished.h"
#include "MessageRefreshUI.h"
#include "MessageScrollCode.h"
#include "MessageScrollGraph.h"
#include "MessageShowError.h"
#include "MessageShowReference.h"
#include "MessageShowScope.h"