Заменить систему Docking Widgets в классе главного окна (QT)
В наличии приложение на Qt6 с “классическим” главным окном, в котором виджеты из разных модулей приложения отображаются в нескольких плавающих областях экрана (Docking Widgets). На данном этапе система перетаскивания панелей отключена из-за необходимости модернизации кода.
В качестве целевой системы для подобного окна необходимо использовать библиотеку
https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System
В исходном коде есть примеры и демо приложения. По ссылке можно найти много примеров использования библиотеки в реальных проектах.
Задачи:
1. Внедрить новую систему, которая позволит существующим плагинам отображать виджеты в гланом окне приложения.
2. Разобраться с системой сохранения\загрузки состояния панелей, понять каким образом может быть сохранено внутренне состояние каждой из дочерних панелей. При старте приложения и восстановлении панелей, приложение должно создавать виджеты, существовавшие до закрытия и передавать в них сохранённое состояние.
К примеру, восстановление состояния панелей может выглядеть как:
QWidget *w = pluginSystem()->createWidget(QString name, QJsonDocument state);
mainWindow->insertWidget(w);
3. Задокументировать работу.
4. Оформить код в одном стиле в соответствии с существующим кодом.
Используемые инструменты:
1. CMake
2. С++17
3. Qt 6
4. Git
5. Платформы: Windows и Linux.