Допустил багу по невнимательности, но решил поделиться тут, может кому помоежет избежать такого, или будет что то подобное.
Писал некий редактор у которого есть функция:
void SomeEditor::update()
{
static Object* ptr[] = { ui->ctrl1, ui->ctrl2, ... };
std::for_each(ptr, ptr+sizeof(ptr)/sizeof(QObject*), [](QObject* p){ p->blockSignals(true); });
//меняем значение
std::for_each(ptr, ptr+sizeof(ptr)/sizeof(QObject*), [](QObject* p){ p->blockSignals(false); });
}
Нашёл багу связанную с тем что при модификации значения сигнал об этом всёравно долетал до его слота.
Как выяснилось банально потому что у меня оказалось два объекта этого редактора
один был изначально, а второй добавил по ходу разарботки.
А причина простая: я в попытках сэкономить использовал static масив для указателей.