1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2024-12-01 09:24:10 +01:00

OP-262 GCS: new "About Authors" dialog which displays the contents of the CREDITS.txt file. We should actually have a makefile script which takes credits.txt, parses it and updates the CREDITS.html file whenever we compile the GCS, to enable a nicer display of the authors.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2390 ebee16cc-31ac-478f-84a7-5cbb03baadba
This commit is contained in:
edouard 2011-01-12 21:14:35 +00:00 committed by edouard
parent 49718aabf4
commit b7cb562009
9 changed files with 442 additions and 63 deletions

View File

@ -0,0 +1,193 @@
<html>
<p>This is a credits file of people that are or have been key contributors to the OpenPilot project.
Without the work of the people in this file OpenPilot would not be what it is today.
<p>It is sorted alphabetically by name and formatted so that it allows for easy grepping and beautification by scripts.
<pre>
The fields are:
Name (N)
Email (E),
Description of work (D)
Current maintainer function (M)
----------
N: Connor Abbott
E: connor (at) abbott (dot) cx
D: Win32 OpenPilot port
M: SITL Win32
N: David Ankers
E: david (at) openpilot (dot) org
D: Co-founder, Project Coordination
D: Minor GCS infrastructure, updating the credit file
M: Admin
N: Pedro Assuncao
E: pedro (dot) agda (plus) openpilot (at) gmail (dot) com
D: Initial GCS Settings Gadget work
N: Jose Barros
E: josembarros (at) hotmail (dot) com
D: Next-Gen OP Map Lib, Y-Modem Library, Uploader Plugin
D: OP Bootloader, AHRS Bootloader, OPUploadTool
M: Bootloader, OP MAP Lib
N: David "Buzz" Carlson
E: chebuzz (plus) openpilot (at) gmail (dot) com
D: 3D ModelView GCS Plugin, sponsor of HITL merge work and XPlane addition
M: 3D Modelview
N: Eric Price
E: corvus (dot) corax (at) cybertrench (dot) com
D: IL2 HITL GCS Plugin, Posix OpenPilot, Advanced stabilisation module
M: SITL Posix
N: James Cotton
E: peabody124 (plus) openpilot (at) gmail (dot) com
D: Multiplatform HID implementation (firmware & GCS), GCS Joystick control
D: Posix OpenPilot work and Mac implementation
D: Firmware implementation of Professor Schinstock's INS/GPS
M: Architecture co-lead
N: Piotr Esden-Tempski
E: esden (at) esden (dot) net
D: Floss-JTAG Rev A, 4-layer initial design
N: Frederic Goddeeris
E: fredericgoddeeris (at) hotmail (dot) com
D: I2C work and FreeRTOS work, MK integration
D: EagleTree OSD implementation
M: OSD Module
N: Daniel Godin
E: dgodin (at) dnsct (dot) com
W: Sponsor: Notify Plugin for the GCS
N: Bani Greyling
E: bani (dot) greyling (plus) openpilot (at) gmail (dot) com
D: GCS Scope plugin
N: Nuno Guedes
E: muralha (plus) openpilot (at) gmail (dot) com
D: 3D artwork, moving surfaces and work on ModelView
N: Peter Gunnarsson
E: peter (at) pyne (dot) se
D: GCS Core Developer
D: Multiple GCS plugins, Gadget foundations, UAVObject viewer
N: Dean Hall
E: dwhall256 (plus) openpilot (at) gmail (dot) com
D: Creator of http://pythononachip.org
N: Joe Hlebasko
E: joe (dot) hlebasko(plus) openpilot (at) gmail (dot) com
D: Version 3 Main Board routing
N: Sami Korhonen
E: samik (dot) korhonen (plus) openpilot (at) gmail (dot) com
D: GPS Module, Spektrum RC Module
N: Thorsten Klose
E: thorsten.klose (at) dmx (dot) de
D: Embedded STM32 infrastructure
N: Edouard Lafargue
E: edouard (at) lafargue (dot) name
D: GCS Dial Plugins, GCS PFD Plugin, GCS GPS plugin, GCS Config plugin
D: Artwork including standard display dials
M: GCS Core
N: Matt Lipski
E: mattlipski (plus) openpilot (at) gmail (dot) com
D: Deluxe Dials Set artwork, (Artificial Horizon, Compass, Turn Indicator)
N: Les Newell
E: les (dot) newell (at) fastmail (dot) co (dot) uk
D: Advanced mixer matrix, SPI protocol based on UAVObjects
N: Ken Northup
E: helos360 (at) bellsouth (dot) net
D: 3D Modelling, Easystar adaption from FMS
N: Guy McCaldin
E: guymcc (at) gmail (dot) com
D: Artwork and design including work on the Deluxe Dial Set
N: Cathy Moss
E: cmoss296 (at) blueyonder (dot) co (dot) uk
D: Hardware design Lead: Gen 2 Mainboard, PipXtreme, Current Sensor
D: Lead dev PipXtreme, creator OP Map Plugin
M: PipX Modems
N: Angus Peart
E: gussy (at) openpilot (dot) org
D: Co-founder, Principal hardware architect.
D: Hardware design of OpenPilot, AHRS, GPS and other hardware
D: Core developer embedded code
N: Richard Querin
E: rfquerin (plus) openpilot (at) gmail (dot) com
D: Graphic Design, OpenPilot Logo
N: Laurent Ribon
E: ribon (dot) l (at) club-internet (dot) fr
D: The GLC_lib as used in the ModelView Plugin
D: See: http://www.glc-lib.net/
N: Julien Rouviere
E: julien.rouviere (plus) openpilot (at) gmail (dot) com
D: GCS Core Developer
D: GCS Framework and Plugins for the GCS
N: Zik Saleeba
E: zik (at) zikzak (dot) net
D: Initial schematic based on Zik's Flying Fox schematic
N: Professor Dale Schinstock
E: dales (at) ksu (dot) edu
D: Lead AHRS Developer
D: Creator of the OpenPilot INS / EKF
N: Stacey Sheldon
E: stac (at) solidgoldbomb (dot) org
D: Core Embedded Developer
D: SPI protocol for AHRS, I2C rewrite and much core work
N: Troy Schultz
E: troy (dot) schultz (at) rogers (dot) com
D: INS design review and optimisation
N: Dr. Erhard Siegl
E: Erhard (dot) Siegl (at) zogazoga (dot) at
D: Configuration engine for the GCS
N: Pete Stapley
E: pete (at) stapleylabs (dot) com
D: PPM inputs
N: Rowan Taubitz
E: rowan (at) zantek (dot) com (dot) au
D: Hardware debugging and testing, creation of 2-layer Floss-JTAG Rev B
D: Creation of Next-Gen FOSS-JTAG board
N: Andrew Thoms
E: electronics (at) andrewspizza (dot) net
D: IP Telemtry plugin for the GCS
D: Helicopter support code and mixing for CCPM
N: Vassilis Varveropoulos
E: vassilis (at) openpilot (dot) org
D: Co-founder, Principal embedded software architect.
D: Module architecture and UAVTalk/UAVObjects implementation.
M: Architecture co-lead
N: Alex Vrubel
E: alex.vrubel (plus) openpilot (at) gmail (dot) com
D: Russian translation of the GCS
</pre>
</html>

View File

@ -0,0 +1,96 @@
/**
******************************************************************************
*
* @file authorsdialog.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* Parts by Nokia Corporation (qt-info@nokia.com) Copyright (C) 2009.
* @addtogroup GCSPlugins GCS Plugins
* @{
* @addtogroup CorePlugin Core Plugin
* @{
* @brief The Core GCS plugin
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "authorsdialog.h"
#include "coreconstants.h"
#include "icore.h"
#include <utils/qtcassert.h>
#include <QtCore/QDate>
#include <QtCore/QFile>
#include <QtCore/QSysInfo>
#include <QtGui/QDialogButtonBox>
#include <QtGui/QGridLayout>
#include <QtGui/QLabel>
#include <QtGui/QPushButton>
#include <QtGui/QTextBrowser>
using namespace Core;
using namespace Core::Internal;
using namespace Core::Constants;
AuthorsDialog::AuthorsDialog(QWidget *parent)
: QDialog(parent)
{
// We need to set the window icon explicitly here since for some reason the
// application icon isn't used when the size of the dialog is fixed (at least not on X11/GNOME)
setWindowIcon(QIcon(":/core/images/openpilot_logo_32.png"));
setWindowTitle(tr("About OpenPilot Authors"));
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
QGridLayout *layout = new QGridLayout(this);
layout->setSizeConstraint(QLayout::SetFixedSize);
QString version = QLatin1String(GCS_VERSION_LONG);
version += QDate(2007, 25, 10).toString(Qt::SystemLocaleDate);
QString ideRev;
#ifdef GCS_REVISION
//: This gets conditionally inserted as argument %8 into the description string.
ideRev = tr("From revision %1<br/>").arg(QString::fromLatin1(GCS_REVISION_STR).left(10));
#endif
const QString description = tr(
"<h3>The OpenPilot Project</h3>"
"Proudly brought to you by this fine team:<br/>"
);
QLabel *copyRightLabel = new QLabel(description);
copyRightLabel->setWordWrap(true);
copyRightLabel->setOpenExternalLinks(true);
copyRightLabel->setTextInteractionFlags(Qt::TextBrowserInteraction);
QTextBrowser *creditsArea = new QTextBrowser(this);
creditsArea->setSource(QUrl("qrc:core/CREDITS.html"));
QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Close);
QPushButton *closeButton = buttonBox->button(QDialogButtonBox::Close);
QTC_ASSERT(closeButton, /**/);
buttonBox->addButton(closeButton, QDialogButtonBox::ButtonRole(QDialogButtonBox::RejectRole | QDialogButtonBox::AcceptRole));
connect(buttonBox , SIGNAL(rejected()), this, SLOT(reject()));
QLabel *logoLabel = new QLabel;
logoLabel->setPixmap(QPixmap(QLatin1String(":/core/images/openpilot_logo_128.png")));
layout->addWidget(logoLabel , 0, 0, 1, 1);
layout->addWidget(copyRightLabel, 0, 1, 2, 4);
layout->addWidget(creditsArea, 3, 0, 2, 5);
layout->addWidget(buttonBox, 6, 0, 1, 5);
}

View File

@ -0,0 +1,47 @@
/**
******************************************************************************
*
* @file authors.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* Parts by Nokia Corporation (qt-info@nokia.com) Copyright (C) 2009.
* @addtogroup GCSPlugins GCS Plugins
* @{
* @addtogroup CorePlugin Core Plugin
* @{
* @brief The Core GCS plugin
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef AUTHORSDIALOG_H
#define AUTHORSDIALOG_H
#include <QtGui/QDialog>
namespace Core {
namespace Internal {
class AuthorsDialog : public QDialog
{
Q_OBJECT
public:
explicit AuthorsDialog(QWidget *parent);
};
} // namespace Internal
} // namespace Core
#endif // AUTHORSDIALOG_H

View File

@ -51,5 +51,6 @@
<file>images/helpicon.png</file>
<file>images/openpiloticon.png</file>
<file>OpenPilotGCS.ini</file>
<file>CREDITS.html</file>
</qresource>
</RCC>

View File

@ -45,7 +45,7 @@ namespace Constants {
const char * const GCS_VERSION_LONG = GCS_VERSION;
const char * const GCS_AUTHOR = "OpenPilot Project";
const char * const GCS_YEAR = "2010";
const char * const GCS_YEAR = "2011";
#ifdef GCS_REVISION
const char * const GCS_REVISION_STR = STRINGIFY(GCS_REVISION);
@ -137,6 +137,7 @@ const char * const GOTONEXTGROUP = "GCS.GotoNextTabGroup";
const char * const WINDOWSLIST = "GCS.WindowsList";
const char * const ABOUT_OPENPILOTGCS = "GCS.AboutOpenPilotGCS";
const char * const ABOUT_PLUGINS = "GCS.AboutPlugins";
const char * const ABOUT_AUTHORS = "GCS.AboutAuthors";
const char * const ABOUT_QT = "GCS.AboutQt";
const char * const S_RETURNTOEDITOR = "GCS.ReturnToEditor";
const char * const OPEN_IN_EXTERNAL_EDITOR = "GCS.OpenInExternalEditor";

View File

@ -63,7 +63,8 @@ SOURCES += mainwindow.cpp \
uavgadgetoptionspagedecorator.cpp \
uavgadgetdecorator.cpp \
workspacesettings.cpp \
uavconfiginfo.cpp
uavconfiginfo.cpp \
authorsdialog.cpp
HEADERS += mainwindow.h \
tabpositionindicator.h \
fancyactionbar.h \
@ -123,7 +124,8 @@ HEADERS += mainwindow.h \
uavgadgetoptionspagedecorator.h \
uavgadgetdecorator.h \
workspacesettings.h \
uavconfiginfo.h
uavconfiginfo.h \
authorsdialog.h
FORMS += dialogs/settingsdialog.ui \
dialogs/shortcutsettings.ui \
generalsettings.ui \

View File

@ -53,6 +53,7 @@
#include "variablemanager.h"
#include "threadmanager.h"
#include "versiondialog.h"
#include "authorsdialog.h"
#include "viewmanager.h"
#include "uniqueidmanager.h"
#include "manhattanstyle.h"
@ -126,6 +127,7 @@ MainWindow::MainWindow() :
m_mimeDatabase(new MimeDatabase),
// m_rightPaneWidget(0),
m_versionDialog(0),
m_authorsDialog(0),
m_activeContext(0),
m_generalSettings(new GeneralSettings),
m_shortcutSettings(new ShortcutSettings),
@ -687,7 +689,17 @@ void MainWindow::registerDefaultActions()
#ifdef Q_WS_MAC
cmd->action()->setMenuRole(QAction::ApplicationSpecificRole);
#endif
connect(tmpaction, SIGNAL(triggered()), this, SLOT(aboutOpenPilogGCS()));
connect(tmpaction, SIGNAL(triggered()), this, SLOT(aboutOpenPilotGCS()));
//Credits Action
tmpaction = new QAction(QIcon(Constants::ICON_PLUGIN), tr("About &Authors..."), this);
cmd = am->registerAction(tmpaction, Constants::ABOUT_AUTHORS, m_globalContext);
mhelp->addAction(cmd, Constants::G_HELP_ABOUT);
tmpaction->setEnabled(true);
#ifdef Q_WS_MAC
cmd->action()->setMenuRole(QAction::ApplicationSpecificRole);
#endif
connect(tmpaction, SIGNAL(triggered()), this, SLOT(aboutOpenPilotAuthors()));
}
@ -1123,7 +1135,7 @@ void MainWindow::openRecentFile()
}
}
void MainWindow::aboutOpenPilogGCS()
void MainWindow::aboutOpenPilotGCS()
{
if (!m_versionDialog) {
m_versionDialog = new VersionDialog(this);
@ -1141,6 +1153,25 @@ void MainWindow::destroyVersionDialog()
}
}
void MainWindow::aboutOpenPilotAuthors()
{
if (!m_authorsDialog) {
m_authorsDialog = new AuthorsDialog(this);
connect(m_authorsDialog, SIGNAL(finished(int)),
this, SLOT(destroyAuthorsDialog()));
}
m_authorsDialog->show();
}
void MainWindow::destroyAuthorsDialog()
{
if (m_authorsDialog) {
m_authorsDialog->deleteLater();
m_authorsDialog = 0;
}
}
void MainWindow::aboutPlugins()
{
PluginDialog dialog(this);

View File

@ -74,6 +74,7 @@ class ShortcutSettings;
class WorkspaceSettings;
class ViewManager;
class VersionDialog;
class AuthorsDialog;
class UAVGadgetMode;
class CORE_EXPORT MainWindow : public EventFilteringMainWindow
@ -150,10 +151,12 @@ private slots:
void openRecentFile();
void setFocusToEditor();
void saveAll();
void aboutOpenPilogGCS();
void aboutOpenPilotGCS();
void aboutPlugins();
void aboutOpenPilotAuthors();
void updateFocusWidget(QWidget *old, QWidget *now);
void destroyVersionDialog();
void destroyAuthorsDialog();
void modeChanged(Core::IMode *mode);
private:
@ -188,6 +191,7 @@ private:
// RightPaneWidget *m_rightPaneWidget;
Core::BaseView *m_outputView;
VersionDialog *m_versionDialog;
AuthorsDialog *m_authorsDialog;
IContext * m_activeContext;

View File

@ -78,9 +78,13 @@ VersionDialog::VersionDialog(QWidget *parent)
"<br/>"
"Copyright 2008-%6 %7. All rights reserved.<br/>"
"<br/>"
"<small>This program is free software; you can redistribute it and/or modify<br/>"
"it under the terms of the GNU General Public License as published by<br/>"
"the Free Software Foundation; either version 3 of the License, or<br/>"
"(at your option) any later version.<br/><br/>"
"The program is provided AS IS with NO WARRANTY OF ANY KIND, "
"INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A "
"PARTICULAR PURPOSE.<br/>")
"PARTICULAR PURPOSE.</small><br/>")
.arg(version, QLatin1String(QT_VERSION_STR), QString::number(QSysInfo::WordSize),
QLatin1String(__DATE__), QLatin1String(__TIME__), QLatin1String(GCS_YEAR),
(QLatin1String(GCS_AUTHOR)), ideRev);