Exemple #1
0
 def unsaved_changes(self):
     # dialog to be called to
     # check for unsaved changes to
     # the current game
     # if current game has unsaved changes
     # or is not saved in database
     # ask user if he wants save it
     #
     # returns
     # 1) QMessageBox.Discard if the user discarded
     # 2) QMessageBox.Cancel if the user canceled
     # 3) QMessageBox.Save if the user chose to save
     #              saves the game before returning in case 3)
     if(self.model.database.index_current_game == None or
            self.model.gamestate.unsaved_changes):
         dlg_changes = DialogSaveChanges()
         ret = dlg_changes.exec_()
         if(ret == QMessageBox.Save):
             # if game is not in db append
             if(self.model.database.index_current_game == None):
                 self.mainAppWindow.gameMenuController.editGameData()
                 self.model.database.append_game(self.model.gamestate.current)
             else:
                 self.model.database.update_game(self.model.database.index_current_game,self.model.gamestate.current)
             self.mainAppWindow.save.setEnabled(False)
         return ret
     else:
         return QMessageBox.Discard
Exemple #2
0
 def unsaved_changes(self):
     # dialog to be called to
     # check for unsaved changes to
     # the current game
     # if current game has unsaved changes
     # or is not saved in database
     # ask user if he wants save it
     #
     # returns
     # 1) QMessageBox.Discard if the user discarded
     # 2) QMessageBox.Cancel if the user canceled
     # 3) QMessageBox.Save if the user chose to save
     #              saves the game before returning in case 3)
     if (self.model.database.index_current_game == None
             or self.model.gamestate.unsaved_changes):
         dlg_changes = DialogSaveChanges()
         ret = dlg_changes.exec_()
         if (ret == QMessageBox.Save):
             # if game is not in db append
             if (self.model.database.index_current_game == None):
                 self.mainAppWindow.gameMenuController.editGameData()
                 self.model.database.append_game(
                     self.model.gamestate.current)
             else:
                 self.model.database.update_game(
                     self.model.database.index_current_game,
                     self.model.gamestate.current)
             self.mainAppWindow.save.setEnabled(False)
         return ret
     else:
         return QMessageBox.Discard
Exemple #3
0
    def browse_games(self):
        mainWindow = self.mainAppWindow
        print("checksum is now: "+str(self.model.database.filename))
        self.model.database.reload_if_necessary(mainWindow)
        selectedGame = 0
        #mainWindow.model.gamestate.mode = model.gamestate.MODE_ENTER_MOVES
        mainWindow.gamestateController.on_enter_moves_mode()
        print("checksum is now0: "+self.model.database.filename)

        dlg = DialogBrowsePgn(self.model.database)
        print("checksum is now1: "+self.model.database.filename)
        if dlg.exec_() == QDialog.Accepted:
            items = dlg.table.selectedItems()
            if(len(items) > 0):
                selectedGame = int(items[0].text())-1
                loaded_game = self.model.database.load_game(selectedGame)
                print("checksum is now2: "+self.model.database.filename)
                #print("loaded game: "+str(loaded_game))
                if(not loaded_game == None):
                    # if the user wants to load a game, but the current open
                    # game has still unsaved changes or hasn't been saved at all,
                    # ask user what to do
                    cancel = False
                    if(self.model.database.index_current_game == None or self.model.gamestate.unsaved_changes):
                        changes_dialog = DialogSaveChanges()
                        ret = changes_dialog.exec_()
                        if(ret == QMessageBox.Save):
                            if(self.model.database.index_current_game == None):
                                self.gs_ctr.editGameData()
                                self.model.database.append_game(self.model.gamestate.current)
                            else:
                                print(self.model.gamestate.current)
                                print(self.model.database.index_current_game)
                                self.model.database.update_game(self.model.database.index_current_game,\
                                                        self.model.gamestate.current)
                            self.mainAppWindow.save.setEnabled(False)
                        if(ret == QMessageBox.Cancel):
                            cancel = True
                    if(not cancel):
                        self.model.gamestate.current = loaded_game
                        self.mainAppWindow.chessboard_view.update()
                        self.mainAppWindow.chessboard_view.emit(SIGNAL("statechanged()"))
                        self.model.gamestate.unsaved_changes = False
                        self.mainAppWindow.save.setEnabled(False)
                        self.mainAppWindow.setLabels()
                        self.mainAppWindow.moves_edit_view.setFocus()
                        self.model.gamestate.init_game_tree(self.mainAppWindow)
                        print("checksum is now5: "+self.model.database.checksum)

        self.mainAppWindow.moves_edit_view.setFocus()
        print("checksum is now3: "+self.model.database.checksum)
Exemple #4
0
    def browse_games(self):
        mainWindow = self.mainAppWindow
        self.model.database.reload_if_necessary(mainWindow)
        selectedGame = 0
        mainWindow.gamestateController.on_enter_moves_mode()

        dlg = DialogBrowsePgn(self.model.database)
        if dlg.exec_() == QDialog.Accepted:
            items = dlg.table.selectedItems()
            if len(items) > 0:
                selectedGame = int(items[0].text()) - 1
                loaded_game = self.model.database.load_game(selectedGame)
                if not loaded_game == None:
                    # if the user wants to load a game, but the current open
                    # game has still unsaved changes or hasn't been saved at all,
                    # ask user what to do
                    cancel = False
                    if self.model.database.index_current_game == None or self.model.gamestate.unsaved_changes:
                        changes_dialog = DialogSaveChanges()
                        ret = changes_dialog.exec_()
                        if ret == QMessageBox.Save:
                            if self.model.database.index_current_game == None:
                                self.gs_ctr.editGameData()
                                self.model.database.append_game(self.model.gamestate.current)
                            else:
                                self.model.database.update_game(
                                    self.model.database.index_current_game, self.model.gamestate.current
                                )
                            self.mainAppWindow.save.setEnabled(False)
                        if ret == QMessageBox.Cancel:
                            cancel = True
                    if not cancel:
                        self.model.gamestate.current = loaded_game
                        self.mainAppWindow.chessboard_view.update()
                        self.mainAppWindow.chessboard_view.emit(SIGNAL("statechanged()"))
                        self.model.gamestate.unsaved_changes = False
                        self.mainAppWindow.save.setEnabled(False)
                        self.mainAppWindow.setLabels()
                        self.mainAppWindow.moves_edit_view.setFocus()
                        self.model.gamestate.init_game_tree(self.mainAppWindow)

        self.mainAppWindow.moves_edit_view.setFocus()
Exemple #5
0
    def browse_games(self):
        mainWindow = self.mainAppWindow
        self.model.database.reload_if_necessary(mainWindow)
        selectedGame = 0
        mainWindow.gamestateController.on_enter_moves_mode()

        dlg = DialogBrowsePgn(self.model.database)
        if dlg.exec_() == QDialog.Accepted:
            items = dlg.table.selectedItems()
            if(len(items) > 0):
                selectedGame = int(items[0].text())-1
                loaded_game = self.model.database.load_game(selectedGame)
                if(not loaded_game == None):
                    # if the user wants to load a game, but the current open
                    # game has still unsaved changes or hasn't been saved at all,
                    # ask user what to do
                    cancel = False
                    if(self.model.database.index_current_game == None or self.model.gamestate.unsaved_changes):
                        changes_dialog = DialogSaveChanges()
                        ret = changes_dialog.exec_()
                        if(ret == QMessageBox.Save):
                            if(self.model.database.index_current_game == None):
                                self.gs_ctr.editGameData()
                                self.model.database.append_game(self.model.gamestate.current)
                            else:
                                self.model.database.update_game(self.model.database.index_current_game,\
                                                        self.model.gamestate.current)
                            self.mainAppWindow.save.setEnabled(False)
                        if(ret == QMessageBox.Cancel):
                            cancel = True
                    if(not cancel):
                        self.model.gamestate.current = loaded_game
                        self.mainAppWindow.chessboard_view.update()
                        self.mainAppWindow.chessboard_view.emit(SIGNAL("statechanged()"))
                        self.model.gamestate.unsaved_changes = False
                        self.mainAppWindow.save.setEnabled(False)
                        self.mainAppWindow.setLabels()
                        self.mainAppWindow.moves_edit_view.setFocus()
                        self.model.gamestate.init_game_tree(self.mainAppWindow)

        self.mainAppWindow.moves_edit_view.setFocus()