#ifndef TIERROW_HPP #define TIERROW_HPP #include "tiercard.hpp" #include "tierrowtitlecard.hpp" #include "flowlayout.h" #include "tierplaceholder.hpp" #include #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); int cardCount() const; void setColor(QColor color); QColor color() const; void setText(QString text); QString text() const; uint32_t id() const; protected: void resizeEvent(QResizeEvent* event) override; // void mousePressEvent(QMouseEvent* event) override; void dropEvent(QDropEvent *event) override; void dragEnterEvent(QDragEnterEvent* event) override; void dragLeaveEvent(QDragLeaveEvent* event) override; void dragMoveEvent(QDragMoveEvent* event) override; private: explicit TierRow(IdType id, QWidget* parent = nullptr); TierRowTitleCard* titleCard; QWidget* cardContainer; FlowLayout* cardLayout; QColor _color; const IdType _id; TierPlaceholder* placeholder = nullptr; int placeholderIndex; void recalcMaxHeight(); void clearPlaceholder(); int calculateIndex(QPointF loc); inline static std::unordered_map idMap; public slots: void cardResize(QSize newSize); void fadeChange(float newFade); signals: }; #endif // TIERROW_HPP