From 25f55690f292078a31979962463d431ddefc0f60 Mon Sep 17 00:00:00 2001 From: Connor McLaughlin Date: Wed, 8 Jan 2020 13:50:44 +1000 Subject: [PATCH] Qt: Add icons for game list entry type (disc/exe) --- src/duckstation-qt/gamelistwidget.cpp | 29 ++++++++++++++---- src/duckstation-qt/resources/icons.qrc | 2 ++ .../icons/applications-system-24.png | Bin 0 -> 10640 bytes .../resources/icons/media-optical-24.png | Bin 0 -> 8193 bytes 4 files changed, 25 insertions(+), 6 deletions(-) create mode 100644 src/duckstation-qt/resources/icons/applications-system-24.png create mode 100644 src/duckstation-qt/resources/icons/media-optical-24.png diff --git a/src/duckstation-qt/gamelistwidget.cpp b/src/duckstation-qt/gamelistwidget.cpp index a2cbce438..28ea7f7ab 100644 --- a/src/duckstation-qt/gamelistwidget.cpp +++ b/src/duckstation-qt/gamelistwidget.cpp @@ -10,7 +10,7 @@ class GameListModel : public QAbstractTableModel public: enum Column : int { - // Column_Icon, + Column_Type, Column_Code, Column_Title, Column_Region, @@ -65,10 +65,6 @@ public: case Column_Title: return QString::fromStdString(ge.title); - case Column_Region: - // return QString(Settings::GetConsoleRegionName(ge.region)); - return {}; - case Column_Size: return QString("%1 MB").arg(static_cast(ge.total_size) / 1048576.0, 0, 'f', 2); @@ -81,6 +77,18 @@ public: { switch (index.column()) { + case Column_Type: + { + switch (ge.type) + { + case GameList::EntryType::Disc: + return m_type_disc_pixmap; + case GameList::EntryType::PSExe: + default: + return m_type_exe_pixmap; + } + } + case Column_Region: { switch (ge.region) @@ -112,6 +120,9 @@ public: switch (section) { + case Column_Type: + return "Type"; + case Column_Code: return "Code"; @@ -146,6 +157,9 @@ private: void loadCommonImages() { // TODO: Use svg instead of png + m_type_disc_pixmap.load(QStringLiteral(":/icons/media-optical-24.png")); + m_type_exe_pixmap.load(QStringLiteral(":/icons/applications-system-24.png")); + m_region_eu_pixmap.load(QStringLiteral(":/icons/flag-eu.png")); m_region_jp_pixmap.load(QStringLiteral(":/icons/flag-jp.png")); m_region_us_pixmap.load(QStringLiteral(":/icons/flag-us.png")); m_region_eu_pixmap.load(QStringLiteral(":/icons/flag-eu.png")); @@ -154,6 +168,9 @@ private: GameList* m_game_list; int m_size; + QPixmap m_type_disc_pixmap; + QPixmap m_type_exe_pixmap; + QPixmap m_region_jp_pixmap; QPixmap m_region_eu_pixmap; QPixmap m_region_us_pixmap; @@ -207,5 +224,5 @@ void GameListWidget::resizeEvent(QResizeEvent* event) { QStackedWidget::resizeEvent(event); - QtUtils::ResizeColumnsForTableView(m_table_view, {100, -1, 60, 100}); + QtUtils::ResizeColumnsForTableView(m_table_view, {32, 80, -1, 60, 100}); } diff --git a/src/duckstation-qt/resources/icons.qrc b/src/duckstation-qt/resources/icons.qrc index b2a7e40ec..93629c6bd 100644 --- a/src/duckstation-qt/resources/icons.qrc +++ b/src/duckstation-qt/resources/icons.qrc @@ -16,6 +16,7 @@ icons/applications-development.png icons/applications-other.png icons/applications-system.png + icons/applications-system-24.png icons/audio-card.png icons/document-open.png icons/document-save.png @@ -24,6 +25,7 @@ icons/input-gaming.png icons/media-flash.png icons/media-optical.png + icons/media-optical-24.png icons/media-playback-pause.png icons/media-playback-start.png icons/system-shutdown.png diff --git a/src/duckstation-qt/resources/icons/applications-system-24.png b/src/duckstation-qt/resources/icons/applications-system-24.png new file mode 100644 index 0000000000000000000000000000000000000000..268381d098cfad6969c0fa67f7b02e7388e1b68f GIT binary patch literal 10640 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 qaxV265UD3t6E4 zaB^>EX>4U6ba`-PAZ2)IW&i+q+O?Zkb{x5uMgK919s;}>4(wVzgC2hG10*S_qukLLz8}7R=YD

s6@>S<^Vi*ftJimt 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