Yes, thank you for all your advise.
You got me going on the right track.

What I have now done, is not disconnect/connect/block/unblock the signal at all.
I have set my initial connection in the constructor using

SIGNAL(activated(QString))

which responds only to user interaction. Previously I used

SIGNAL(currentIndexChanged(QString))

which responds to the combobox changing programmatically as well, i.e. populating it, which I didn't want.