feat: add nickname history feature (History button, searchable popup, Paste/Copy/Delete, XML persistence)#5065
Open
DateFTP wants to merge 8 commits into
Open
Conversation
added 5 commits
July 19, 2026 00:38
Increase the settings window content size from 680x480 to 720x520 to prevent content clipping in the Advanced tab when using non-English languages with longer translated labels.
- Compute fComboWidth dynamically based on remaining tab panel width instead of hardcoded 170px, clamped between 100-400px - Fix description label width to use tabPanelSize.fX instead of hardcoded 500px - Fix 'Check for update now' button position to clamp within tab bounds
- Add Nickname History button to Multiplayer settings tab - Add popup window with searchable grid (Nickname + Date columns) - Add Paste/Copy/Delete/Delete All/Close buttons - Save nickname changes to mta/logs/nicknames.xml - Auto-load existing entries on save to preserve history - Re-create nicknames.xml if file or logs/ directory is deleted - Add translation entries for all 43 locales (client.pot files) - All UI strings wrapped with _() for localization support
Author
Author
Author
Author
Re-add nickname history translation entries (12 msgid per file) using proper UTF-8 encoding to avoid mojibake corruption. Original commit had garbled non-ASCII characters in all translations.
Member
|
I don't see the purpose of having a nickname history. This seems rather useless? In what realistic scenario would a user require this? Also, please advise your LLM that translation files aren't created manually. |
Author
|
@Lpsd Some players will find the nickname history feature useful. As a player, I find this feature interesting. For example, if I change my nickname and forget my old nickname, I can go to the nickname history and retrieve my previous nickname. |
Author
|
@Lpsd I'll check if my language model has made any mistakes in the language and locale. I understand that this is not the correct way to load languages. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.




Summary
This PR adds a Nickname History feature to the MTA client Settings window (Multiplayer tab). When a player changes their nickname, the previous nickname is automatically saved to mta/logs/nicknames.xml. The player can later browse, search, paste, copy, or delete entries from the history popup.
Changes
Client/core/CSettings.h
Client/core/CSettings.cpp
GUI creation (CreateGUI):
XML persistence:
icknames.xml into the cache, appends the new nickname with a timestamp, then rewrites the file from the cache. This ensures old entries are never lost.
icknames.xml with an empty root if the file is missing.
Question boxes:
All UI strings are wrapped with _() for gettext localization.
Locale files (43 languages)
Added the following new translation entries to client.pot in every locale directory:
How it works
icknames.xml or the logs/ directory is deleted at runtime, the code recreates them automatically.
Testing notes
Checklist