view ui/aboutdialog.cpp @ 1379:831d28c2291d

(issue179) Handle software update even if new version can't be found on server
author Andre Heinecke <andre.heinecke@intevation.de>
date Thu, 15 Jan 2015 12:42:49 +0100
parents f1f4059ec320
children
line wrap: on
line source
/* Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik
 * Software engineering by Intevation GmbH
 *
 * This file is Free Software under the GNU GPL (v>=2)
 * and comes with ABSOLUTELY NO WARRANTY!
 * See LICENSE.txt for details.
 */
#include "aboutdialog.h"
#include <QApplication>
#include <QDebug>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QPushButton>
#include <QLabel>

AboutDialog::AboutDialog(QMainWindow *parent) :
    QDialog(parent)
{
    setWindowTitle("About TrustBridge");
    setupGUI();
}

void AboutDialog::setupGUI()
{
    QVBoxLayout *mainLayout = new QVBoxLayout(this);
    QHBoxLayout *headerLayout = new QHBoxLayout;
    QVBoxLayout *headerTextLayout = new QVBoxLayout;
    QVBoxLayout *centerLayout = new QVBoxLayout;
    QHBoxLayout *bottomLayout = new QHBoxLayout;

    QLabel *title = new QLabel("<h2>" + tr("TrustBridge Administration") + "</h2>");
    QString version = tr("Version: ");
    version.append(QApplication::applicationVersion());
    QLabel *appVersion = new QLabel(version);
    appVersion->setTextInteractionFlags(
        Qt::TextSelectableByMouse |
        Qt::TextSelectableByKeyboard);

    headerTextLayout->addWidget(title);
    headerTextLayout->addWidget(appVersion);
    headerLayout->addLayout(headerTextLayout);
    headerLayout->insertStretch(2, 10);

    QLabel *textDesc = new QLabel("<hr>" + tr("TrustBridge is a root certificate"
        " installer for Windows and GNU/Linux.<br/>") +
    tr("The root certificate lists are managed"
        " by the German <a href=\"https://www.bsi.bund.de\">"
        "Federal Office for Information Security (BSI)</a>.<br/><br/>") +
    tr("The software was developed by the companies"
        " <a href=\"http://www.intevation.de\">Intevation GmbH</a> and "
        " <a href=\"http://www.dn-systems.de\">DN-Systems GmbH</a>, <br>"
        " contracted by the BSI.<br/><br/>") +
    tr("TrustBridge is Free Software licensed"
        " under GNU GPL v==3.<br/>Copyright (C) 2014 by Bundesamt für Sicherheit"
        " in der Informationstechnik<br/><br/>") +
    tr("TrustBridge Administrator uses several Free Software components with different licenses:") +
	"<ul><li>TrustBridge source code (GNU GPL v>=2)" +
	"<li>Qt (GNU LGPL v==2.1 | GNU GPL v==3)" +
	"<li>PolarSSL (GNU GPL v>=2)" +
	"<li>Oxygen-Icons (GNU LGPL v>=3)" +
	"<li>OpenSSL-based signcode utility (GNU GPL v==3)" +
	"<li>OpenSSL (OpenSSL License)" +
	"<li>NSIS (zlib/libpng license & Common Public License version 1.0)</ul>" +
    tr("You will find the legally binding details in the 'licenses' directory "
       "where TrustBridge is installed<br/>"
       "or in the corresponding revision of the "
       "<a href=\"https://wald.intevation.org/hg/trustbridge/file/tip/licenses\">TrustBridge code repository</a>."));

    textDesc->setTextFormat(Qt::RichText);
    textDesc->setTextInteractionFlags(
        Qt::TextSelectableByMouse |
        Qt::TextSelectableByKeyboard |
        Qt::LinksAccessibleByMouse);
    textDesc->setOpenExternalLinks(true);

    centerLayout->addWidget(textDesc);
    centerLayout->insertStretch(8, 10);

    QPushButton *closeButton = new QPushButton(tr("Close"));
    connect(closeButton, SIGNAL(clicked()), this, SLOT(close()));
    bottomLayout->insertStretch(0, 10);
    bottomLayout->addWidget(closeButton);

    QFrame *bottomSeparator = new QFrame();
    bottomSeparator->setFrameShape(QFrame::HLine);
    bottomSeparator->setFrameShadow(QFrame::Sunken);
    mainLayout->addLayout(headerLayout);
    mainLayout->addLayout(centerLayout);
    mainLayout->addWidget(bottomSeparator);
    mainLayout->addLayout(bottomLayout);
}

http://wald.intevation.org/projects/trustbridge/