Моя установка: у меня есть один класс, который только излучает сигналы, называемый классом Conn.
Все мои классы QObject (A, B и C) существуют изолированно, и я не хочу, чтобы они вообще знали друг о друге. Однако, если класс A хочет отправить некоторую информацию за пределы себя, он должен отправить сигнал объекту Conn.
Класс B и C имеют доступ к объекту Conn и могут сами решить, хотят ли они прослушивать один из сигналов Conn.
Моя проблема: допустим, класс A хочет передать сигнал в объекте Conn с именем sig_updateFoo(int) всякий раз, когда он обновляет foo. Теперь предположим, что класс A также хочет подключить сигнал sig_updateFoo(int) к своему слоту с именем slot_FooUpdated(int), потому что он также хочет прослушивать, когда кто-то еще испускает сигнал Сигнал объекта Conn.
Логическая ошибка возникает, когда объект Conn класса A испускает сигнал, который также подключен к одному из его слотов.
Мне нужно знать, был ли первоначальный эмиттер классом А (в этом случае я проигнорирую вызов) или это был другой класс, что нормально).
Идеи, которые я пробовал: Если я использую QObject::sender() в слоте класса A, я получаю ссылку только на объект Conn, а не на класс A.
Любые идеи?