Esempio n. 1
0
 def newEditedState(self, _):
     compareNum = self.state.compareNum
     session = Session.Session(AllSplitNames.Splits())
     session.setRun(self.state.game, self.state.category)
     self.state = State.State(session)
     self.state.setComparison(compareNum)
     self.updateWidgets("runChanged", state=self.state)
Esempio n. 2
0
    def setupGui(self):
        self.root = tk.Tk()
        self.root.protocol("WM_DELETE_WINDOW", self.root.destroy)
        self.root.title("Variance Calculator")
        for i in range(12):
            self.root.columnconfigure(i, weight=1)
        self.base = VarianceColumn.VarianceColumn(self.root, "In Order")
        self.sort = VarianceColumn.VarianceColumn(self.root, "Sorted")
        self.base.pack(side="left")
        self.sort.pack(side="right")

        self.splits = AllSplitNames.Splits()
        menubar = tk.Menu(self.root, tearoff=False)
        fileMenu = tk.Menu(self.root, tearoff=False)

        menubar.add_cascade(label="Run Reference", menu=fileMenu)
        lambdas = [[
            lambda game=game, category=category: self.setRun(game, category)
            for category in self.splits.getCategories(game)
        ] for game in self.splits.getGames()]
        i = 0
        for game in self.splits.getGames():
            recentMenu = tk.Menu(self.root, tearoff=False)
            fileMenu.add_cascade(label=game, menu=recentMenu)
            j = 0
            for category in self.splits.getCategories(game):
                recentMenu.add_command(label=category, command=lambdas[i][j])
                j = j + 1
            i = i + 1
        self.root.configure(bg="black", menu=menubar)
Esempio n. 3
0
    def __init__(self, parent, allowInvalid=False):
        super().__init__(parent)
        for i in range(3):
            self.columnconfigure(i, weight=1)

        self.game = ""
        self.category = ""
        self.splits = AllSplitNames.Splits()
        self.allowInvalid = allowInvalid

        self.gameVar = tk.StringVar()
        self.gameVar.trace('w', self.setGame)
        gameCombo = ttk.Combobox(self,
                                 values=self.splits.getGames(),
                                 textvariable=self.gameVar)
        gameLabel = tk.Label(self, text="Game:")
        gameCombo.grid(row=0, column=1, columnspan=2, sticky="WE")
        gameLabel.grid(row=0, column=0, sticky="W")

        self.cateVar = tk.StringVar()
        self.cateVar.trace('w', self.setCate)
        self.cateCombo = ttk.Combobox(self,
                                      values=self.splits.getCategories(
                                          self.game),
                                      textvariable=self.cateVar)
        cateLabel = tk.Label(self, text="Category:")
        self.cateCombo.grid(row=1, column=1, columnspan=2, sticky="WE")
        cateLabel.grid(row=1, column=0, sticky="W")
Esempio n. 4
0
    def __init__(self, master, callback, state):
        super().__init__(master, callback)
        self.state = state
        self.splits = AllSplitNames.Splits()

        self.editor = MainEditor.Editor(self.window, state.comparesCsv)
        self.editor.pack()
        self.editor.saveButton.options["save"] = self.save
        self.editor.saveButton.options["valid"] = self.validSave
Esempio n. 5
0
 def addRunState(self, retVal):
     compareNum = self.state.compareNum
     session = Session.Session(AllSplitNames.Splits())
     if retVal["game"] and retVal["category"]:
         session.setRun(retVal["game"], retVal["category"])
     else:
         session.setRun(self.state.game, self.state.category)
     self.state = State.State(session)
     self.state.setComparison(compareNum)
     self.updateWidgets("runChanged", state=self.state)
Esempio n. 6
0
    def __init__(self,parent,callback):
        super().__init__(parent,tearoff=False)
        self.splits = AllSplitNames.Splits()
        self.fileMenu = tk.Menu(parent, tearoff=False)

        self.add_cascade(label="Run Reference", menu=self.fileMenu)
        lambdas = [[lambda game=game, category=category: callback(game,category) for category in self.splits.getCategories(game)] for game in self.splits.getGames()]
        i = 0
        for game in self.splits.getGames():
            recentMenu = tk.Menu(parent, tearoff=False)
            self.fileMenu.add_cascade(label=game,menu=recentMenu)
            j = 0
            for category in self.splits.getCategories(game):
                recentMenu.add_command(label=category,command=lambdas[i][j])
                j = j + 1
            i = i + 1
Esempio n. 7
0
    def __init__(self, master, comparisons):
        super().__init__(master)
        self.localComparisons = copy.deepcopy(comparisons)
        self.splits = AllSplitNames.Splits()

        self.buttonFrame = tk.Frame(self)
        self.buttonFrame.pack(side="right", fill="y")

        self.entries = EntryGrid.EntryGrid(self, self.localComparisons, self)
        self.entries.pack(side="left")

        self.addSplitButton = tk.Button(self.buttonFrame,
                                        text="Add Split",
                                        command=self.addSplit)
        self.addSplitButton.pack(fill="x")

        self.deleteSplitButton = tk.Button(self.buttonFrame,
                                           text="Delete Split",
                                           command=self.deleteSplit,
                                           state="disabled")
        self.deleteSplitButton.pack(fill="x")

        self.addComparisonButton = tk.Button(self.buttonFrame,
                                             text="Add Comparison",
                                             command=self.addComparison)
        self.addComparisonButton.pack(fill="x")

        self.deleteComparisonButton = tk.Button(self.buttonFrame,
                                                text="Delete Comparison",
                                                command=self.deleteComparison)
        self.deleteComparisonButton.pack(fill="x")
        if len(self.entries.comparisons) <= 5:
            self.deleteComparisonButton["state"] = "disabled"

        self.saveButton = SaveButton.SaveButton(self.buttonFrame, \
            {"save": self.save, \
            "valid": self.validSave, \
            "invalidMsg": "Current data is invalid."})
        self.saveButton.pack(side="bottom", fill="x")
        self.saveWarning = tk.Label(
            self.buttonFrame,
            text=
            "Warning: some\ncurrent values are\ninvalid. For invalid\nvalues, the most\nrecent valid value\n will be saved.",
            fg="orange")
Esempio n. 8
0
    def __init__(self, master):
        super().__init__(master)
        self.config = rc.getUserConfig()
        self.splits = AllSplitNames.Splits()

        self.selection = GameSelector.Selector(self, allowInvalid=True)
        self.selection.pack(side="top", anchor='w')
        self.selection.followup = self.updateRows
        self.oldGame = ""
        self.oldCategory = ""

        self.editor = MainEditor.Editor(self, dataManip.newComparisons())
        self.editor.pack(side="bottom")
        self.editor.saveButton.options["save"] = self.save
        self.editor.saveButton.options["valid"] = self.validSave
        self.localEntries = EntryGrid.EntryGrid(self.editor,
                                                dataManip.newComparisons(),
                                                self.editor)

        self.savedGame = ""
        self.savedCategory = ""
Esempio n. 9
0
    def __init__(self,parent,content):
        super().__init__(parent,tearoff=False)
        self.content = content
        self.splits = AllSplitNames.Splits()
        self.fileMenu = tk.Menu(parent, tearoff=False)

        self.add_cascade(label="Run Reference", menu=self.fileMenu)
        lambdas = [[[lambda game=game, category=category, name=name: self.setSplit(game,category,name) for name in self.splits.getSplitNames(game,category)] for category in self.splits.getCategories(game)] for game in self.splits.getGames()]
        i = 0
        for game in self.splits.getGames():
            recentMenu = tk.Menu(parent, tearoff=False)
            self.fileMenu.add_cascade(label=game,menu=recentMenu)
            j = 0
            for category in self.splits.getCategories(game):
                splitsMenu = tk.Menu(parent, tearoff=False)
                recentMenu.add_cascade(label=category,menu=splitsMenu)
                k = 0
                for name in self.splits.getSplitNames(game,category):
                    splitsMenu.add_command(label=name,command=lambdas[i][j][k])
                    k = k + 1
                j = j + 1
            i = i + 1
Esempio n. 10
0
from util import readConfig as rc
from DataClasses import AllSplitNames
from DataClasses import PracticeSession
from Dialogs import AddRun


def setHotkeys(app, state):
    app.root.bind(state.config["hotkeys"]["split"], app.onSplitEnd)
    app.root.bind(state.config["hotkeys"]["start"], app.start)
    app.root.bind(state.config["hotkeys"]["restart"], app.restart)
    app.root.bind(state.config["hotkeys"]["finish"], app.finish)
    app.root.bind(state.config["hotkeys"]["save"], app.save)
    app.root.bind(state.config["hotkeys"]["chooseSplit"], app.chooseSplit)


splits = AllSplitNames.Splits()
if not len(splits.getGames()):
    AddRun.SplitEditorD().show()
    splits.update()
session = PracticeSession.Session(splits)
if session.exit:
    sys.exit()

state = PracticeState.State(session)
rc.validateHotkeys(state.config)

app = app.App(state, session)
app.setupGui(True)

setHotkeys(app, state)
rootWindow = app.root