GUI: Ship authors as a Qt resource file
This commit is contained in:
parent
be51acfffb
commit
c66fc43e5b
|
@ -81,7 +81,6 @@ epan/dissectors/dcerpc/*-stamp
|
||||||
########
|
########
|
||||||
doc/*.html
|
doc/*.html
|
||||||
doc/*.[14]
|
doc/*.[14]
|
||||||
doc/AUTHORS-SHORT
|
|
||||||
doc/ws.css
|
doc/ws.css
|
||||||
docbook/developer-guide*.xml
|
docbook/developer-guide*.xml
|
||||||
docbook/user-guide*.xml
|
docbook/user-guide*.xml
|
||||||
|
|
|
@ -1952,9 +1952,6 @@ if (BUILD_logray)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (ASCIIDOCTOR_FOUND)
|
if (ASCIIDOCTOR_FOUND)
|
||||||
list(APPEND INSTALL_FILES
|
|
||||||
${CMAKE_BINARY_DIR}/doc/AUTHORS-SHORT
|
|
||||||
)
|
|
||||||
list(APPEND DOC_FILES
|
list(APPEND DOC_FILES
|
||||||
${CMAKE_BINARY_DIR}/doc/androiddump.html
|
${CMAKE_BINARY_DIR}/doc/androiddump.html
|
||||||
${CMAKE_BINARY_DIR}/doc/udpdump.html
|
${CMAKE_BINARY_DIR}/doc/udpdump.html
|
||||||
|
|
|
@ -4,7 +4,3 @@
|
||||||
*.html
|
*.html
|
||||||
*.tmp
|
*.tmp
|
||||||
wireshark.pod
|
wireshark.pod
|
||||||
|
|
||||||
# Misc #
|
|
||||||
########
|
|
||||||
AUTHORS-SHORT-FORMAT
|
|
||||||
|
|
|
@ -9,17 +9,6 @@
|
||||||
|
|
||||||
find_package( Asciidoctor 1.5 )
|
find_package( Asciidoctor 1.5 )
|
||||||
|
|
||||||
add_custom_command(
|
|
||||||
OUTPUT AUTHORS-SHORT
|
|
||||||
COMMAND ${PYTHON_EXECUTABLE}
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/make-authors-short.py
|
|
||||||
< ${CMAKE_SOURCE_DIR}/AUTHORS
|
|
||||||
> ${CMAKE_CURRENT_BINARY_DIR}/AUTHORS-SHORT
|
|
||||||
DEPENDS
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/make-authors-short.py
|
|
||||||
${CMAKE_SOURCE_DIR}/AUTHORS
|
|
||||||
)
|
|
||||||
|
|
||||||
set(MAN1_SOURCE_FILES)
|
set(MAN1_SOURCE_FILES)
|
||||||
set(MAN4_SOURCE_FILES)
|
set(MAN4_SOURCE_FILES)
|
||||||
set(MAN1_INSTALL_FILES)
|
set(MAN1_INSTALL_FILES)
|
||||||
|
@ -110,7 +99,6 @@ endif()
|
||||||
add_custom_target(
|
add_custom_target(
|
||||||
docs ALL
|
docs ALL
|
||||||
DEPENDS
|
DEPENDS
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/AUTHORS-SHORT
|
|
||||||
${MAN1_INSTALL_FILES}
|
${MAN1_INSTALL_FILES}
|
||||||
${MAN4_INSTALL_FILES}
|
${MAN4_INSTALL_FILES}
|
||||||
${HTML_INSTALL_FILES}
|
${HTML_INSTALL_FILES}
|
||||||
|
|
|
@ -455,7 +455,6 @@ File "${STAGING_DIR}\COPYING.txt"
|
||||||
File "${STAGING_DIR}\NEWS.txt"
|
File "${STAGING_DIR}\NEWS.txt"
|
||||||
File "${STAGING_DIR}\README.txt"
|
File "${STAGING_DIR}\README.txt"
|
||||||
File "${STAGING_DIR}\README.windows.txt"
|
File "${STAGING_DIR}\README.windows.txt"
|
||||||
File "${STAGING_DIR}\AUTHORS-SHORT"
|
|
||||||
File "${STAGING_DIR}\manuf"
|
File "${STAGING_DIR}\manuf"
|
||||||
File "${STAGING_DIR}\wka"
|
File "${STAGING_DIR}\wka"
|
||||||
File "${STAGING_DIR}\services"
|
File "${STAGING_DIR}\services"
|
||||||
|
|
|
@ -509,7 +509,6 @@ File "${STAGING_DIR}\COPYING.txt"
|
||||||
File "${STAGING_DIR}\NEWS.txt"
|
File "${STAGING_DIR}\NEWS.txt"
|
||||||
File "${STAGING_DIR}\README.txt"
|
File "${STAGING_DIR}\README.txt"
|
||||||
File "${STAGING_DIR}\README.windows.txt"
|
File "${STAGING_DIR}\README.windows.txt"
|
||||||
File "${STAGING_DIR}\AUTHORS-SHORT"
|
|
||||||
File "${STAGING_DIR}\manuf"
|
File "${STAGING_DIR}\manuf"
|
||||||
File "${STAGING_DIR}\wka"
|
File "${STAGING_DIR}\wka"
|
||||||
File "${STAGING_DIR}\services"
|
File "${STAGING_DIR}\services"
|
||||||
|
|
|
@ -39,9 +39,6 @@
|
||||||
<Component Id="cmpREADME_windows_txt" Guid="*">
|
<Component Id="cmpREADME_windows_txt" Guid="*">
|
||||||
<File Id="filREADME_windows_txt" KeyPath="yes" Source="$(var.Staging.Dir)\README.windows.txt" />
|
<File Id="filREADME_windows_txt" KeyPath="yes" Source="$(var.Staging.Dir)\README.windows.txt" />
|
||||||
</Component>
|
</Component>
|
||||||
<Component Id="cmpAUTHORS_SHORT" Guid="*">
|
|
||||||
<File Id="filAUTHORS_SHORT" KeyPath="yes" Source="$(var.Staging.Dir)\AUTHORS-SHORT" />
|
|
||||||
</Component>
|
|
||||||
<Component Id="cmpManuf" Guid="*">
|
<Component Id="cmpManuf" Guid="*">
|
||||||
<File Id="filManuf" KeyPath="yes" Source="$(var.Staging.Dir)\manuf" />
|
<File Id="filManuf" KeyPath="yes" Source="$(var.Staging.Dir)\manuf" />
|
||||||
</Component>
|
</Component>
|
||||||
|
@ -86,7 +83,6 @@
|
||||||
<ComponentRef Id="cmpNEWS_txt" />
|
<ComponentRef Id="cmpNEWS_txt" />
|
||||||
<ComponentRef Id="cmpREADME_txt" />
|
<ComponentRef Id="cmpREADME_txt" />
|
||||||
<ComponentRef Id="cmpREADME_windows_txt" />
|
<ComponentRef Id="cmpREADME_windows_txt" />
|
||||||
<ComponentRef Id="cmpAUTHORS_SHORT" />
|
|
||||||
<ComponentRef Id="cmpManuf" />
|
<ComponentRef Id="cmpManuf" />
|
||||||
<ComponentRef Id="cmpWka" />
|
<ComponentRef Id="cmpWka" />
|
||||||
<ComponentRef Id="cmpServices" />
|
<ComponentRef Id="cmpServices" />
|
||||||
|
|
|
@ -1,9 +1,6 @@
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
#
|
#
|
||||||
# Generate the AUTHORS-SHORT file.
|
# Generate the authors.csv file.
|
||||||
# Ported from make-authors-short.pl, copyright 2004 Ulf Lamping <ulf.lamping@web.de>
|
|
||||||
#
|
|
||||||
# By Gerald Combs <gerald@wireshark.org
|
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
#
|
#
|
||||||
|
@ -16,11 +13,10 @@ import io
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
def main():
|
|
||||||
stdinu8 = io.TextIOWrapper(sys.stdin.buffer, encoding='utf8')
|
def remove_tasks(stdinu8):
|
||||||
stdoutu8 = io.TextIOWrapper(sys.stdout.buffer, encoding='utf8')
|
|
||||||
stderru8 = io.TextIOWrapper(sys.stderr.buffer, encoding='utf8')
|
|
||||||
in_subinfo = False
|
in_subinfo = False
|
||||||
|
all_lines = []
|
||||||
|
|
||||||
# Assume the first line is blank and skip it. make-authors-short.pl
|
# Assume the first line is blank and skip it. make-authors-short.pl
|
||||||
# skipped over the UTF-8 BOM as well. Do we need to do that here?
|
# skipped over the UTF-8 BOM as well. Do we need to do that here?
|
||||||
|
@ -32,18 +28,36 @@ def main():
|
||||||
sub_m = re.search(r'(.*?)\s*\{', line)
|
sub_m = re.search(r'(.*?)\s*\{', line)
|
||||||
if sub_m:
|
if sub_m:
|
||||||
in_subinfo = True
|
in_subinfo = True
|
||||||
stdoutu8.write(sub_m.group(1) + '\n')
|
all_lines.append(sub_m.group(1))
|
||||||
elif '}' in line:
|
elif '}' in line:
|
||||||
in_subinfo = False
|
in_subinfo = False
|
||||||
nextline = next(stdinu8)
|
nextline = next(stdinu8)
|
||||||
if not re.match('^\s*$', nextline):
|
if not re.match('^\s*$', nextline):
|
||||||
if '{' in nextline:
|
# if '{' in nextline:
|
||||||
stderru8.write("No blank line after '}', found " + nextline)
|
# stderru8.write("No blank line after '}', found " + nextline)
|
||||||
stdoutu8.write(nextline)
|
all_lines.append(nextline)
|
||||||
elif in_subinfo:
|
elif in_subinfo:
|
||||||
continue
|
continue
|
||||||
else:
|
else:
|
||||||
stdoutu8.write(line)
|
all_lines.append(line)
|
||||||
|
return all_lines
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
stdinu8 = io.TextIOWrapper(sys.stdin.buffer, encoding='utf8')
|
||||||
|
stdoutu8 = io.TextIOWrapper(sys.stdout.buffer, encoding='utf8')
|
||||||
|
stderru8 = io.TextIOWrapper(sys.stderr.buffer, encoding='utf8')
|
||||||
|
|
||||||
|
lines = remove_tasks(stdinu8)
|
||||||
|
patt = re.compile("(.*)[<(]([\\s'a-zA-Z0-9._%+-]+(\\[[Aa][Tt]\\])?[a-zA-Z0-9._%+-]+)[>)]")
|
||||||
|
|
||||||
|
for line in lines:
|
||||||
|
match = patt.match(line)
|
||||||
|
if match:
|
||||||
|
name = match.group(1).strip()
|
||||||
|
mail = match.group(2).strip().replace("[AT]", "@")
|
||||||
|
stdoutu8.write("{},{}\n".format(name, mail))
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
main()
|
main()
|
|
@ -655,6 +655,24 @@ foreach(_file ${WIRESHARK_QT_TS})
|
||||||
endforeach()
|
endforeach()
|
||||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/i18n.qrc.in ${CMAKE_CURRENT_BINARY_DIR}/i18n.qrc)
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/i18n.qrc.in ${CMAKE_CURRENT_BINARY_DIR}/i18n.qrc)
|
||||||
|
|
||||||
|
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/authors.qrc"
|
||||||
|
"<RCC>\n"
|
||||||
|
" <qresource prefix=\"/about\">\n"
|
||||||
|
" <file compress-algo=\"zstd\">authors.csv</file>\n"
|
||||||
|
" </qresource>\n"
|
||||||
|
"</RCC>\n"
|
||||||
|
)
|
||||||
|
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/authors.csv
|
||||||
|
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/tools/make-authors-csv.py
|
||||||
|
< ${CMAKE_SOURCE_DIR}/AUTHORS
|
||||||
|
> ${CMAKE_CURRENT_BINARY_DIR}/authors.csv
|
||||||
|
DEPENDS
|
||||||
|
${CMAKE_SOURCE_DIR}/tools/make-authors-csv.py
|
||||||
|
${CMAKE_SOURCE_DIR}/AUTHORS
|
||||||
|
)
|
||||||
|
|
||||||
set(WIRESHARK_QT_QRC
|
set(WIRESHARK_QT_QRC
|
||||||
../../resources/about.qrc
|
../../resources/about.qrc
|
||||||
../../resources/languages/languages.qrc
|
../../resources/languages/languages.qrc
|
||||||
|
@ -662,6 +680,8 @@ set(WIRESHARK_QT_QRC
|
||||||
../../resources/stock_icons.qrc
|
../../resources/stock_icons.qrc
|
||||||
../../resources/wsicon.qrc
|
../../resources/wsicon.qrc
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/i18n.qrc
|
${CMAKE_CURRENT_BINARY_DIR}/i18n.qrc
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/authors.qrc
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/authors.csv
|
||||||
)
|
)
|
||||||
|
|
||||||
if(NOT Qt${qtver}Widgets_VERSION VERSION_LESS "5.9")
|
if(NOT Qt${qtver}Widgets_VERSION VERSION_LESS "5.9")
|
||||||
|
|
|
@ -69,7 +69,7 @@ AStringListListModel(parent)
|
||||||
{
|
{
|
||||||
QFile f_authors;
|
QFile f_authors;
|
||||||
|
|
||||||
f_authors.setFileName(get_datafile_path("AUTHORS-SHORT"));
|
f_authors.setFileName(":/about/authors.csv");
|
||||||
f_authors.open(QFile::ReadOnly | QFile::Text);
|
f_authors.open(QFile::ReadOnly | QFile::Text);
|
||||||
QTextStream ReadFile_authors(&f_authors);
|
QTextStream ReadFile_authors(&f_authors);
|
||||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
|
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
|
||||||
|
@ -78,18 +78,11 @@ AStringListListModel(parent)
|
||||||
ReadFile_authors.setCodec("UTF-8");
|
ReadFile_authors.setCodec("UTF-8");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
QRegularExpression rx("(.*)[<(]([\\s'a-zA-Z0-9._%+-]+(\\[[Aa][Tt]\\])?[a-zA-Z0-9._%+-]+)[>)]");
|
|
||||||
while (!ReadFile_authors.atEnd()) {
|
while (!ReadFile_authors.atEnd()) {
|
||||||
QString line = ReadFile_authors.readLine();
|
QStringList entry = ReadFile_authors.readLine().split(",", Qt::SkipEmptyParts);
|
||||||
|
|
||||||
if (line.trimmed().length() == 0)
|
if (entry.size() == 2) {
|
||||||
continue;
|
appendRow(entry);
|
||||||
if (line.startsWith("------"))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
QRegularExpressionMatch match = rx.match(line);
|
|
||||||
if (match.hasMatch()) {
|
|
||||||
appendRow(QStringList() << match.captured(1).trimmed() << match.captured(2).trimmed());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
f_authors.close();
|
f_authors.close();
|
||||||
|
|
|
@ -2115,9 +2115,7 @@ get_persconffile_path(const char *filename, gboolean from_profile)
|
||||||
char *
|
char *
|
||||||
get_datafile_path(const char *filename)
|
get_datafile_path(const char *filename)
|
||||||
{
|
{
|
||||||
if (running_in_build_directory_flag &&
|
if (running_in_build_directory_flag && !strcmp(filename, "hosts")) {
|
||||||
(!strcmp(filename, "AUTHORS-SHORT") ||
|
|
||||||
!strcmp(filename, "hosts"))) {
|
|
||||||
/* We're running in the build directory and the requested file is a
|
/* We're running in the build directory and the requested file is a
|
||||||
* generated (or a test) file. Return the file name in the build
|
* generated (or a test) file. Return the file name in the build
|
||||||
* directory (not in the source/data directory).
|
* directory (not in the source/data directory).
|
||||||
|
|
Loading…
Reference in New Issue