GrabBag/BeltTearingApp/widgets/ImageGridWidget.h

48 lines
1.1 KiB
C++

#pragma once
#include <QWidget>
#include <QStringList>
class QGridLayout;
class ImageTileWidget;
class ImageGridWidget : public QWidget {
Q_OBJECT
public:
explicit ImageGridWidget(QWidget* parent = nullptr);
void setImages(int index, const QImage& image);
void initImages(int count);
void setSelectedIndex(int index);
int selectedIndex() const { return m_selectedIndex; }
void setExpandedIndex(int index);
int expandedIndex() const { return m_expandedIndex; }
int columnCount() const { return m_columns; }
int rowCount() const { return m_rows; }
QSize tileBaseSize() const { return m_sizeNormal; }
signals:
void tileClicked(int index);
private:
void rebuildGrid();
public:
void updateTileSizes();
protected:
void resizeEvent(QResizeEvent* event) override;
QGridLayout* m_layout {nullptr};
QStringList m_paths;
QList<ImageTileWidget*> m_tiles;
int m_selectedIndex {-1};
int m_expandedIndex {-1};
int m_columns {0};
int m_rows {0};
QSize m_sizeNormal {160,160};
QSize m_sizeExpanded {400,300};
};