diff --git a/CREDITS.txt b/CREDITS.txt new file mode 100644 index 000000000..8abc0d029 --- /dev/null +++ b/CREDITS.txt @@ -0,0 +1,77 @@ +Connor Abbott +David Ankers +Sergiy Anikeyev +Pedro Assuncao +Fredrik Arvidsson +Werner Backes +Jose Barros +Pete Boehl +David Carlson +James Cotton +Steve Doll +Piotr Esden-Tempski +Richard Flay +Peter Farnworth +Ed Faulkner +Darren Furniss +Frederic Goddeeris +Daniel Godin +Bani Greyling +Nuno Guedes +Erik Gustavsson +Peter Gunnarsson +Dean Hall +Joe Hlebasko +Andy Honecker +Ryan Hunt +Mark James +Sami Korhonen +Thorsten Klose +Hallvard Kristiansen +Edouard Lafargue +Mike Labranche +Fredrik Larsson +Pablo Lema +David Llama +Matt Lipski +Les Newell +Ken Northup +Greg Matthews +Guy McCaldin +Gary Mortimer +Alessio Morale +Cathy Moss +Angus Peart +Dmytro Poplavskiy +Eric Price +Richard Querin +Randy Ram +Philippe Renon +Laurent Ribon +Mathieu Rondonneau +Julien Rouviere +Jackson Russell +Zik Saleeba +Professor Dale Schinstock +Professor Kenn Sebesta +Oleg Semyonov +Stacey Sheldon +Troy Schultz +Dr. Erhard Siegl +Mike Smith +Alex Sowa +Pete Stapley +Vova Starikh +Rowan Taubitz +Andrew Thoms +Philippe Vanhaesendonck +Jasper van Loenen +Vassilis Varveropoulos +Kevin Vertucio +Alex Vrubel +Brian Webb +Justin Welander +Mat Wellington +Kendal Wells +David Willis +Dmitriy Zaitsev diff --git a/ground/openpilotgcs/src/plugins/coreplugin/authorsdialog.pri b/ground/openpilotgcs/src/plugins/coreplugin/authorsdialog.pri new file mode 100644 index 000000000..c42d800bd --- /dev/null +++ b/ground/openpilotgcs/src/plugins/coreplugin/authorsdialog.pri @@ -0,0 +1,41 @@ +include(../../python.pri) + +# +# This qmake code generates AuthorsModel.qml using CREDITS.txt. +# +# This is a bit tricky since the script should be run always and before +# the other dependencies evaluation. +# + +# Since debug_and_release option is set, we need this +!debug_and_release|build_pass { + + # Define other variables + AUTHORS_SCRIPT = $$GCS_SOURCE_TREE/src/plugins/coreplugin/authorsdialog.py + AUTHORS_COMMAND = $$PYTHON \"$$AUTHORS_SCRIPT\" + AUTHORS_SOURCE = $$ROOT_DIR/CREDITS.txt + AUTHORS_TEMPLATE = $$GCS_SOURCE_TREE/src/plugins/coreplugin/qml/AuthorsModel.qml.template + AUTHORS_DIR = $$GCS_BUILD_TREE/../openpilotgcs-synthetics + AUTHORS_FILE = $$AUTHORS_DIR/AuthorsModel.qml + + # Create custom authors target which generates a real file + authors.target = $$AUTHORS_FILE + authors.commands = -$(MKDIR) $$targetPath($$AUTHORS_DIR) $$addNewline() + authors.commands += $$AUTHORS_COMMAND \ + --infile=\"$$AUTHORS_SOURCE\" \ + --template=\"$$AUTHORS_TEMPLATE\" \ + --outfile=\"$$AUTHORS_FILE\" + authors.depends = FORCE + QMAKE_EXTRA_TARGETS += authors + + # Hook authors target in between qmake's Makefile update and + # the actual project target + authors_hook.depends = authors + debug_and_release { + CONFIG(debug,debug|release):authors_hook.target = Makefile.Debug + CONFIG(release,debug|release):authors_hook.target = Makefile.Release + } else { + authors_hook.target = Makefile + } + QMAKE_EXTRA_TARGETS += authors_hook +} diff --git a/ground/openpilotgcs/src/plugins/coreplugin/authorsdialog.py b/ground/openpilotgcs/src/plugins/coreplugin/authorsdialog.py new file mode 100644 index 000000000..1f4910e6a --- /dev/null +++ b/ground/openpilotgcs/src/plugins/coreplugin/authorsdialog.py @@ -0,0 +1,52 @@ +#!/usr/bin/env python +# +# Helper function to generate a QML list of contributors +# +# (c) 2013, The OpenPilot Team, http://www.openpilot.org +# See also: The GNU Public License (GPL) Version 3 +# + +import optparse +import sys + +def create_qml_file(args): + """This function reads input and template files and writes output QML file""" + + assert args.infile is not None + assert args.outfile is not None + assert args.template is not None + + with open(args.infile, "rt") as input_file: + names = input_file.readlines() + + names_list = "" + for name in names: + if name.strip(): + names_list += " ListElement { name: \"" + name.strip() + "\" }\n" + + with open(args.template, "rt") as template_file, open(args.outfile, "wt") as output_file: + template = template_file.read() + output_file.write(template.replace("${LIST_ELEMENTS}\n", names_list)) + + return 0 + +def main(): + """Helper function to generate a QML list of contributors""" + + parser = optparse.OptionParser(description = main.__doc__); + + parser.add_option('--infile', action='store', + help='name of input file, one name per line'); + parser.add_option('--outfile', action='store', + help='name of output QML file'); + parser.add_option('--template', action='store', + help='name of QML template file'); + (args, positional_args) = parser.parse_args() + + if (len(positional_args) != 0) or (len(sys.argv) == 1): + parser.error("incorrect number of arguments, try --help for help") + + return create_qml_file(args) + +if __name__ == "__main__": + sys.exit(main()) diff --git a/ground/openpilotgcs/src/plugins/coreplugin/coreplugin.pro b/ground/openpilotgcs/src/plugins/coreplugin/coreplugin.pro index 3bdbaacd5..1631fda8f 100644 --- a/ground/openpilotgcs/src/plugins/coreplugin/coreplugin.pro +++ b/ground/openpilotgcs/src/plugins/coreplugin/coreplugin.pro @@ -14,6 +14,7 @@ include(../../libs/utils/utils.pri) include(../../libs/version_info/version_info.pri) include(../../shared/scriptwrapper/scriptwrapper.pri) include(coreplugin_dependencies.pri) +include(authorsdialog.pri) INCLUDEPATH += dialogs \ uavgadgetmanager \ diff --git a/ground/openpilotgcs/src/plugins/coreplugin/qml/AuthorsModel.qml.template b/ground/openpilotgcs/src/plugins/coreplugin/qml/AuthorsModel.qml.template new file mode 100644 index 000000000..4ac54838b --- /dev/null +++ b/ground/openpilotgcs/src/plugins/coreplugin/qml/AuthorsModel.qml.template @@ -0,0 +1,8 @@ +/* +This list model was created for the AuthorsDialog. +*/ +import QtQuick 1.1 + +ListModel { +${LIST_ELEMENTS} +}