diff options
author | Edward Welbourne <edward.welbourne@qt.io> | 2023-08-01 12:03:18 +0200 |
---|---|---|
committer | Edward Welbourne <edward.welbourne@qt.io> | 2023-08-09 17:53:26 +0200 |
commit | 743ceb7cc29236d69bb5fe7c8eedd49cb2eff589 (patch) | |
tree | 42c50da44bde33770d64d2c6c2a92abc82b460be /util/locale_database/qlocalexml2cpp.py | |
parent | e212b3633cbfe15947e0e8059fc82c279867828a (diff) |
Move enum-name-munging from LocaleHeaderWriter to QLocaleXmlReader
The former needed the latter's .dupes to do the job, so can now just
take a method as a tool to do the job instead, letting .dupes become
private. In the process refine the munging to free enumdata.py from
having to capitalize each word in its names. This will, in due course,
let us use more natural forms in various comments. This causes no
change to generted data.
Update enumdata.py's introduction doc, mainly to reflect this but also
fixing the out-of-date names (old *_list have long been *_map) and
adding some details to other paragraphs.
Task-number: QTBUG-94460
Change-Id: If195b2e94a53a495fc4f1f216bed07a910439fa7
Reviewed-by: Ievgenii Meshcheriakov <ievgenii.meshcheriakov@qt.io>
Diffstat (limited to 'util/locale_database/qlocalexml2cpp.py')
-rwxr-xr-x | util/locale_database/qlocalexml2cpp.py | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/util/locale_database/qlocalexml2cpp.py b/util/locale_database/qlocalexml2cpp.py index 137dec80ee..cfb3e2e432 100755 --- a/util/locale_database/qlocalexml2cpp.py +++ b/util/locale_database/qlocalexml2cpp.py @@ -456,9 +456,9 @@ class CalendarDataWriter (LocaleSourceEditor): months_data.write(self.writer) class LocaleHeaderWriter (SourceFileEditor): - def __init__(self, path, temp, dupes): + def __init__(self, path, temp, enumify): super().__init__(path, temp) - self.__dupes = dupes + self.__enumify = enumify def languages(self, languages): self.__enum('Language', languages, self.__language) @@ -483,20 +483,10 @@ class LocaleHeaderWriter (SourceFileEditor): if suffix is None: suffix = name - out, dupes = self.writer.write, self.__dupes + out, enumify = self.writer.write, self.__enumify out(f' enum {name} : ushort {{\n') for key, value in book.items(): - member = value[0].replace('-', ' ') - if name == 'Script': - # Don't .capitalize() as some names are already camel-case (see enumdata.py): - member = ''.join(word[0].upper() + word[1:] for word in member.split()) - if not member.endswith('Script'): - member += 'Script' - if member in dupes: - raise Error(f'The script name "{member}" is messy') - else: - member = ''.join(member.split()) - member = member + suffix if member in dupes else member + member = enumify(value[0], suffix) out(f' {member} = {key},\n') out('\n ' @@ -581,7 +571,7 @@ def main(out, err): # qlocale.h try: with LocaleHeaderWriter(qtsrcdir.joinpath('src/corelib/text/qlocale.h'), - qtsrcdir, reader.dupes) as writer: + qtsrcdir, reader.enumify) as writer: writer.languages(reader.languages) writer.scripts(reader.scripts) writer.territories(reader.territories) |