public:
AbstractUi(QObject *parent = nullptr) : QObject(parent) {}
- virtual ~AbstractUi() {}
virtual void init() = 0; // called after the client is initialized
virtual MessageModel *createMessageModel(QObject *parent) = 0;
virtual AbstractMessageProcessor *createMessageProcessor(QObject *parent) = 0;