コード例 #1
0
ファイル: gamestate_ctr.py プロジェクト: jasiegel4/jerry
 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
コード例 #2
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()