klaus triendl wrote: > Paul Pogonyshev wrote: > > Hi, > > > > In C-level GTK+ there is a function named > g_signal_handlers_disconnect_matched(). > > It can be used to disconnect, for instance, particular handlers (i.e. with > > matching function) of an object. Is something similar possible with > libsigc++ > > or do I have to store `sigc::connection' objects around? > > Hi Paul, > > When you connect to a signal you get an iterator back from > signal::connect(). > You could use this iterator or copy the slot the iterator points to and > then call it->disconnect() or slotcopy.disconnect(); > > Note however that the iterator is only valid as long as the signal's > slot list is valid. > Connections have a trackable mechanism and are therefore safer.
Right, I know this. I wondered if I could not store connection objects, as I know what handlers _this_ object has connected to a signal. I wished to remove them just by (object + function) pair. Here is situation I have. Object A has a pointer to some model, B. It connects to some signals in B to listen for some events. Now, if the model changes to C, A has to disconnect its handlers from B and connect them to C instead. I wondered if I could do that without storing connections, as that seems excessive. Paul _______________________________________________ libsigc-list mailing list libsigc-list@gnome.org http://mail.gnome.org/mailman/listinfo/libsigc-list