#pragma once #include "lts_widgets_export.h" #include #include #include class QLabel; namespace LtsWidgets { class LTSWIDGETS_EXPORT UiRequirement { public: explicit UiRequirement() = default; UiRequirement(QLabel *descriptionLabel, const std::function &requirementCheck, const QString &userWarningMessage = QString()); void reset(); bool checkRequirement(); bool isValid() const { return m_descriptionLabel != nullptr; } void retranslate(); private: void setTexts(); QLabel *m_descriptionLabel; std::function m_requirementCheck; QString m_originalText; QString m_originalTooltip; bool m_lastResult; QString m_userWarningMessage; }; class LTSWIDGETS_EXPORT UiRequirementList { public: UiRequirementList() = default; bool checkRequirements(QWidget *messageOnThisParent = nullptr); void addRequirement(const UiRequirement &uiRequirement); void clear(); void retranslate(); private: QVector m_requirementList; }; }