#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; }; } // namespace LtsWidgets