#ifndef TIERROW_HPP #define TIERROW_HPP #include "tiercard.hpp" #include "tierrowtitlecard.hpp" #include "flowlayout.h" #include #include class TierRow : public QWidget { Q_OBJECT public: using IdType = TierRowTitleCard::IdType; static TierRow* create(QWidget* parent = nullptr); static TierRow* getFromId(IdType id); ~TierRow(); void addCard(TierCard* card); TierCard* takeCard(uint32_t id); void setColor(QColor color); QColor color(); void setText(QString text); QString text(); uint32_t id(); protected: void resizeEvent(QResizeEvent* event) override; // void mousePressEvent(QMouseEvent* event) override; void dropEvent(QDropEvent *event) override; void dragEnterEvent(QDragEnterEvent *event) override; void dragMoveEvent(QDragMoveEvent *event) override; private: explicit TierRow(IdType id, QWidget* parent = nullptr); TierRowTitleCard* titleCard; QWidget* bgFadeContainer; QWidget* cardContainer; QLayout* cardLayout; QColor _color; void recalcMaxHeight(); inline static std::unordered_map idMap; public slots: void cardResize(QRect newSize); signals: }; #endif // TIERROW_HPP