feat(gamelist): Add 'Surprise Me!' random game feature #114

Merged
Collecting merged 4 commits from feat/surprise-me into main 2026-01-28 01:40:01 -05:00
Collaborator

This introduces a new "Surprise Me!" button to the game list toolbar, providing a fun way for users to choose a game to play they have within their game directories when they can't decide.

When clicked, a dialog window appears and initiates a slot machine-style animation, rapidly scrolling through the icons of the available games. The animation lands on a randomly selected game, presenting the user with its title.

From the dialog, the user has two options:

  • Launch the selected game directly.

  • "Try Again?" to re-roll and get another random suggestion.

The implementation includes:

  1. A new SurpriseMeDialog to manage the feature's UI and logic.

  2. A custom GameReelWidget that uses QPropertyAnimation to create the smooth spinning visual effect.

  3. A new dice icon for the toolbar button.

  4. Logic to gather all games from the list, handle missing icons, and manage the list of remaining games for re-rolls.

This introduces a new "Surprise Me!" button to the game list toolbar, providing a fun way for users to choose a game to play they have within their game directories when they can't decide. When clicked, a dialog window appears and initiates a slot machine-style animation, rapidly scrolling through the icons of the available games. The animation lands on a randomly selected game, presenting the user with its title. From the dialog, the user has two options: - Launch the selected game directly. - "Try Again?" to re-roll and get another random suggestion. The implementation includes: 1. A new SurpriseMeDialog to manage the feature's UI and logic. 2. A custom GameReelWidget that uses QPropertyAnimation to create the smooth spinning visual effect. 3. A new dice icon for the toolbar button. 4. Logic to gather all games from the list, handle missing icons, and manage the list of remaining games for re-rolls.
A dice svg.

Signed-off-by: Collecting <[email protected]>
For rendering of the Surprise Me! icon.

Signed-off-by: Collecting <[email protected]>
Needed the thingies

Signed-off-by: Collecting <[email protected]>
The main logic for the Surprise Me feature.

Signed-off-by: Collecting <[email protected]>
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Kintoki/Emulator!114
No description provided.