#ifndef LTS_ABSTRACT_SEQUENCE_WIDGET_H #define LTS_ABSTRACT_SEQUENCE_WIDGET_H #pragma once #include "lts_widgets_export.h" #include #include #include class QToolButton; namespace LtsWidgets { class LTSWIDGETS_EXPORT LtsAbstractSequenceWidget : public QGroupBox { Q_OBJECT public: explicit LtsAbstractSequenceWidget(QWidget* parent = nullptr, const bool& readOnly = false); ~LtsAbstractSequenceWidget(); virtual void addWidget(QWidget* widget, bool isReadOnly, bool isButtonVisible = true); virtual void getValue(QWidget* contentType, const QString& findObjectName) const; virtual void setMemberCount(int count); virtual uint32_t getMemberCount() const; virtual int getMemberlistSize(); protected: virtual QToolButton* pbAddMember() const; virtual QString getObjectName(int index) const; virtual void setupMemberWidget(QWidget* child, QToolButton* pbChild, const QString& objectName, bool isButtonVisible = true) = 0; signals: void addMember(); private slots: virtual void addMemberWidget(QWidget* member, bool isReadOnly, bool isButtonVisible = true); virtual void deleteMemberWidget(QObject* member); private: bool m_readOnly; QToolButton* m_pbAddMember = nullptr; QList m_memberList; }; } // namespace LtsWidgets #endif