aboutsummaryrefslogtreecommitdiff
path: root/src/yuzu/game/game_grid.cpp
diff options
context:
space:
mode:
authorcrueter <crueter@eden-emu.dev>2026-06-22 21:04:47 +0200
committercrueter <crueter@eden-emu.dev>2026-06-22 21:04:47 +0200
commit39be450fa3a7248f7dde73dfe91d2f0447a155dd (patch)
treeb508f83c056280b1d5fb5365c6ab4e551c5a1a95 /src/yuzu/game/game_grid.cpp
parent68aaea60855d7791480a546b8888e123e083ca1a (diff)
[desktop] Add basic carousel view (#4112)
Adds a basic carousel view, or essentially a horizontal list a la Android/Qt Quick. Lacks a lot of niceties like autoscroll, smooth shifts, etc. Will work on those later Also fixed a bug introduced recently that capped game icon size to 8 at the low end, breaking the None option Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4112 Reviewed-by: MaranBr <maranbr@eden-emu.dev> Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev> Reviewed-by: Lizzie <lizzie@eden-emu.dev>
Diffstat (limited to 'src/yuzu/game/game_grid.cpp')
-rw-r--r--src/yuzu/game/game_grid.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/yuzu/game/game_grid.cpp b/src/yuzu/game/game_grid.cpp
index ab8a3d8bfe..c5f77cf897 100644
--- a/src/yuzu/game/game_grid.cpp
+++ b/src/yuzu/game/game_grid.cpp
@@ -25,8 +25,6 @@ GameGrid::GameGrid(QWidget* parent) : QListView{parent} {
setEditTriggers(QAbstractItemView::NoEditTriggers);
setContextMenuPolicy(Qt::CustomContextMenu);
- setGridSize(QSize(140, 160));
- m_gameCard->setSize(gridSize(), 0, 4);
setSpacing(10);
setWordWrap(true);
@@ -97,8 +95,17 @@ void GameGrid::UpdateIconSize() {
setUpdatesEnabled(false);
setGridSize(grid_size);
- m_gameCard->setSize(grid_size, stretched_width - min_item_width, columns);
+ m_gameCard->setSize(grid_size, grid_size, stretched_width - min_item_width, columns);
setUpdatesEnabled(true);
}
}
+
+QModelIndex GameGrid::indexAt(const QPoint& point) const {
+ QModelIndex index = QListView::indexAt(point);
+ if (!index.isValid())
+ return {};
+ if (m_gameCard && !m_gameCard->hitTest(point, index, this, visualRect(index)))
+ return {};
+ return index;
+}