Previously, MP Staging was using connect_engine::connected_users() to fill in the user list.
However, I noticed that the server was already sending the user list to all clients, including
the host, so I could unify the handling between Staging and Join Game by just using the server
data for both.
I've also added appropriate indicators for host, observer, and self in the list for both dialogs.
Additional host= and observer= status keys are sent by the server for that purpose.
I've also made the server dispatch the player list to the host when a game is created. This is
slightly redundant, since the host is the only player at that point, but it's easier than creating
a user config locally, or using connected_users(), not to mention easier to maintain.
The wesnothd::game::send_user_list function no longer exists early id `description_` is null.
No idea why it did that. It's not even used in the function. Anyway, it needed to be removed in
order for the above change to work.
Speaking of the host's copy of the player list, I haven't touched that. It's still needed for
managing things in the connect_engine. Might simplify things further in the future by delegating
more handling to the server, since it has a lot of the data needed already, but that's a different
project.
This reverts commit 556331ac3f.
Since the keys aren't working, the implementation shouldn't be in the
Git repository. Otherwise some poor soul will attempt to use them and
face additional work afterwards.
This is meant to be a cleaner replacement to the [size_lock] widget. Both keys are optional,
in which case the layout engine will assume dynamic sizing for that dimension. Dynamic sizing
will also occur if either the fixed with or height evaluates to 0 or less.
These have no effect in the GUI2 lobby, nor do I intend to make use of them (plus the lobby has
its own sort controls anyway). I'm assuming they were for the GUI1 lobby.
[ci skip]
This prevents status text from sometimes floating off to the left if the status label shrinks but
a relayout hasn't occurred. In that case, the label widget's area would be larger than needed for
the text, and since left-align is the default setting, the next text gets stuck weirdly aligned.
This was the equivalent of the Player Info dialog for the old GUI1 MP Lobby, and is now unused.
The new GUI2 lobby uses the aforementioned Player Info dialog. The functionality is basically
the same, though, except the send-private-message interface is more streamlined in the new lobby.
I did one of these about a year ago, but in the time since I realize it was honestly really crowded
and had some fundamental problems (for example, the listbox would get a horizontal scrollbar if a game
with a lot of mods was started).
This time around, I've focused on simplicity. The main changes:
* The minimap has been made 10 px larger. This was to accommodate the 5 px borders, so now the actual
map image is 72x72.
* Game name and scenario name have swapped places, and the latter is now larger.
* Game names are no longer colorized based on the number of vacant slots or whether you can observe
the game or not.
* The Turns/Slots label coloring has been toned down and been made larger. It is now either white
(game has started), green (vacant slots available), or yellow (vacant slots available for reloaded game).
* The Turns limit no longer displays "/-" for games with unlimited turns. Now you just get "Turn n".
* Due to 1bfa170856, proper names of all missing content is displayed. I also got rid of those
"Unknown Scenario"/"Unknown Campaign" labels in favor of a simple red-color game type token (S or C),
respectively.
* All game setting icons have been moved to a tooltip attached to an info icon, except those for
Password Required and Observes Allowed.
* The info icon will also change color (and its tooltip display a message) if the player need to download
additional content to join that game.
[ci skip]
This is necessary since addon_info::display_name escapes markup (see 88ebb72b98). Without this,
certain characters like "'" don't display properly. It might be worth revisiting this at some
point and only escape formatting in specific cases where it's used with markup-enabled widgets,
but this is a quick solution.
It looks only acceptable (=without scrollbars, with acceptable minimum size for th game list) with resulutions of at least 1100x900, while the 'default ' resolution looks already good at 1300x700 which is less tatal space then what the small_resolution needs, for anythign smaller than 1300x700 we will then just use the tiny resolution.
The old GUI1 addon manager displayed both local and published versions of the addon directly in the list
if the addon was upgradable or outdated on the server. It seems to have gotten lost in the transition, so
this restores it.
just liek the other fixes of this type this only 'reverts' multimenu buttons to the prviusly behaviour which is that the smallest resolution is only chosen for 600x800 resolutions, for other bigger resolutions like 601x801 the medium resolution is chosen.
Not sure why, but in some cases the overlay calculations were getting screwed up. This makes them use
the general centered image macro, with accompanying fallback safety checks.
We don't want markup in any of the other fields. I still need to find a slightly better solution for the name
field, though. We don't want users to be able to use markup unnecessairly, but we do need markup to highlight
the names of ready-to-upload addons.
This fixes warnings about unescaped ampersands in the Author field.
that commit onyl changed the resolution choosing procedure for windows
not for widgets which made that code more complicated. This commit also
addsa workaround for < 800x600 widgets to the c++ code so that we no
longer have to think about this in the .cfg files
The previous commit adding a new library to the Library tab causes a
vertical scrollbar to appear there and somehow make the tab selector
overflow and get a vertical scrollbar. Vultraz suggested this fix and
seems to be aware that it doesn't solve preexisting issues with overlong
tab labels/translations.