def request_search_and_show_alternatives(self, session, bgg_play):
     """Request a new string to use for game search and then show results to be picked"""
     new_search_dialog = QInputDialog(self)
     game_str = f'{bgg_play.game_name} ({bgg_play.year_published})'
     new_search_dialog.setLabelText(
         f'Jogo "{game_str}" não encontrado\nBuscar por:')
     new_search_dialog.setInputMode(QInputDialog.TextInput)
     if new_search_dialog.exec_():
         data = search_ludopedia_games(session,
                                       new_search_dialog.textValue())
         data = self.show_alternatives_dialog(bgg_play, data)
         self.alternative_chosen.emit(data)
 def show_alternatives_dialog(self, bgg_play, data):
     """Show alternative games to use as the game to log a play"""
     alternatives_dialog = QInputDialog(self)
     alternatives_list = [
         f'{item["nm_jogo"]} ({item["ano_publicacao"]})' for item in data
     ]
     alternatives_dialog.setComboBoxItems(alternatives_list)
     alternatives_dialog.setOption(QInputDialog.UseListViewForComboBoxItems)
     game_str = f'{bgg_play.game_name} ({bgg_play.year_published})'
     alternatives_dialog.setLabelText(
         f'Escolha uma alternativa para o jogo "{game_str}"')
     if alternatives_dialog.exec_():
         selected_index = alternatives_list.index(
             alternatives_dialog.textValue())
         return data[selected_index]
     return None