Дошли у меня руки поковыряться с застаревшим кодом. Надо его потихоньку приводить в более удобоваримое состояние. Проект - это простой WYSIWING редактор, используемый в составе программы MyTetra.
Основной файл - editor.cpp (класс Editor).
https://github.com/xintrea/mytetra_dev/tree/editorModification/src/libraries/...
Сий редактор был сделан на скорую руку на основе стандартного примера из Qt. И все объекты кнопок управления ранее находились прямо в классе Editor.
Сейчас я выделяю из класса Editor класс панели с кнопками, называемый EditorToolBar. И вот вопрос. После выделения кнопок в отдельный класс, внутри этого нового класса нужны обращения к вышестоящему виджету (т. е. к классу Editor) для следующих действий:
1. Получение конфига редактора (от нескольких переменных конфига зависит расположение кнопок и прочих элементов управления, размещенных на EditorToolBar)
2. Текущий режим отображения редактора (от режима зависит видимость и действия кнопок и прочих элементов EditorToolBar)
3. Enum допустимых режимов редактора (чтобы было с чем сравнивать при действиях в пункте 2)
Я бы мог обращаться к родительскому виджету для получения всех этих данных. Но я недавно прочитал статью Чистая архитектура и там написано, что обращения к вышестоящим по иерархии объектам должны быть совершенно исключены.
А я не могу придумать, как же мне не обращаться к parent-виджету для получения нужных мне данных. Как поступить в случае, когда есть главный объект редактора, и второстепенный объект тулбара? Как сделать такой тулбар, чтобы он не требовал данных от редактора? Да и нужно ли такой делать?
Ответ на:
комментарий
от m0rph


Ответ на:
комментарий
от jeuta

Ответ на:
комментарий
от Xintrea

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.