def confirm_ranged_delete(self, building): buildings_to_destroy = len(Tear.additional_removals_after_tear(building)[0]) if buildings_to_destroy == 0: return True title = T("Destroy all buildings") msg = T("This will destroy all the buildings that fall outside of" " the settlement range.") msg += u"\n\n" msg += NT("%s additional building will be destroyed.", "%s additional buildings will be destroyed", buildings_to_destroy) % buildings_to_destroy return building.session.ingame_gui.open_popup(title, msg, show_cancel_button=True)
def tmp_show_details(): """Fetches details of selected savegame and displays it""" gui.findChild(name="screenshot").image = None map_file = None map_file_index = gui.collectData(savegamelist) savegame_details_box = gui.findChild(name="savegame_details") savegame_details_parent = savegame_details_box.parent if map_file_index == -1: if (Fife.getVersion() >= (0, 4, 0)): savegame_details_parent.hideChild(savegame_details_box) else: if savegame_details_box not in savegame_details_parent.hidden_children: savegame_details_parent.hideChild(savegame_details_box) return else: savegame_details_parent.showChild(savegame_details_box) try: map_file = map_files[map_file_index] except IndexError: # this was a click in the savegame list, but not on an element # it happens when the savegame list is empty return savegame_info = SavegameManager.get_metadata(map_file) if savegame_info.get('screenshot'): # try to find a writable location, that is accessible via relative paths # (required by fife) fd, filename = tempfile.mkstemp() try: path_rel = os.path.relpath(filename) except ValueError: # the relative path sometimes doesn't exist on win os.close(fd) os.unlink(filename) # try again in the current dir, it's often writable fd, filename = tempfile.mkstemp(dir=os.curdir) try: path_rel = os.path.relpath(filename) except ValueError: fd, filename = None, None if fd: with os.fdopen(fd, "w") as f: f.write(savegame_info['screenshot']) # fife only supports relative paths gui.findChild(name="screenshot").image = path_rel os.unlink(filename) # savegamedetails details_label = gui.findChild(name="savegamedetails_lbl") details_label.text = u"" if savegame_info['timestamp'] == -1: details_label.text += T("Unknown savedate") else: savetime = time.strftime( "%c", time.localtime(savegame_info['timestamp'])) details_label.text += T("Saved at {time}").format( time=savetime.decode('utf-8')) details_label.text += u'\n' counter = savegame_info['savecounter'] # NT takes care of plural forms for different languages details_label.text += NT("Saved {amount} time", "Saved {amount} times", counter).format(amount=counter) details_label.text += u'\n' from horizons.constants import VERSION try: details_label.text += T("Savegame version {version}").format( version=savegame_info['savegamerev']) if savegame_info['savegamerev'] != VERSION.SAVEGAMEREVISION: if not SavegameUpgrader.can_upgrade( savegame_info['savegamerev']): details_label.text += u" " + T( "(probably incompatible)") except KeyError: # this should only happen for very old savegames, so having this unfriendly # error is ok (savegame is quite certainly fully unusable). details_label.text += u" " + T("Incompatible version") gui.adaptLayout()