Есть mainwindow. Там тулбары с экшнами, менюшки, указатель на мой QGraphicsView.
В моём унаследованном от QGraphicsView виджете есть Tool *m_tool. Tool — абстрактный класс инструмента (всякие выделения, создание наборов итемов в сцене и т. п). Во вью также есть enum'ный флаг выбранного инструмента. В зависимости от выбранного флага при нажатии ЛКМ создаётся соответственный инструмент.
Так вот. Как идеологически верно менять значения флага выбранного инструмента во вью?
Пока видится так: QToolBar'ы по дефолту испускают сигнал actionTriggered ( QAction * action ). В мейнвиндове я создам слот, который принимал бы этот сигнал и испускал в зависимости от нажатого экшна что-то типа signalChangeToolType(const MyView::ToolTypeEnum& type). Ну а этот сигнал принимался бы слотом во вью slotSetToolType(const ToolTypeEnum& type), что меняло бы флаг.
Это правильно? И кстати, выбор инструмента вообще обычно делают в турбаре или где?
P:S: делаю что-то похожее на Cad.