logic: code controller

- Renamed MessageActivateTokenLocation to MessageActivateToken, since it uses the Token id (not the TokenLocation id).
- Implemented CodeController to add one snippet for each location where the activated token occurred.
- Added Semaphore to QtThreadedFunctor to prevent an evil race-condition.
- CodeView dispatches message when a token is clicked.
This commit is contained in:
malte_langkabel
2014-07-03 16:03:06 +02:00
parent 4c7bbbe28e
commit 4ae6f4a04a
17 changed files with 183 additions and 44 deletions
@@ -5,7 +5,7 @@
#include "component/controller/Controller.h"
#include "utility/messaging/MessageListener.h"
#include "utility/messaging/type/MessageActivateTokenLocation.h"
#include "utility/messaging/type/MessageActivateToken.h"
#include "utility/types.h"
class CodeView;
@@ -17,16 +17,16 @@ struct AnnotatedText
Id tokenId;
};
class CodeController: public Controller, public MessageListener<MessageActivateTokenLocation>
class CodeController: public Controller, public MessageListener<MessageActivateToken>
{
public:
CodeController(std::shared_ptr<LocationAccess> locationAccess);
~CodeController();
void setActiveTokenLocationId(Id id);
void setActiveTokenId(Id id);
private:
virtual void handleMessage(MessageActivateTokenLocation* message);
virtual void handleMessage(MessageActivateToken* message);
CodeView* getView();
std::shared_ptr<LocationAccess> m_locationAccess;