Signal_v1(const Signal_v1 ©) : Signal(copy), impl(new Signal_v1_Generic(this)) { impl->slots = copy.impl->slots; for (SlotIterator slot_it = impl->slots.begin(); slot_it != impl->slots.end(); slot_it++) { Slot slot = *slot_it; slot->add_signal_ref(this); } }
Signal_v1 &operator =(const Signal_v1 ©) { if (impl->in_call) impl->deleted = true; else delete impl; impl = new Signal_v1_Generic(this); impl->slots = copy.impl->slots; for (SlotIterator slot_it = impl->slots.begin(); slot_it != impl->slots.end(); slot_it++) { Slot slot = *slot_it; slot->add_signal_ref(this); } return *this; }
//: Connect slot. ::Slot connect(Slot slot) { slot->add_signal_ref(this); impl->slots.push_back(slot); return ::Slot(slot); }