#pragma once #include #include #include #include #include #include #include #include #include class GridItem : public QWidget { Q_OBJECT private: QString m_name; QIcon m_icon; int m_size; std::filesystem::path m_path; QSize widgetSize; void formatText(const QString& text); QIcon getIconForFileType(const std::filesystem::path path) const; public: GridItem(const std::filesystem::path path, QWidget* parent = nullptr); ~GridItem( ); QLabel* m_nameLabel; QLabel* m_iconLabel; void setIconSize(const QSize& size); protected: void paintEvent(QPaintEvent* event) override; void mousePressEvent(QMouseEvent* event) override; void mouseDoubleClickEvent(QMouseEvent*) override; void enterEvent(QEnterEvent* event) override; void leaveEvent(QEvent* event) override; signals: void clicked( ); void doubleClicked( ); };