Доброго времени суток.
Может просто уже поздно и голова уже совсем не варит, поэтому и не могу сообразить...
Но подскажите, люди добрые, как можно оптимизировать по-человечески указанный ниже процесс ? Без лишних итераций и дублирования проверок / обработок...
Вот в чём суть:
Мне необходимо обрабатывать каждое изменение выделения в QTreeWidget'e после клика по элементу / изменению выделения элемента (с клавиатуры, теми же курсорами), дабы выделять все дочерние элементы и после обработать все выделеные элементы. Собственно, пока, обрабатываются по отдельности 2 сигнала: itemClicked(QTreeWidgetItem*,int) и currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*), соответственно дублирующие по сути друг друга, но с несколькими нюансами:
1) Использовать ItemSelectionChanged() я не могу, т.к. при изменении я рекурсивно выделяю / снимаю выделение со всех дочерних элементов. А после изменений обрабатываю все выделенные элементы. Соответственно, если использовать этот сигнал, будет произведена куча обработок, которые мне нужны только в конце процесса выделения, а не на протяжении всего такового...
2) Избавиться от itemClicked не могу, т.к. элемент может не меняться при повторном клике, а вот выделение изменится
3) Избавиться от currentItemChanged тоже не могу, т.к. изменени выделения может происходить и с клавиатуры...
Надеюсь, более-менее понятно изложил суть...