61 lines
1.5 KiB
C++
61 lines
1.5 KiB
C++
#ifndef TIERROW_HPP
|
|
#define TIERROW_HPP
|
|
|
|
#include "tiercard.hpp"
|
|
#include "tierrowtitlecard.hpp"
|
|
#include "flowlayout.h"
|
|
#include "tierplaceholder.hpp"
|
|
|
|
#include <QWidget>
|
|
#include <QDrag>
|
|
|
|
#include <unordered_map>
|
|
|
|
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;
|
|
void recalcMaxHeight();
|
|
void clearPlaceholder();
|
|
int calculateIndex(QPointF loc);
|
|
inline static std::unordered_map<IdType, TierRow*> idMap;
|
|
|
|
public slots:
|
|
void cardResize(QSize newSize);
|
|
void fadeChange(float newFade);
|
|
|
|
signals:
|
|
|
|
};
|
|
|
|
#endif // TIERROW_HPP
|