Add function for adding base data and data reloading.
This commit is contained in:
10
dsst/dsst_gtk3/handlers/center_handlers.py
Normal file
10
dsst/dsst_gtk3/handlers/center_handlers.py
Normal file
@@ -0,0 +1,10 @@
|
||||
from dsst_gtk3.gtk_ui import DSSTGtkUi
|
||||
from dsst_sql import sql
|
||||
from dsst_gtk3 import dialogs, util
|
||||
|
||||
class CenterHandlers:
|
||||
def __init__(self, app: DSSTGtkUi):
|
||||
self.app = app
|
||||
|
||||
def do_add_death(self, *_):
|
||||
pass
|
||||
37
dsst/dsst_gtk3/handlers/dialog_handlers.py
Normal file
37
dsst/dsst_gtk3/handlers/dialog_handlers.py
Normal file
@@ -0,0 +1,37 @@
|
||||
from dsst_gtk3.gtk_ui import DSSTGtkUi
|
||||
from dsst_gtk3 import dialogs, util
|
||||
from dsst_sql import sql
|
||||
|
||||
|
||||
class DialogHandlers:
|
||||
def __init__(self, app: DSSTGtkUi):
|
||||
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('')
|
||||
@@ -1,11 +1,13 @@
|
||||
import gi
|
||||
gi.require_version('Gtk', '3.0')
|
||||
from gi.repository import Gtk
|
||||
from dsst_gtk3.handlers.season_and_episodes import SeasonAndEpisodesHandlers
|
||||
from dsst_gtk3.handlers.left_column_handlers import LeftColumnHandlers
|
||||
from dsst_gtk3.handlers.players import PlayerHandlers
|
||||
from dsst_gtk3.handlers.dialog_handlers import DialogHandlers
|
||||
from dsst_gtk3.handlers.center_handlers import CenterHandlers
|
||||
|
||||
|
||||
class Handlers(SeasonAndEpisodesHandlers, PlayerHandlers):
|
||||
class Handlers(LeftColumnHandlers, PlayerHandlers, DialogHandlers, CenterHandlers):
|
||||
""" Class containing all signal handlers for the GTK GUI """
|
||||
def __init__(self, app):
|
||||
""" Initialize handler class
|
||||
@@ -13,8 +15,10 @@ class Handlers(SeasonAndEpisodesHandlers, PlayerHandlers):
|
||||
"""
|
||||
self.app = app
|
||||
# Call constructors of superclasses
|
||||
SeasonAndEpisodesHandlers.__init__(self, app)
|
||||
LeftColumnHandlers.__init__(self, app)
|
||||
PlayerHandlers.__init__(self, app)
|
||||
DialogHandlers.__init__(self, app)
|
||||
CenterHandlers.__init__(self, app)
|
||||
|
||||
@staticmethod
|
||||
def do_delete_event(*args):
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
from datetime import datetime
|
||||
from dsst_gtk3.gtk_ui import DSSTGtkUi
|
||||
from dsst_gtk3.util import Util
|
||||
from dsst_sql import sql
|
||||
from dsst_gtk3 import dialogs
|
||||
from dsst_gtk3 import dialogs, util
|
||||
|
||||
|
||||
class SeasonAndEpisodesHandlers:
|
||||
class LeftColumnHandlers:
|
||||
def __init__(self, app: DSSTGtkUi):
|
||||
self.app = app
|
||||
|
||||
@@ -12,15 +12,14 @@ class SeasonAndEpisodesHandlers:
|
||||
name = dialogs.enter_string_dialog(self.app.ui, 'Name for the new Season')
|
||||
if name:
|
||||
sql.Season.create(game_name=name, number=1)
|
||||
self.app.reload_view_data()
|
||||
self.app.reload_seasons()
|
||||
|
||||
def do_season_selected(self, *_):
|
||||
combo = self.app.ui.get_object('season_combo_box')
|
||||
season_id = Util.get_combo_value(combo, 0)
|
||||
if not season_id: return
|
||||
season = sql.Season.get(sql.Season.id == season_id)
|
||||
for episode in season.episodes:
|
||||
print(episode)
|
||||
self.app.reload_for_season(self.app.get_selected_season_id())
|
||||
|
||||
def do_add_episode(self, *_):
|
||||
episode = dialogs.show_episode_dialog(self.app.ui, 'Create new Episode')
|
||||
season_id = self.app.get_selected_season_id()
|
||||
if not season_id:
|
||||
return
|
||||
episode = dialogs.show_episode_dialog(self.app.ui, 'Create new Episode', season_id)
|
||||
self.app.reload_for_season(season_id)
|
||||
@@ -14,14 +14,7 @@ class PlayerHandlers:
|
||||
if entry.get_text():
|
||||
sql.Player.create(name=entry.get_text())
|
||||
entry.set_text('')
|
||||
self.app.reload_view_data()
|
||||
|
||||
def do_add_player_to_episode(self, combo):
|
||||
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])
|
||||
self.app.reload_base_data()
|
||||
|
||||
def do_manage_enemies(self, *_):
|
||||
result = dialogs.show_manage_enemies_dialog(self.app.ui, self.app.get_selected_season_id())
|
||||
Reference in New Issue
Block a user