* New "Apply" button in preferences dialog that is used to quickly apply the GUI2 theme, no restart needed.
* gui initialization reorganized a bit. gui2::init() now responsible for reading themes from file only. Actual theme switching and activation done by gui2::switch_theme(). preferences dependency removed from gui and moved to caller of gui2::init(). gui2 tests updated accordingly.
Map/Scenario Editor
* Rename Load Map to Load Map/Scenario (since it can load both), Edit Scenario to Edit Scenario Settings, Save Map to just Save.
* Rearrange menu order
* Add icon for the preferences menu item (used the preexisting settings.png icon)
* Open folder correctly at Add-on's scenario directory instead of editor/scenarios. (#8910)
* Show Save Scenario As only for Scenarios
* Use the settings.png icon for Preferences menu item
* Add functionality to "Loyal" checkbox (Unit tool -> Place unit -> Right click menu) (#8445)
* Show warning when maps are saved in scenarios folder or vice versa (#8911)
* Unit List moved to Units menu from File menu to reduce some pressure from the latter.
* Status Table menu item disabled since it does nothing. (Should be reenabled once the functionality has been added.)
* Improve reload functionality in Editor (F5). Reload happens directly from memory and no temp files are needed. Also, the undo/redo stacks will be preserved. (#9024)
Time Schedule Editor
* Browse buttons now set wesnoth style paths instead of just pasting the absolute path returned by the file dialog
* Change text boxes from inactive to uneditable.
* Code generation improvements
* Add copyright notice to tod_new_schedule
* Confirmation messages
* Preview buttons for image and sound files and new icons for the preview button (2 sets : preview image and preview sound)
Unit Type Editor
* Confirmation messages
* New icons for the preview button (2 sets : preview image and preview sound)
Add-on menu
* Two new menu entries for (1) opening the Add-on selection dialog, (2) opening the folder corresponding to the Add-on
The open add-on folder option shows a GUI2 file dialog at the add-on's folder which can be used to open any file. If it is a loadable map/scenario it will be opened in the editor, otherwise the OS's default application for that file will be opened.
File Dialog
* Redesigned with new icons
* New Open External button that opens selected file/folder in the platform's default application (independently of what pressing Open would do). This could be used to quickly open a folder or preview the file before actually selecting it.
* Extension checking and filename validation. (See #8911)
A rich text label widget that can show text marked up with help markup.
Also includes the GUI Test Window, accessible in the title screen after launching wesnoth using --clock option. It can be used as dialog template/example or as a place to test GUI2 code.
The link with details about individual compaigns is useful to players,
even if they aren't looking to become translators. So move it upwards.
The text about first-time players seemed confusing to me, as the choice
is already limited to languages that the player can read. Reworded it,
but after discussion in the PR, neither version was better than just
removing it.
* Redesigned the version dialog to serve as a general purpose About dialog.
* Credits button removed from title screen
* Moved community dialog contents to about dialog as new tab
Co-Authored-By: Pentarctagon
* Bugfixes to the tab_container widget
* Success indication mechanism on copy buttons
* bugfixes for unit type editor
1. accept space in unit type id
2. don't write translated string to generated wml
3. add textdomain at the top of the generated file
4. fix bad key in generated attack block
Add-ons: checks for any that exist in the chosen other version but not in the current version.
Preferences: adds attributes that don't exist from the chosen other version's preferences that aren't in the current version's preferences. for attributes that exist in both, use the attributes from the file that was modified most recently.
Credentials: move if the credentials file doesn't exist.
Fixes#7936
* Moved the Show All Languages checkbox from the main body to the
bottom left of the dialog to save space and make it more obviously
connected to the listbox.
* Changed the Show All Languages checkbox label to reduce the word
count a tiny bit.
* Added text regarding translation percentages representing core
textdomains only.
* Added a link to gettext.wesnoth.org.
While it sounds like a great idea on paper, in practice having the
language column have the same height on all rows causes issues because
of at least one entry having an unusually tall label because of
non-Latin characters involved in it.
[label] does not support setting the vertical alignment of text — only
the vertical alignment of the widget itself can be set. This doesn't
help in this case because the widget is always as tall as its row —
it's the text's positioning that needs adjusting.
It turns out to be a better look to have all text be vertically
centered by not letting the label's height be dictated by the row's,
and let the layout engine center the label if needed for any reason.
This overhaul introduces a GUI option to show all languages regardless
of their completion threshold, as well as a side panel including a
general explanation of community translations and how players can
potentially contribute to them, plus a link to the main translations
page on the wiki.
A few points to make here:
* The URL points to the main page on purpose, since it's meant to be
a catch-all for all languages regardless of which one the player
has got selected or configured (those are two different things at
the moment).
* There's an issue where when showing all translations, some of the
non-Latin translation names cause the baseline of the language
name labels to end up entirely misaligned with the completion
labels. I am not entirely sure how to fix this right now.
* Showing all translations alters the dialog's layout permanently. I
believe there's no way out of this with the current GUI API.
* We use the stock text colouring function used for unit defence
values. This might not be entirely ideal because they are all very
green for translation stats above the minimum threshold, so there's
basically no variance by default until all translations are shown
together.
* An idea could be to add a link to the gettext.wesnoth.org stats
page in the dialog.
This version uses SDL_GetTicks() as a monotonic source to avoid the
previous version's pitfalls, namely the fact that the game's framerate
may not necessarily be a constant, and in particular, the old code
assumed a completely different framerate than what we ended up with
after the texture-based rendering changes in 1.17.x, resulting in an
almost-unnoticeable text fade due to the update() function being
called WAY more often than before.
Note that the reliance on SDL_GetTicks() means the timings break
at some point after 49 days of game runtime, exactly once. This
should result in a visible "jitter" effect if the 32-bits ticks value
wraps around in the middle of a fade sequence, but other than that
it's not that big of a deal to warrant requiring SDL 2.0.18+ for the
64-bit version.
(cherry picked from commit db30ca53ae)
Fixes the following bugs :
Stop scroll_text from growing infinitely and instead show the
scrollbars when the text dimensions exceed the default size of
the underlying multiline_text in some dialogs (such as edit_pbl,
the pbl publishing editor).
Allow horizontal_grow/vertical_grow to work correctly. Currently,
the widget stops vertically growing due to absence of
max_height=0, again in some specific dialogs.