#pragma once #include "diskitem.h" #include #include #include #include class GridView : public QWidget { Q_OBJECT public: explicit GridView(QWidget *parent = nullptr); void setDisks(const QVector &newDisks); void highlightDisk(qsizetype index); void setActiveIndex(qsizetype index); protected: void resizeEvent(QResizeEvent *) override; signals: void diskSelected(int index); private: QString searchQuery; QScrollArea *scrollArea; QWidget *gridContainer; QGridLayout *gridLayout; QPushButton *selectedButton; QString bgColor, borderColor, hoverColor, selectedColor; QList disks; void populateGrid(); void extractDisksFromVector(const QVector &filteredDisks, int &cols, int &row, int &col); qsizetype activeIndex = -1; };