37 lines
1.5 KiB
Python
37 lines
1.5 KiB
Python
from dsst_gtk3 import dialogs, util, gtk_ui
|
|
from dsst_sql import sql
|
|
|
|
|
|
class DialogHandlers:
|
|
""" Callback handlers for signals emitted from dialogs of the main window"""
|
|
def __init__(self, app: 'gtk_ui.GtkUi'):
|
|
self.app = app
|
|
|
|
def do_add_player_to_episode(self, combo):
|
|
""" Signal Handler for Add Player to Episode Button in Manage Episode Dialog
|
|
:param combo: Combo box with all the available players
|
|
"""
|
|
player_id = util.Util.get_combo_value(combo, 0)
|
|
if player_id:
|
|
self.app.ui.get_object('add_player_combo_box').set_active(-1)
|
|
player = sql.Player.get(sql.Player.id == player_id)
|
|
store = self.app.ui.get_object('episode_players_store')
|
|
if not any(row[0] == player_id for row in store):
|
|
store.append([player_id, player.name, player.hex_id])
|
|
|
|
def do_add_enemy(self, entry):
|
|
if entry.get_text():
|
|
store = self.app.ui.get_object('enemy_season_store')
|
|
enemy = sql.Enemy.create(name=entry.get_text(), season=self.app.get_selected_season_id())
|
|
store.append([enemy.name, False, 0])
|
|
entry.set_text('')
|
|
|
|
def do_manage_drinks(self, *_):
|
|
result = dialogs.show_manage_drinks_dialog(self.app.ui)
|
|
|
|
def do_add_drink(self, entry):
|
|
if entry.get_text():
|
|
store = self.app.ui.get_object('drink_store')
|
|
drink = sql.Drink.create(name=entry.get_text(), vol='0')
|
|
store.append([drink.id, drink.name, drink.vol])
|
|
entry.set_text('') |