Qt: Implement game grid/cover view

This commit is contained in:
Connor McLaughlin
2020-09-24 00:02:13 +10:00
parent b193374dd4
commit 43b0d84a1d
9 changed files with 447 additions and 57 deletions

View File

@@ -3,8 +3,10 @@
#include "frontend-common/game_list.h"
#include <QtCore/QAbstractTableModel>
#include <QtGui/QPixmap>
#include <algorithm>
#include <array>
#include <optional>
#include <unordered_map>
class GameListModel final : public QAbstractTableModel
{
@@ -20,6 +22,7 @@ public:
Column_Size,
Column_Region,
Column_Compatibility,
Column_Cover,
Column_Count
};
@@ -43,11 +46,22 @@ public:
bool lessThan(const QModelIndex& left_index, const QModelIndex& right_index, int column, bool ascending) const;
bool getShowCoverTitles() const { return m_show_titles_for_covers; }
void setShowCoverTitles(bool enabled) { m_show_titles_for_covers = enabled; }
float getCoverScale() const { return m_cover_scale; }
void setCoverScale(float scale);
int getCoverArtWidth() const;
int getCoverArtHeight() const;
int getCoverArtSpacing() const;
private:
void loadCommonImages();
void setColumnDisplayNames();
GameList* m_game_list;
float m_cover_scale = 1.0f;
bool m_show_titles_for_covers = false;
std::array<QString, Column_Count> m_column_display_names;
@@ -60,4 +74,5 @@ private:
QPixmap m_region_us_pixmap;
std::array<QPixmap, static_cast<int>(GameListCompatibilityRating::Count)> m_compatibiliy_pixmaps;
mutable std::unordered_map<std::string, QPixmap> m_cover_pixmap_cache;
};