У меня вопрос о надстройках C ++ в Qt5 с QML UI.
Допустим, у нас есть приложение A и приложение B. Оба используют подключаемый модуль C, написанный на c ++, для отрисовки некоторых QQuickItems в qml.
Оба приложения работают нормально. Теперь мне нужно расширить плагин несколькими дополнительными опциями (рисовать нечего, но на основе данных, уже доступных в плагине C), которые - и в этом проблема - должны быть доступны только в приложении B.
Зачем? Дополнительные параметры, требующие некоторых, включают из других библиотек, которые не должны добавляться в приложение A. Таким образом, приложение A должно работать с плагином basi c, а приложение должно работать с расширенным плагином.
Мой вопрос в том, что лучший / распространенный способ добиться этого?
Я просто подумал немного и получил несколько (на мой взгляд, не очень) решений / идей:
Написание плагина D, который может делать расширенные параметры. Таким образом, приложение A может работать с подключаемым модулем C, а приложение запускается с подключаемыми модулями C и D. Недостатком является то, что 2 подключаемых модуля должны интенсивно взаимодействовать (подключаемому модулю D требуются данные C) через qml. Я думаю, что это не очень хорошо, может быть лучший способ передачи данных между двумя плагинами?
Написание 2 плагинов, где плагин C является основным c одним и плагин D имеет содержимое плагина C плюс расширенные параметры. Конечно, это должно сработать, но мне придется дважды корректировать код. Это определенно неприятно.
Я подумал о некоторых условных включениях, чтобы просто включить расширенные параметры, если установлены соответствующие флаги. У меня нет опыта в этом. Но возможно ли это?