Не вижу энтузиазма
Оно и понятно, вот "почитать", а еще лучше "собирать" - то да, а тут такая бяка... Ну ладно, покатаем очевидное
Вот класс самого верхнего уровня KeyChannel. Для него послать сигнал - без проблем, т.к. он имеет уникальный id, его видят в UI и.т.п. Попробуем так
C++ (Qt)
void KeyChannel::SetNthKeyTime( int keyIndex, double time );
Но менять KeyFrame::m_time только так я не могу - есть еще KeyList что меняет m_time когда захочет. А нужен ли KeyList? Да, KeyChannel может иметь нулевой KeyList (типа нод дерева, контейнер др KeyChannel(s)). KeyList может свапаться и существовать сам по себе. Да и вообще, пусть KeyList занимается KeyFrame(s) - эл-тами своего контейнера, а всякие там m_name, m_id - это уже др уровень. (мухи отдельно и все такое)
Ладно, еще вариант
C++ (Qt)
struct KeyFrame {
..
double m_time;
double m_value;
KeyList * m_owner;
..
};
И аналогично для KeyList. Так получаю массу забот напр на операциях copy/paste - все время надо присматривать за m_owner что может оказаться хлопотно и ненадежно.
Что интересно - возникшая задача (реагировать на изменения времени ключа) - довольно скромная фича, неужели для нее надо менять так принципиально?
Это потому что корявая архитектура! Вот если бы изначально все было продумано.. и.т.п.
Ну так хорошо, предлагаем "некорявую". И тут ответ(отмазка) известен
Ну так надо же знать задааачу..
Что на деле означает "будет жрать std и ни хрена не делать"