summaryrefslogtreecommitdiffstats
path: root/util/locale_database/qlocalexml2cpp.py
diff options
context:
space:
mode:
authorEdward Welbourne <edward.welbourne@qt.io>2023-08-01 12:03:18 +0200
committerEdward Welbourne <edward.welbourne@qt.io>2023-08-09 17:53:26 +0200
commit743ceb7cc29236d69bb5fe7c8eedd49cb2eff589 (patch)
tree42c50da44bde33770d64d2c6c2a92abc82b460be /util/locale_database/qlocalexml2cpp.py
parente212b3633cbfe15947e0e8059fc82c279867828a (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-xutil/locale_database/qlocalexml2cpp.py20
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)