Beispiel #1
0
    def cb_info_button_clicked(self, *args):
        """Shows server information window."""
        dialog = self.gtk_widgets["serverinfo-dialog"]

        game_table = self.core.game_table.get_game_table_copy()
        game = self.app.settings.settings_table["common"]["selected-game-connect"]
        server_list_table = game_table[game]["servers"]
        host = self.app.settings.settings_table["common"]["server-host"]
        server_entry_index = helpers.search_dict_table(server_list_table, "host", host)
        if server_entry_index is not None:
            server_entry = server_list_table[server_entry_index]
            player_model = self.gtk_widgets["player-list-model"]
            player_scrolledview = self.gtk_widgets["serverinfo-players-scrolledview"]

            gtk_helpers.set_widget_value(self.gtk_widgets["serverinfo-name"], server_entry["name"])
            gtk_helpers.set_widget_value(self.gtk_widgets["serverinfo-host"], server_entry["host"])
            gtk_helpers.set_widget_value(self.gtk_widgets["serverinfo-game"], game_table[server_entry["game_id"]]["info"]["name"])
            gtk_helpers.set_widget_value(self.gtk_widgets['serverinfo-gameid'], server_entry['game_id'])
            gtk_helpers.set_widget_value(self.gtk_widgets["serverinfo-terrain"], server_entry["terrain"])
            gtk_helpers.set_widget_value(self.gtk_widgets["serverinfo-players"], i18n._("%(player_count)s / %(player_limit)s") % {'player_count': str(server_entry["player_count"]), 'player_limit': str(server_entry["player_limit"])})
            gtk_helpers.set_widget_value(self.gtk_widgets["serverinfo-ping"], server_entry["ping"])

            player_model.clear()
            try:
                player_table = helpers.dict_to_list(server_entry["players"], self.player_list_model_format)
                for entry in player_table:
                    player_model.append(entry)
                player_scrolledview.set_property("visible", True)
            except:
                player_scrolledview.set_property("visible", False)

            dialog.run()
            dialog.hide()
Beispiel #2
0
    def fill_server_list_model(self, server_table):
        """Fill the server view"""

        view_table = helpers.deepcopy(server_table)

        model = self.gtk_widgets["server-list-model"]
        model_append = model.append
        model_format = self.server_list_model_format

        game_icons = self.game_icons
        flag_icons = self.flag_icons

        # Clears the model

        # UGLY HACK!
        # Workaround for chaotic TreeViewSelection on ListModel erase
        host_selection = gtk_helpers.get_widget_value(
            self.gtk_widgets["server-connect-host"])
        game_selection = gtk_helpers.get_widget_value(
            self.gtk_widgets["server-connect-game"])
        model.clear()
        gtk_helpers.set_widget_value(self.gtk_widgets["server-connect-host"],
                                     host_selection)
        gtk_helpers.set_widget_value(
            self.gtk_widgets["server-connect-game"],
            game_selection,
            treeview_colnum=self.game_list_model_format.index("game_id"))

        # Goodies for GUI
        for entry in view_table:
            game_id = entry.get("game_id")
            country = entry.get("country")
            # Game icon
            entry["game_icon"] = game_icons.get(game_id)

            # Lock icon
            if entry["password"] is True:
                entry["password_icon"] = "network-wireless-encrypted-symbolic"
            else:
                entry["password_icon"] = None

            if entry["secure"] is True:
                entry["secure_icon"] = "security-high-symbolic"
            else:
                entry["secure_icon"] = None

            # Country flags
            entry["country_icon"] = flag_icons.get(country)

            # Filtering stuff
            entry["full"] = entry["player_count"] >= entry["player_limit"]
            entry["empty"] = entry["player_count"] == 0

        view_table = helpers.sort_dict_table(view_table, "ping")
        server_list = helpers.dict_to_list(view_table, model_format)

        for entry in server_list:
            model_append(entry)
Beispiel #3
0
    def fill_server_list_model(self, server_table):
        """Fill the server view"""

        view_table = helpers.deepcopy(server_table)

        model = self.gtk_widgets["server-list-model"]
        model_append = model.append
        model_format = self.server_list_model_format

        game_icons = self.game_icons
        flag_icons = self.flag_icons

        # Clears the model

        # UGLY HACK!
        # Workaround for chaotic TreeViewSelection on ListModel erase
        host_selection = gtk_helpers.get_widget_value(self.gtk_widgets["server-connect-host"])
        game_selection = gtk_helpers.get_widget_value(self.gtk_widgets["server-connect-game"])
        model.clear()
        gtk_helpers.set_widget_value(self.gtk_widgets["server-connect-host"], host_selection)
        gtk_helpers.set_widget_value(self.gtk_widgets["server-connect-game"], game_selection, treeview_colnum=self.game_list_model_format.index("game_id"))

        # Goodies for GUI
        for entry in view_table:
            game_id = entry.get("game_id")
            country = entry.get("country")
            # Game icon
            entry["game_icon"] = game_icons.get(game_id)

            # Lock icon
            if entry["password"] is True:
                entry["password_icon"] = "network-wireless-encrypted-symbolic"
            else:
                entry["password_icon"] = None

            if entry["secure"] is True:
                entry["secure_icon"] = "security-high-symbolic"
            else:
                entry["secure_icon"] = None

            # Country flags
            entry["country_icon"] = flag_icons.get(country)

            # Filtering stuff
            entry["full"] = entry["player_count"] >= entry["player_limit"]
            entry["empty"] = entry["player_count"] == 0

        view_table = helpers.sort_dict_table(view_table, "ping")
        server_list = helpers.dict_to_list(view_table, model_format)

        for entry in server_list:
            model_append(entry)
Beispiel #4
0
    def cb_info_button_clicked(self, *args):
        """Shows server information window."""
        dialog = self.gtk_widgets["serverinfo-dialog"]

        game_table = self.core.game_table.get_game_table_copy()
        game = self.app.settings.settings_table["common"][
            "selected-game-connect"]
        server_list_table = game_table[game]["servers"]
        host = self.app.settings.settings_table["common"]["server-host"]
        server_entry_index = helpers.search_dict_table(server_list_table,
                                                       "host", host)
        if server_entry_index is not None:
            server_entry = server_list_table[server_entry_index]
            player_model = self.gtk_widgets["player-list-model"]
            player_scrolledview = self.gtk_widgets[
                "serverinfo-players-scrolledview"]

            gtk_helpers.set_widget_value(self.gtk_widgets["serverinfo-name"],
                                         server_entry["name"])
            gtk_helpers.set_widget_value(self.gtk_widgets["serverinfo-host"],
                                         server_entry["host"])
            gtk_helpers.set_widget_value(
                self.gtk_widgets["serverinfo-game"],
                game_table[server_entry["game_id"]]["info"]["name"])
            gtk_helpers.set_widget_value(self.gtk_widgets['serverinfo-gameid'],
                                         server_entry['game_id'])
            gtk_helpers.set_widget_value(
                self.gtk_widgets["serverinfo-terrain"],
                server_entry["terrain"])
            gtk_helpers.set_widget_value(
                self.gtk_widgets["serverinfo-players"],
                i18n._("%(player_count)s / %(player_limit)s") % {
                    'player_count': str(server_entry["player_count"]),
                    'player_limit': str(server_entry["player_limit"])
                })
            gtk_helpers.set_widget_value(self.gtk_widgets["serverinfo-ping"],
                                         server_entry["ping"])

            player_model.clear()
            try:
                player_table = helpers.dict_to_list(
                    server_entry["players"], self.player_list_model_format)
                for entry in player_table:
                    player_model.append(entry)
                player_scrolledview.set_property("visible", True)
            except:
                player_scrolledview.set_property("visible", False)

            dialog.run()
            dialog.hide()
Beispiel #5
0
    def fill_game_store(self):
        """
        Loads game list into a list store
        """

        game_table = self.core.game_table.copy
        game_icons = self.game_icons
        game_model = self.gtk_widgets["game-list-model"]

        game_store_table = []
        for entry in game_table:
            game_store_table.append({})
            game_store_table[-1]["game_id"] = entry
            game_store_table[-1]["name"] = game_table[entry]["info"]["name"]
            game_store_table[-1]["status_icon"] = None
            game_store_table[-1]["game_icon"] = game_icons[entry]

        game_store_table = helpers.sort_dict_table(game_store_table, "name")
        game_store_list = helpers.dict_to_list(game_store_table, self.game_list_model_format)

        for list_entry in game_store_list:
            game_model.append(list_entry)
Beispiel #6
0
    def fill_game_store(self):
        """
        Loads game list into a list store
        """

        game_table = self.core.game_table.copy
        game_icons = self.game_icons
        game_model = self.gtk_widgets["game-list-model"]

        game_store_table = []
        for entry in game_table:
            game_store_table.append({})
            game_store_table[-1]["game_id"] = entry
            game_store_table[-1]["name"] = game_table[entry]["info"]["name"]
            game_store_table[-1]["status_icon"] = None
            game_store_table[-1]["game_icon"] = game_icons[entry]

        game_store_table = helpers.sort_dict_table(game_store_table, "name")
        game_store_list = helpers.dict_to_list(game_store_table,
                                               self.game_list_model_format)

        for list_entry in game_store_list:
            game_model.append(list_entry)