Remove unused has* from InformationManager The only used variant (hasFunction) is used by the disassembler to determine whether to fall back to unsafe heuristics for finding the entry. It is not really obvious why such a thing would ever come up for one of the other types.
Run the disassembler in it's own thread Makes the gui responsive while the disassembler is working. Would also allow for severall worker threads in the disassembler in the future -- and more cool stuff!
Pass NewFunctionEvents as objects, not pointers The current assumption -- emit will only return once all signal handlers are done -- is false when cross-thread signals happen. Therefore we can't assume the stack-allocated event is alive long enough to just pass pointers. We're copying that object now which should be pretty small and don't get any memory leaks or lifeness problems.
Make LogDock and LogDockAppender communicate by signals This way the Appender can work in a different thread from the gui dock without causing problems. Also we no longer need to make the Appender a friend of the gui dock and instead make the dock handle it's own affairs
Make requestNewFunction pass a signal With the Disassembler being assigned to a different thread soon, this should allow the gui to stay alive while the disassembler is busy working.
Reenable Qt Signal keywords As we're not using any boost signals any more no need to hide the special keywords.