Exemplo n.º 1
0
	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)
Exemplo n.º 2
0
        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()