[PATCH 3 of 3] (issue133) Improve API documentation

Wald Commits scm-commit at wald.intevation.org
Thu Sep 25 17:58:19 CEST 2014


# HG changeset patch
# User Andre Heinecke <andre.heinecke at intevation.de>
# Date 1411660692 -7200
# Node ID 2a1aa9df8f11485ef7e042d1b616b1aa8fa49b0b
# Parent  6d840341bc25b37e33cfa30f7d17f8b017ed34ca
(issue133) Improve API documentation

diff -r 6d840341bc25 -r 2a1aa9df8f11 cinst/nss-secitemlist.h
--- a/cinst/nss-secitemlist.h	Thu Sep 25 17:37:03 2014 +0200
+++ b/cinst/nss-secitemlist.h	Thu Sep 25 17:58:12 2014 +0200
@@ -16,9 +16,14 @@
 #include <seccomon.h>
 #include "strhelp.h"
 
+/**
+ * @struct seciteml
+ * @brief simple linked list sturcture. */
 struct seciteml {
-  SECItem *item;
-  struct seciteml *next;
+  /*@{*/
+  SECItem *item;/**< Pointer to the held item*/
+  struct seciteml *next;/**< Pointer to the next part of the list*/
+  /*@}*/
 };
 
 /**
diff -r 6d840341bc25 -r 2a1aa9df8f11 common/binverify.h
--- a/common/binverify.h	Thu Sep 25 17:37:03 2014 +0200
+++ b/common/binverify.h	Thu Sep 25 17:58:12 2014 +0200
@@ -24,15 +24,21 @@
  * @brief Result of a verification
  */
 typedef enum {
-    VerifyValid = 100, /*! Could be read and signature matched */
-    VerifyUnknownError = 1, /*! The expected unexpected */
-    VerifyInvalidSignature = 4, /*! Signature was invalid */
-    VerifyInvalidCertificate = 5, /*! Certificate mismatch */
-    VerifyReadFailed = 6, /*! File exists but could not read the file */
+    /*! Could be read and signature matched */
+    VerifyValid = 100,
+    /*! The expected unexpected */
+    VerifyUnknownError = 1,
+    /*! Signature was invalid */
+    VerifyInvalidSignature = 4,
+    /*! Certificate mismatch */
+    VerifyInvalidCertificate = 5,
+    /*! File exists but could not read the file */
+    VerifyReadFailed = 6,
 } verify_result;
 
 /**
- * A structure containing a verify_result and a reference to the
+ * @struct bin_verify_result
+ * @brief A structure containing a verify_result and a reference to the
  * verified file.
  */
 typedef struct {
diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/aboutdialog.h
--- a/ui/aboutdialog.h	Thu Sep 25 17:37:03 2014 +0200
+++ b/ui/aboutdialog.h	Thu Sep 25 17:58:12 2014 +0200
@@ -15,14 +15,20 @@
  * @brief The dialog for information about the application.
  */
 
+/** @brief AboutDialog of the admin application
+  *
+  * This is a specialized QDialog for the About information
+  * of the administrator application.
+  */
 class AboutDialog : public QDialog
 {
     Q_OBJECT
 public:
-    /** @brief Create a help dialog */
+    /** @brief Create the about dialog */
     AboutDialog(QMainWindow *parent);
 
 private:
+    /** @brief Create UI elements */
     void setupGUI();
 
 };
diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/administratorwindow.h
--- a/ui/administratorwindow.h	Thu Sep 25 17:37:03 2014 +0200
+++ b/ui/administratorwindow.h	Thu Sep 25 17:58:12 2014 +0200
@@ -25,6 +25,11 @@
 class QMenu;
 class QAction;
 
+/** @brief Main Window of the Administrator application
+  *
+  * The controlling class of the Admin application. Holds
+  * the certificate data and the settings of the application.
+  */
 class AdministratorWindow : public QMainWindow
 {
     Q_OBJECT
@@ -58,21 +63,50 @@
     QList<Certificate> currentChanges();
 
 private slots:
+    /** @brief Create the SW Packages for the target platforms. */
     void createInstaller();
+    /** @brief Shows the About dialog. */
     void showAbout();
+    /** @brief Opens the Help in a browser window. */
     void showHelp();
+    /** @brief Presents a Dialog to load a certificate list and handles the loading. */
     void loadCertificateFile();
+    /** @brief Save the current selection of certificates as a certificate list. */
     void saveCertificateFile();
+    /** @brief Add certificates to the certificate table. */
     void addCertificates();
+    /** @brief Remove certificates from the current certificate table. */
     void removeCertificates();
+    /** @brief Changes the state of a certificate when it was clicked. */
     void clickedCertificate(const QModelIndex&);
 
 private:
+    /** @brief Setup UI Actions */
     void createActions();
+    /** @brief Setup UI Menu Bar */
     void createMenuBar();
+    /** @brief Create the UI elements of the Window */
     void createContent();
+    /** @brief Load a certificate list into the table view */
     void loadCertificateTable();
+    /** @brief Add a list of certificates to the table view
+     *
+     * @param[in] certs The certificates to add.
+     */
     void addToCertificateTable(const QList<Certificate> &certs);
+    /** @brief write a log file for the list creation.
+     *
+     * This creates a log entry containing all pertinent information of a
+     * certificate list creation. It records changes
+     * made to the certificate list and notes down the current time and
+     * the key used to sign the certificate list.
+     *
+     * @param [in] list the certificate list that is about to be created and should
+     * be logged.
+     * @param [in] keyFingerprint the encoded fingerprint of the signing key used.
+     *
+     * @returns A byte array containing the log information in latin1 encoding.
+     */
     QByteArray createLogEntries(const CertificateList &list, const QString &keyFingerprint);
 
     QSettings mSettings;
diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/certificate.h
--- a/ui/certificate.h	Thu Sep 25 17:37:03 2014 +0200
+++ b/ui/certificate.h	Thu Sep 25 17:58:12 2014 +0200
@@ -23,16 +23,25 @@
 #include <wincrypt.h>
 #endif
 
+/** @brief Object representation of a single certificate
+  *
+  * This parses a PEM (base64 encoded der certificate) and
+  * provides accessors to the parsed certificate information
+  * together with meta information about the certificate as
+  * it is used by the Application.
+  */
 class Certificate
 {
 public:
 
-    /** @brief the Status compared to the last installed list. */
+    /**
+     * @enum Status
+     * @brief the Status compared to the last installed list. */
     enum Status {
-        InstallNew = 1, /* Never seen this before */
-        InstallOld, /* Already contained in last list */
-        RemoveNew, /* Was an Install certificate in the last list */
-        RemoveOld /* Already removed in the last list */
+        /*! Never seen this before */ InstallNew = 1,
+        /*! Already contained in last list */ InstallOld,
+        /*! Was an Install certificate in the last list */ RemoveNew,
+        /*! Already removed in the last list */ RemoveOld
     };
 
     /** @brief construct a certificate from a line of a certificate list.
@@ -90,8 +99,16 @@
      **/
     void setInstallCert(bool install);
 
+    /** @brief wether or not the certificate is editable.
+     *
+     * Editable means that the installation status can be changed.
+     * E.g. You can not change the state of a removal certificate
+     * that has been removed.
+     *
+     * @returns true if the certificate is editable */
     bool isEditable() const {return mEditable;}
 
+    /** @brief setter for the editable property. */
     void setEditable(bool edit) {mEditable = edit;}
 
     /** @brief get the subject OU from the certificate */
@@ -133,6 +150,14 @@
      **/
     static QList<Certificate> fromFileName (const QString& file_name);
 
+    /** @brief comparator of two certificates.
+     *
+     * Two certificates are equal if their base64 raw data is a match
+     * regardless of other meta information like state or wether or not
+     * it is editable.
+     *
+     * @returns true if the base64 line of two certificates is equal. 
+     **/
     friend inline bool operator==(const Certificate& lhs, const Certificate& rhs) {
         return lhs.base64Line() == rhs.base64Line();
     }
diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/certificatediffdialog.h
--- a/ui/certificatediffdialog.h	Thu Sep 25 17:37:03 2014 +0200
+++ b/ui/certificatediffdialog.h	Thu Sep 25 17:58:12 2014 +0200
@@ -18,15 +18,27 @@
 
 class AdministratorWindow;
 
+/** @brief Specialized dialog for the differences in two certificate lists
+  *
+  * When certificates are added or removed from one list to the next
+  * this dialog is intended to show the differences between the old and
+  * the new list.
+  */
 class CertificateDiffDialog : public QDialog
 {
     Q_OBJECT
 public:
     /** @brief Create a dialog showing the changes made in the certificate list.
+     *
+     * This class knows enough about the parent that it uses the parent's
+     * accessor functions to get at the information it should present.
+     *
+     * @param[in] parent A reference to the AdministratorWindow
      */
     CertificateDiffDialog(AdministratorWindow *parent);
 
 private:
+    /** @brief Create the UI elements. */
     void setupGUI();
 
     AdministratorWindow *mAdminWindow;
diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/certificateitemwidget.h
--- a/ui/certificateitemwidget.h	Thu Sep 25 17:37:03 2014 +0200
+++ b/ui/certificateitemwidget.h	Thu Sep 25 17:58:12 2014 +0200
@@ -18,15 +18,23 @@
 
 #include "certificate.h"
 
+/** @brief A tool button that always looks as if it were unchecked. */
 class CheckLessToolBtn : public QToolButton
 {
     void paintEvent(QPaintEvent * pe);
 };
 
+/** @brief Item delegate drawing custom certificate items in list views.*/
 class CertificateItemWidget : public QWidget
 {
 Q_OBJECT
 public:
+    /** @brief ctor of the widget
+     *
+     * @param [in] parent the parent of the widget
+     * @param [in] cert the certificate to hold.
+     * @param [in] state wether or not the action of the certificate should be done.
+     * @param [in] btn the button used to manage the state of the cert.*/
     CertificateItemWidget(
         QWidget *parent = 0,
         const Certificate &cert = Certificate(),
@@ -34,7 +42,19 @@
         QToolButton * btn = NULL);
 
     bool state();
+    /** @brief set the state of the certificate.
+     *
+     * A false state means that the certificate action (install or remove)
+     * should not be executed.
+     *
+     * @param [in] state the state of the certificate
+     **/
     void setState(bool state);
+
+    /** @brief Obtain a copy of the certificate that is shown in the widget.
+     *
+     * @returns A copy of the hold certificate.
+     **/
     Certificate certificate();
 
 private:
diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/certificatelist.h
--- a/ui/certificatelist.h	Thu Sep 25 17:37:03 2014 +0200
+++ b/ui/certificatelist.h	Thu Sep 25 17:58:12 2014 +0200
@@ -7,7 +7,18 @@
  */
 #ifndef CERTIFICATELIST_H
 #define CERTIFICATELIST_H
-/**
+
+class QByteArray;
+
+#include <QString>
+#include <QDateTime>
+#include <QObject>
+
+#include "listutil.h"
+#include "certificate.h"
+
+/** @brief Object representation of a certificate list
+ *
  * This class handles a certificate list file.
  * It checks for the validity of that certificate
  * list file and provides an API for working with that
@@ -18,16 +29,6 @@
  * could be parsed.
  *
  */
-
-class QByteArray;
-
-#include <QString>
-#include <QDateTime>
-#include <QObject>
-
-#include "listutil.h"
-#include "certificate.h"
-
 class CertificateList
 {
 public:
diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/certificatelistwidget.h
--- a/ui/certificatelistwidget.h	Thu Sep 25 17:37:03 2014 +0200
+++ b/ui/certificatelistwidget.h	Thu Sep 25 17:58:12 2014 +0200
@@ -25,6 +25,10 @@
 class QToolButton;
 
 Q_DECLARE_METATYPE(Certificate);
+/**
+ * @brief Displays a list of certificates and a details panel for a selected
+ * certificate.
+ **/
 class CertificateListWidget : public QWidget
 {
     Q_OBJECT
diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/certificatetabledelegate.h
--- a/ui/certificatetabledelegate.h	Thu Sep 25 17:37:03 2014 +0200
+++ b/ui/certificatetabledelegate.h	Thu Sep 25 17:58:12 2014 +0200
@@ -15,6 +15,7 @@
 
 #include <QStyledItemDelegate>
 
+ /** @brief Item delegate drawing custom certificate items in table views.*/
 class CertificateTableDelegate : public QStyledItemDelegate
 {
 Q_OBJECT
diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/certificatetablemodel.h
--- a/ui/certificatetablemodel.h	Thu Sep 25 17:37:03 2014 +0200
+++ b/ui/certificatetablemodel.h	Thu Sep 25 17:58:12 2014 +0200
@@ -17,6 +17,7 @@
 #include <QString>
 #include "certificate.h"
 
+ /** @brief Table model for certificates.*/
 class CertificateTabelModel : public QAbstractTableModel
 {
     Q_OBJECT
diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/createcertlistdialog.h
--- a/ui/createcertlistdialog.h	Thu Sep 25 17:37:03 2014 +0200
+++ b/ui/createcertlistdialog.h	Thu Sep 25 17:58:12 2014 +0200
@@ -17,12 +17,13 @@
 #include <polarssl/pk.h>
 /**
  * @file createinstallerdialog.h
- * @brief The dialog to show settings and create an installer.
+ * @brief The dialog to select the signing certificate and create a certificate list.
  */
 
 class QListWidget;
 class AdministratorWindow;
 
+/** @brief The dialog to select the signing certificate and create a certificate list.*/
 class CreateCertListDialog : public QDialog
 {
     Q_OBJECT
diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/createinstallerdialog.h
--- a/ui/createinstallerdialog.h	Thu Sep 25 17:37:03 2014 +0200
+++ b/ui/createinstallerdialog.h	Thu Sep 25 17:58:12 2014 +0200
@@ -16,12 +16,13 @@
 #include <QDir>
 /**
  * @file createinstallerdialog.h
- * @brief The dialog to show settings and create an installer.
+ * @brief The dialog to select the input and create an installer.
  */
 
 class QListWidget;
 class QTemporaryDir;
 
+/** @brief The dialog to select the input and create an installer. */
 class CreateInstallerDialog : public QDialog
 {
     Q_OBJECT
diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/downloader.h
--- a/ui/downloader.h	Thu Sep 25 17:37:03 2014 +0200
+++ b/ui/downloader.h	Thu Sep 25 17:58:12 2014 +0200
@@ -20,6 +20,14 @@
 
 #include "sslconnection.h"
 
+/** @brief High level API to download necessary data.
+ *
+ * The downloader class is the UI interface to the Update server.
+ * It controls the SSL Connection and checks if updates are available
+ * and downloads them on demand. Each Downloader object is intended
+ * to be run only once and controlled mainly by the constructor of
+ * the object.
+ */
 class Downloader: public QThread
 {
     Q_OBJECT
diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/helpdialog.h
--- a/ui/helpdialog.h	Thu Sep 25 17:37:03 2014 +0200
+++ b/ui/helpdialog.h	Thu Sep 25 17:58:12 2014 +0200
@@ -15,6 +15,7 @@
  * @brief The dialog for help text.
  */
 
+/** @brief The dialog for help text. */
 class HelpDialog : public QDialog
 {
     Q_OBJECT
diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/l10n/administrator_de_DE.ts
--- a/ui/l10n/administrator_de_DE.ts	Thu Sep 25 17:37:03 2014 +0200
+++ b/ui/l10n/administrator_de_DE.ts	Thu Sep 25 17:58:12 2014 +0200
@@ -25,13 +25,31 @@
     </message>
     <message>
         <location filename="../aboutdialog.cpp" line="49"/>
-        <source>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 German Federal Office for Information Security (BSI).<br/><br/></source>
-        <translation>Die Software wurde entwickelt von den Unternehmen <a href="http://www.intevation.net">Intevation GmbH</a> und  <a href="http://www.dn-systems.com">DN-Systems GmbH</a>, <br> beauftragt durch das Bundesamt für Sicherheit in der Informationstechnik (BSI).<br/><br/></translation>
+        <source>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/></source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../aboutdialog.cpp" line="53"/>
+        <source>TrustBridge is Free Software licensed under GNU GPL v==3.<br/>Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik<br/><br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutdialog.cpp" line="56"/>
+        <source>TrustBridge Administrator uses several Free Software components with different licenses:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../aboutdialog.cpp" line="64"/>
+        <source>You will find the legally binding details in the 'licenses' directory where TrustBridge is installed or in the corresponding revision of the<a href="https://wald.intevation.org/hg/trustbridge/file/tip/licenses">TrustBridge code repository</a>.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>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 German Federal Office for Information Security (BSI).<br/><br/></source>
+        <translation type="vanished">Die Software wurde entwickelt von den Unternehmen <a href="http://www.intevation.net">Intevation GmbH</a> und  <a href="http://www.dn-systems.com">DN-Systems GmbH</a>, <br> beauftragt durch das Bundesamt für Sicherheit in der Informationstechnik (BSI).<br/><br/></translation>
+    </message>
+    <message>
         <source>TrustBridge is Free Software licensed under GNU GPL v2+.<br/><br/>Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik</source>
-        <translation>TrustBridge ist Freie Software, lizensiert unter der GNU GPL v2+.<br/><br/>Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik (BSI)</translation>
+        <translation type="vanished">TrustBridge ist Freie Software, lizensiert unter der GNU GPL v2+.<br/><br/>Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik (BSI)</translation>
     </message>
     <message>
         <source>TrustBridge is a secure root certificate installer for Windows and Linux.</source>
@@ -62,7 +80,7 @@
 Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik (BSI)</translation>
     </message>
     <message>
-        <location filename="../aboutdialog.cpp" line="66"/>
+        <location filename="../aboutdialog.cpp" line="79"/>
         <source>Close</source>
         <translation>Schließen</translation>
     </message>
@@ -172,21 +190,21 @@
     <message>
         <source>signing certificate: 
 </source>
-        <translation type="vanished">Signaturzertifikat: 
+        <translation type="obsolete">Signaturzertifikat: 
 </translation>
     </message>
     <message>
         <source>
 new certificates:
 </source>
-        <translation type="vanished">
+        <translation type="obsolete">
 Neues Zertifikat:
 </translation>
     </message>
     <message>
         <source>certificates marked to remove:
 </source>
-        <translation type="vanished">Zertifikate zum Löschen markiert:
+        <translation type="obsolete">Zertifikate zum Löschen markiert:
 </translation>
     </message>
     <message>
diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/l10n/trustbridge_de_DE.ts
--- a/ui/l10n/trustbridge_de_DE.ts	Thu Sep 25 17:37:03 2014 +0200
+++ b/ui/l10n/trustbridge_de_DE.ts	Thu Sep 25 17:58:12 2014 +0200
@@ -67,12 +67,12 @@
         <translation type="vanished">Entfernen</translation>
     </message>
     <message>
-        <location filename="../certificateitemwidget.cpp" line="41"/>
+        <location filename="../certificateitemwidget.cpp" line="62"/>
         <source>Validity: %1 until %2</source>
         <translation>Gültigkeit: %1 bis %2</translation>
     </message>
     <message>
-        <location filename="../certificateitemwidget.cpp" line="44"/>
+        <location filename="../certificateitemwidget.cpp" line="65"/>
         <source>Fingerprint (SHA1): <code>%1</code></source>
         <translation>Fingerabdruck (SHA1): <code>%1</code></translation>
     </message>
@@ -203,19 +203,19 @@
         <translation type="vanished">Neue Vorschläge für Wurzelzertifikate sind verfügbar. Klicken Sie hier zum Installieren.</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="592"/>
-        <location filename="../mainwindow.cpp" line="755"/>
+        <location filename="../mainwindow.cpp" line="650"/>
+        <location filename="../mainwindow.cpp" line="822"/>
         <source>Check for Updates</source>
         <translation>Neue Empfehlungen suchen</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="594"/>
-        <location filename="../mainwindow.cpp" line="1119"/>
+        <location filename="../mainwindow.cpp" line="652"/>
+        <location filename="../mainwindow.cpp" line="1182"/>
         <source>Quit</source>
         <translation>Beenden</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="612"/>
+        <location filename="../mainwindow.cpp" line="670"/>
         <source>TrustBridge</source>
         <translation>TrustBridge</translation>
     </message>
@@ -241,7 +241,7 @@
 Empfehlungen</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="1028"/>
+        <location filename="../mainwindow.cpp" line="1095"/>
         <source>Revoked
 certificates</source>
         <translation>Abgeratene
@@ -256,41 +256,41 @@
         <translation type="vanished">Aktualisierungen (%1/%2)</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="704"/>
-        <location filename="../mainwindow.cpp" line="1124"/>
+        <location filename="../mainwindow.cpp" line="771"/>
+        <location filename="../mainwindow.cpp" line="1187"/>
         <source>Quit without saving</source>
         <translation>Beenden ohne Schreiben</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="808"/>
-        <location filename="../mainwindow.cpp" line="1165"/>
+        <location filename="../mainwindow.cpp" line="875"/>
+        <location filename="../mainwindow.cpp" line="1228"/>
         <source>Remove revoked certificates (%1/%2)</source>
         <translation>Abgeratene Wurzelzertifikate entfernen (%1/%2)</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="885"/>
+        <location filename="../mainwindow.cpp" line="952"/>
         <source>Trusted certificates</source>
         <translation>Empfohlene Wurzelzertifikate</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="886"/>
+        <location filename="../mainwindow.cpp" line="953"/>
         <source>The following list of trusted root certificates is managed by the BSI. The BSI validates independently the authenticity, security and actuality of these certificates.</source>
         <translation>Die folgenden Wurzelzertifikate wurden bisher vom BSI zur Installation vorgeschlagen. Sie können erkennen, welche Sie bereits geschrieben haben.</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="893"/>
+        <location filename="../mainwindow.cpp" line="960"/>
         <source>Please choose the certificates you want to trust or untrust. TrustBridge will install these certificates for your secure communication for email and internet.</source>
         <translation>Legen Sie fest, ob Sie der Empfehlung ganz oder teilweise folgen möchten. TrustBridge wird die Änderungen an den Wurzelzertifikaten vornehmen.</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="1019"/>
+        <location filename="../mainwindow.cpp" line="1086"/>
         <source>Trusted
 certificates</source>
         <translation>Empfohlene
 Wurzelzertifikate</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="1037"/>
+        <location filename="../mainwindow.cpp" line="1104"/>
         <source>Information
 and help</source>
         <translation>Informationen
@@ -317,27 +317,27 @@
         <translation type="vanished">Aktualisierungen einspielen</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="786"/>
-        <location filename="../mainwindow.cpp" line="1149"/>
+        <location filename="../mainwindow.cpp" line="853"/>
+        <location filename="../mainwindow.cpp" line="1212"/>
         <source>Install new trusted certificates (%1/%2)</source>
         <translation>Neue, empfohlene Wurzelzertifikate installieren (%1/%2)</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="790"/>
-        <location filename="../mainwindow.cpp" line="812"/>
-        <location filename="../mainwindow.cpp" line="831"/>
-        <location filename="../mainwindow.cpp" line="1155"/>
-        <location filename="../mainwindow.cpp" line="1171"/>
+        <location filename="../mainwindow.cpp" line="857"/>
+        <location filename="../mainwindow.cpp" line="879"/>
+        <location filename="../mainwindow.cpp" line="898"/>
+        <location filename="../mainwindow.cpp" line="1218"/>
+        <location filename="../mainwindow.cpp" line="1234"/>
         <source>Show details</source>
         <translation>Details einblenden</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="926"/>
+        <location filename="../mainwindow.cpp" line="993"/>
         <source>Revoked certificates</source>
         <translation>Abgeratene Wurzelzertifikate</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="927"/>
+        <location filename="../mainwindow.cpp" line="994"/>
         <source>Certificates can be corrupted or stolen and misused in many ways. Therefore the BSI recommends to remove all revoked certificates from your system.</source>
         <translation>Wurzelzertifikate können veraltet sein, korrumpiert, gestohlen oder missbraucht werden. Die Wurzelzertifikate , von denen das BSI abrät, sollten umgehend entfernt werden.</translation>
     </message>
@@ -350,7 +350,7 @@
         <translation type="vanished">Abweichend zu behandelnde Wurzelzertifikate (%1)</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="977"/>
+        <location filename="../mainwindow.cpp" line="1044"/>
         <source>Trust in your digital communication</source>
         <translation>Vertrauen in Ihre digitale Kommunikation</translation>
     </message>
@@ -359,8 +359,8 @@
         <translation type="vanished">Änderungen</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="700"/>
-        <location filename="../mainwindow.cpp" line="1120"/>
+        <location filename="../mainwindow.cpp" line="767"/>
+        <location filename="../mainwindow.cpp" line="1183"/>
         <source>Certificates unchanged</source>
         <translation>Wurzelzertifikate unverändert</translation>
     </message>
@@ -377,80 +377,76 @@
         <translation type="vanished">Es wird empfohlen, die nachfolgenden Änderungen an Ihren Wurzelzertifikaten zu übernehmen.</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="1128"/>
+        <location filename="../mainwindow.cpp" line="1191"/>
         <source>Apply changes</source>
         <translation>Änderungen schreiben</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="625"/>
+        <location filename="../mainwindow.cpp" line="683"/>
         <source>Version: </source>
         <translation>Version:</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="180"/>
+        <location filename="../mainwindow.cpp" line="181"/>
         <source>Show recommendations</source>
         <translation>Empfehlungen anzeigen</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="282"/>
-        <location filename="../mainwindow.cpp" line="284"/>
+        <location filename="../mainwindow.cpp" line="291"/>
+        <location filename="../mainwindow.cpp" line="293"/>
         <source>An updated certificate list is available.</source>
         <translation>Neue Vorschläge für Wurzelzertifikate sind verfügbar.</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="284"/>
+        <location filename="../mainwindow.cpp" line="293"/>
         <source>Click here to install.</source>
         <translation>Klicken Sie hier zum Installieren.</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="294"/>
-        <location filename="../mainwindow.cpp" line="297"/>
+        <location filename="../mainwindow.cpp" line="303"/>
+        <location filename="../mainwindow.cpp" line="306"/>
         <source>An update for %1 is available.</source>
         <translation>Eine Aktualisierung für %1 ist verfügbar.</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="298"/>
+        <location filename="../mainwindow.cpp" line="307"/>
         <source>Click here to download and install the update.</source>
         <translation>Hier klicken, um Download und Installation zu starten.</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="337"/>
         <source>Failed to create update process.</source>
-        <translation>Fehler beim Starten des Installer-Prozesses.</translation>
+        <translation type="vanished">Fehler beim Starten des Installer-Prozesses.</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="338"/>
         <source>This could be caused by not enough disk space or invalid permissions.</source>
-        <translation>Ursache dafür könnte nicht genügend Speicherplatz oder ungültige Berechtigungen sein.</translation>
+        <translation type="vanished">Ursache dafür könnte nicht genügend Speicherplatz oder ungültige Berechtigungen sein.</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="526"/>
+        <location filename="../mainwindow.cpp" line="579"/>
         <source>Downloading update...</source>
         <translation>Software-Aktualisierung wird heruntergeladen...</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="585"/>
+        <location filename="../mainwindow.cpp" line="643"/>
         <source>Failed to check for updates:</source>
         <translation>Fehler bei Updateprüfung:</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="1108"/>
+        <location filename="../mainwindow.cpp" line="1175"/>
         <source>You should apply the following, recommended changes to your certificate stores:</source>
         <translation>Es wird empfohlen, die nachfolgenden Änderungen an Ihren Zertifikatsspeichern vorzunehmen:</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="1111"/>
         <source>You can apply the following, changes to your certificate stores:</source>
-        <translation>Sie können die nachfolgenden Änderungen an Ihren Zertifikatsspeichern vornehmen:</translation>
+        <translation type="vanished">Sie können die nachfolgenden Änderungen an Ihren Zertifikatsspeichern vornehmen:</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="1114"/>
         <source>There are currently no changes for your certificate stores.</source>
-        <translation>Es liegen keine neuen Empfehlungen vor.</translation>
+        <translation type="vanished">Es liegen keine neuen Empfehlungen vor.</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="708"/>
-        <location filename="../mainwindow.cpp" line="1122"/>
+        <location filename="../mainwindow.cpp" line="775"/>
+        <location filename="../mainwindow.cpp" line="1185"/>
         <source>Install certificates again</source>
         <translation>Wurzelzertifikate erneut schreiben</translation>
     </message>
@@ -503,7 +499,7 @@
         <translation type="vanished">Letzte erfolgreiche Prüfung nach Aktualisierungen: %1</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="1631"/>
+        <location filename="../mainwindow.cpp" line="1725"/>
         <source>Sucessfully checked for updates.</source>
         <translation>Suche nach neuen Empfehlungen erfolgreich.</translation>
     </message>
@@ -514,145 +510,239 @@
 Hier klicken, um Download und Installation zu starten.</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="640"/>
+        <location filename="../mainwindow.cpp" line="698"/>
         <source>TrustBridge is a root certificate installer for Windows and GNU/Linux.<br/></source>
         <translation>TrustBridge ist ein Wurzelzertifikatsinstaller für Windows und GNU/Linux.<br/></translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="642"/>
+        <location filename="../mainwindow.cpp" line="700"/>
         <source>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/></source>
         <translation>Die Wurzelzertifikate werden vom <a href="https://www.bsi.bund.de">Bundesamt für Sicherheit in der Informationstechnik (BSI)</a> vorgeschlagen.<br/><br/></translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="645"/>
         <source>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 German Federal Office for Information Security (BSI).<br/><br/></source>
-        <translation>Die Software wurde von den Unternehmen <a href="http://www.intevation.de">Intevation GmbH</a> und  <a href="http://www.dn-systems.de">DN-Systems GmbH</a> entwickelt, <br> beauftragt vom Bundesamt für Sicherheit in der Informationstechnik (BSI).<br/><br/></translation>
+        <translation type="vanished">Die Software wurde von den Unternehmen <a href="http://www.intevation.de">Intevation GmbH</a> und  <a href="http://www.dn-systems.de">DN-Systems GmbH</a> entwickelt, <br> beauftragt vom Bundesamt für Sicherheit in der Informationstechnik (BSI).<br/><br/></translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="649"/>
         <source>TrustBridge is Free Software licensed under GNU GPL v2+.<br/><br/>Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik</source>
-        <translation>TrustBridge ist Freie Software, lizensiert unter der GNU GPL v2+.<br/><br/>(C) 2014. Die Rechte liegen beim Bundesamt für Sicherheit in der Informationstechnik.</translation>
+        <translation type="vanished">TrustBridge ist Freie Software, lizensiert unter der GNU GPL v2+.<br/><br/>(C) 2014. Die Rechte liegen beim Bundesamt für Sicherheit in der Informationstechnik.</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="666"/>
+        <location filename="../mainwindow.cpp" line="322"/>
+        <source>Failed to create temporary directory.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mainwindow.cpp" line="323"/>
+        <location filename="../mainwindow.cpp" line="337"/>
+        <source>Please ensure that you have the access rights to write in the temporary directory and that there is at least 20MB free disk space available.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mainwindow.cpp" line="336"/>
+        <source>Failed to create a temporary copy of the installer.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mainwindow.cpp" line="703"/>
+        <source>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/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mainwindow.cpp" line="707"/>
+        <source>TrustBridge is Free Software licensed under GNU GPL v>=3.<br/>Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik<br/><br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mainwindow.cpp" line="710"/>
+        <source>TrustBridge uses several Free Software components with different licenses:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mainwindow.cpp" line="717"/>
+        <source>Read more about the license information in the 'licenses' directory in the <a href="https://wald.intevation.org/hg/trustbridge/file/tip/licenses">TrustBridge code repository</a>.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mainwindow.cpp" line="733"/>
         <source>Show Help</source>
         <translation>Hilfe anzeigen</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="671"/>
+        <location filename="../mainwindow.cpp" line="738"/>
         <source>Proxy settings</source>
         <translation>Proxy-Einstellungen</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="746"/>
+        <location filename="../mainwindow.cpp" line="813"/>
         <source>Last update check:</source>
         <translation>Letzte Suche:</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="751"/>
+        <location filename="../mainwindow.cpp" line="818"/>
         <source>No connection with the updateserver.</source>
         <translation>Keine Verbindung zum Updateserver.</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="753"/>
+        <location filename="../mainwindow.cpp" line="820"/>
         <source>Update</source>
         <translation>Aktualisieren</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="789"/>
-        <location filename="../mainwindow.cpp" line="811"/>
-        <location filename="../mainwindow.cpp" line="830"/>
+        <location filename="../mainwindow.cpp" line="856"/>
+        <location filename="../mainwindow.cpp" line="878"/>
+        <location filename="../mainwindow.cpp" line="897"/>
         <source>Details</source>
         <translation>Details</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="934"/>
+        <location filename="../mainwindow.cpp" line="1001"/>
         <source>The following unsecure certificates were revoked by the BSI. Already uninstalled certificates cannot be reinstalled. It is recommended that you select all certificates to uninstall if you still have revoked certificates installed.</source>
         <translation>Von den folgenden, ehemals empfohlenen Wurzelzertifikaten, rät das BSI ab. Über diese Anwendung können sie auch nicht mehr installiert werden. Markieren Sie verbleibende Wurzelzertifikate zur Löschung, sobald Sie können.</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="979"/>
+        <location filename="../mainwindow.cpp" line="1046"/>
         <source>Version</source>
         <translation>Version</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="1006"/>
+        <location filename="../mainwindow.cpp" line="1073"/>
         <source>Pending
 changes</source>
         <translation>Ausstehende
 Änderungen</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="1144"/>
+        <location filename="../mainwindow.cpp" line="1207"/>
         <source>Manual changes (%1)</source>
         <translation>Manuelle Änderungen (%1)</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="1195"/>
+        <location filename="../mainwindow.cpp" line="1258"/>
         <source>Certificate list from:</source>
         <translation>Zertifikatsliste vom:</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="1200"/>
+        <location filename="../mainwindow.cpp" line="1263"/>
         <source>Currently installed certificate list:</source>
         <translation>Aktuell installierte Zertifikatsliste:</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="1204"/>
+        <location filename="../mainwindow.cpp" line="1267"/>
         <source>No certificate list installed.</source>
         <translation>Keine Zertifikatsliste installiert.</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="1234"/>
-        <location filename="../mainwindow.cpp" line="1286"/>
-        <location filename="../mainwindow.cpp" line="1498"/>
+        <location filename="../mainwindow.cpp" line="1298"/>
+        <location filename="../mainwindow.cpp" line="1350"/>
+        <location filename="../mainwindow.cpp" line="1571"/>
         <source>Certificate will be installed.</source>
         <translation>Zertifikat wird installiert.</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="1235"/>
-        <location filename="../mainwindow.cpp" line="1275"/>
+        <location filename="../mainwindow.cpp" line="1299"/>
+        <location filename="../mainwindow.cpp" line="1339"/>
         <source>Certifcate is not installed.</source>
         <translation>Zertifikat ist nicht installiert.</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="1237"/>
-        <location filename="../mainwindow.cpp" line="1274"/>
+        <location filename="../mainwindow.cpp" line="1301"/>
+        <location filename="../mainwindow.cpp" line="1338"/>
         <source>Certificate is installed.</source>
         <translation>Zertifikat ist installiert.</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="1238"/>
-        <location filename="../mainwindow.cpp" line="1249"/>
         <location filename="../mainwindow.cpp" line="1302"/>
-        <location filename="../mainwindow.cpp" line="1320"/>
-        <location filename="../mainwindow.cpp" line="1499"/>
+        <location filename="../mainwindow.cpp" line="1313"/>
+        <location filename="../mainwindow.cpp" line="1366"/>
+        <location filename="../mainwindow.cpp" line="1384"/>
+        <location filename="../mainwindow.cpp" line="1564"/>
+        <location filename="../mainwindow.cpp" line="1572"/>
         <source>Certificate will be removed.</source>
         <translation>Zertifikat wird entfernt.</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="1250"/>
-        <location filename="../mainwindow.cpp" line="1303"/>
+        <location filename="../mainwindow.cpp" line="1314"/>
+        <location filename="../mainwindow.cpp" line="1367"/>
         <source>Certificate has not been removed.</source>
         <translation>Zertifikat wurde nicht entfernt.</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="1257"/>
-        <location filename="../mainwindow.cpp" line="1310"/>
+        <location filename="../mainwindow.cpp" line="1321"/>
+        <location filename="../mainwindow.cpp" line="1374"/>
         <source>Certificate has been removed.</source>
         <translation>Zertifikat wurde entfernt.</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="1287"/>
+        <location filename="../mainwindow.cpp" line="1351"/>
         <source>Certificate will not be installed.</source>
         <translation>Zertifikat wird nicht installiert.</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="1321"/>
+        <location filename="../mainwindow.cpp" line="1385"/>
+        <location filename="../mainwindow.cpp" line="1567"/>
         <source>Certificate will not be removed.</source>
         <translation>Zertifikat wird nicht entfernt.</translation>
     </message>
     <message>
+        <location filename="../mainwindow.cpp" line="1627"/>
+        <source>Firefox and Thunderbird certificate installation.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mainwindow.cpp" line="1628"/>
+        <source>Please close all running Firefox and Thunderbird instances before continuing with the installation.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mainwindow.cpp" line="1631"/>
+        <source>Continue</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mainwindow.cpp" line="1633"/>
+        <source>Cancel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mainwindow.cpp" line="1844"/>
+        <source>The integrity check for the available software update has failed repeatedly.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mainwindow.cpp" line="1846"/>
+        <location filename="../mainwindow.cpp" line="1851"/>
+        <location filename="../mainwindow.cpp" line="1856"/>
+        <source>Please contact your Support or the publisher of the Software.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mainwindow.cpp" line="1849"/>
+        <source>The integrity check of the available certificates has failed repeatedly.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mainwindow.cpp" line="1854"/>
+        <source>The authentication of the download server has failed repeatedly.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mainwindow.cpp" line="1861"/>
+        <location filename="../mainwindow.cpp" line="1866"/>
+        <source>The connection to the download server has failed repeatedly.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mainwindow.cpp" line="1863"/>
+        <source>Please check that the Proxy Server "%1" is available.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mainwindow.cpp" line="1868"/>
+        <source>Please check your internet connection.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>You should apply the following, recommended changes to your certificate stores.</source>
         <translation type="vanished">Es wird empfohlen, die nachfolgenden Änderungen an Ihren Zertifikatsspeichern vorzunehmen.</translation>
     </message>
@@ -662,18 +752,18 @@
         <translation type="vanished">Sie können die nachfolgenden Änderungen an Ihren Zertifikatsspeichern vornehmen.</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="1125"/>
+        <location filename="../mainwindow.cpp" line="1188"/>
         <source>Pending changes (%1)</source>
         <translation>Ausstehende
 Änderungen (%1)</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="1183"/>
+        <location filename="../mainwindow.cpp" line="1246"/>
         <source>New, recommended changes (%1/%2)</source>
         <translation>Neue, empfohlene Änderungen (%1/%2)</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="1191"/>
+        <location filename="../mainwindow.cpp" line="1254"/>
         <source>No new recommendations</source>
         <translation>Keine neuen Empfehlungen</translation>
     </message>
@@ -694,37 +784,37 @@
         <translation type="vanished">Neue empfohlene Änderungen (%1)</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="1335"/>
+        <location filename="../mainwindow.cpp" line="1400"/>
         <source>Error executing update</source>
         <translation>Fehler bei der Aktualisierung</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="1422"/>
+        <location filename="../mainwindow.cpp" line="1487"/>
         <source>Installation with standard user account</source>
         <translation>Installation mit Standardbenutzerkonto</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="1423"/>
+        <location filename="../mainwindow.cpp" line="1488"/>
         <source>Windows will now ask you to confirm each root certificate modification because TrustBridge does not have the necessary privileges to install root certificates into the Windows certificate store silently.</source>
         <translation>Windows wird Sie nun bitten, jede Wurzelzertifikatsänderung zu bestätigen. Grund dafür: TrustBridge besitzt nicht die nötigen Privilegien, um Wurzelzertifikate ohne Nachfrage in den Windows-Zertifikatsspeicher zu installieren.</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="1431"/>
+        <location filename="../mainwindow.cpp" line="1496"/>
         <source>Installing certificates...</source>
         <translation>Wurzelzertifikate werden geändert...</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="1673"/>
+        <location filename="../mainwindow.cpp" line="1769"/>
         <source>Error!</source>
         <translation>Fehler!</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="1673"/>
+        <location filename="../mainwindow.cpp" line="1769"/>
         <source>Failed to find the manual</source>
         <translation>Fehler beim Finden des Handbuchs</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="1687"/>
+        <location filename="../mainwindow.cpp" line="1783"/>
         <source>TrustBridge error</source>
         <translation>TrustBridge Fehler</translation>
     </message>
@@ -797,28 +887,28 @@
         <translation>Automatische Aktualisierungsprüfung von TrustBridge.</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="315"/>
+        <location filename="../mainwindow.cpp" line="328"/>
         <source>TrustBridge-Updater</source>
         <comment>Used as filename for the updater. Only use ASCII please.</comment>
         <translation>TrustBridge-Updater</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="1566"/>
+        <location filename="../mainwindow.cpp" line="1660"/>
         <source>Hide details</source>
         <translation>Details ausblenden</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="1567"/>
+        <location filename="../mainwindow.cpp" line="1661"/>
         <source>Less</source>
         <translation>Weniger</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="1572"/>
+        <location filename="../mainwindow.cpp" line="1666"/>
         <source>Show details</source>
         <translation>Details einblenden</translation>
     </message>
     <message>
-        <location filename="../mainwindow.cpp" line="1573"/>
+        <location filename="../mainwindow.cpp" line="1667"/>
         <source>Details</source>
         <translation>Details</translation>
     </message>
diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/mainwindow.h
--- a/ui/mainwindow.h	Thu Sep 25 17:37:03 2014 +0200
+++ b/ui/mainwindow.h	Thu Sep 25 17:58:12 2014 +0200
@@ -35,6 +35,13 @@
 class QPushButton;
 
 
+/** @brief Main UI controller
+ *
+ * The MainWindow controls the logic of the Application
+ * it is the central piece that controls the state and starts
+ * updates / certificate installation.
+ * It also controls the UI widgets for the various certificate lists.
+ */
 class MainWindow : public QMainWindow
 {
     Q_OBJECT
@@ -69,11 +76,16 @@
      * @brief The internal state of the application
      */
     enum CurrentState {
-        NewListAvailable, /*! A new certificate list is available. */
-        NewSoftwareAvailable, /*! A new Software is avaialable. */
-        DownloadingSW, /*! Download in progress. */
-        TransferError, /*! An error happened on the last connection. */
-        NothingChanged /*! Update was susccessfull but nothing new is available. */
+         /*! A new certificate list is available. */
+        NewListAvailable,
+         /*! A new Software is avaialable. */
+        NewSoftwareAvailable,
+         /*! Download in progress. */
+        DownloadingSW,
+         /*! An error happened on the last connection. */
+        TransferError,
+         /*! Update was susccessfull but nothing new is available. */
+        NothingChanged
     };
 
     /**
@@ -81,9 +93,13 @@
      * @brief Errors that should be stored and only shown after some time has elapsed.
      */
     enum LongTimeErrors {
-        lteInvalidSoftware, /*! The downloaded Software was invalid. */
-        lteInvalidCertificate, /*! The SSL certificate of the download server was wrong. */
-        lteInvalidList, /*! The downloaded Certificate List was invalid. */
+        /*! The downloaded Software was invalid. */
+        lteInvalidSoftware,
+        /*! The SSL certificate of the download server was wrong. */
+        lteInvalidCertificate,
+        /*! The downloaded Certificate List was invalid. */
+        lteInvalidList,
+        /*! No connection to the server could be established. */
         lteNoConnection
     };
 
diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/processhelp.h
--- a/ui/processhelp.h	Thu Sep 25 17:37:03 2014 +0200
+++ b/ui/processhelp.h	Thu Sep 25 17:58:12 2014 +0200
@@ -15,12 +15,13 @@
 #include <QString>
 
 /**
- * @file processhelp.h 
+ * @file processhelp.h
  * @brief Static helper functions for process handling
  */
+/** @brief Static helper functions for process handling */
+class ProcessHelp {
 
-namespace ProcessHelp
-{
+public:
 /**
 * @brief look up process id's for a processName
 *
@@ -29,7 +30,7 @@
 * @param[in] processName the name of the process to look for
 * @returns a list of pids that match this process. May be empty
 */
-const QList<int> getProcessesIdForName(const QString &processName);
+static const QList<int> getProcessesIdForName(const QString &processName);
 
 /**
 * @brief check if another process with the same name exists
@@ -41,18 +42,18 @@
 *
 * @returns true if one or more processes (other than the current process) exist
 */
-bool otherProcessesExist(const QString &processName);
+static bool otherProcessesExist(const QString &processName);
 
 /**
 * @brief Activates the window for first found process
 * @param [in] executableName executableName (without path and .exe extension)
 */
-void activateWindowForProcess(const QString &executableName);
+static void activateWindowForProcess(const QString &executableName);
 
 /**
 * @brief Clean up internaly used infrastructure like pid/lock files.
 */
- void cleanUp(void);
-}
+static void cleanUp(void);
+};
 
 #endif // PROCESSHELP_H
diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/processhelp_linux.cpp
--- a/ui/processhelp_linux.cpp	Thu Sep 25 17:37:03 2014 +0200
+++ b/ui/processhelp_linux.cpp	Thu Sep 25 17:58:12 2014 +0200
@@ -17,10 +17,7 @@
 #include <QDir>
 #include <QStandardPaths>
 
-namespace ProcessHelp
-{
-    int lockFileFD = -1;
-}
+int lockFileFD = -1;
 
 const QList<int> ProcessHelp::getProcessesIdForName(const QString &processName) {
     // TODO (issue39)
diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/processwaitdialog.h
--- a/ui/processwaitdialog.h	Thu Sep 25 17:37:03 2014 +0200
+++ b/ui/processwaitdialog.h	Thu Sep 25 17:58:12 2014 +0200
@@ -10,7 +10,7 @@
 #include <QDialog>
 #include <QStringList>
 
-/** 
+/**
  * @file processwaitdialog.h
  * @brief Dialog to show that some processes need to be closed
  *
@@ -18,6 +18,11 @@
  * need to be closed.
  */
 
+/** @brief Dialog to show that some processes need to be closed
+ *
+ * This dialog informs about processes that are still running and
+ * need to be closed.
+ */
 class ProcessWaitDialog : public QDialog
 {
     Q_OBJECT
diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/proxysettingsdlg.h
--- a/ui/proxysettingsdlg.h	Thu Sep 25 17:37:03 2014 +0200
+++ b/ui/proxysettingsdlg.h	Thu Sep 25 17:58:12 2014 +0200
@@ -14,11 +14,12 @@
 class QPushButton;
 class QCheckBox;
 
-/** 
+/**
  * @file proxysettingsdlg.h
- * @brief Small dialog for proxy settings. 
+ * @brief Small dialog for proxy settings.
  */
 
+/** @brief Small dialog for proxy settings. */
 class ProxySettingsDlg : public QDialog {
 
     Q_OBJECT
diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/separatoritemdelegate.h
--- a/ui/separatoritemdelegate.h	Thu Sep 25 17:37:03 2014 +0200
+++ b/ui/separatoritemdelegate.h	Thu Sep 25 17:58:12 2014 +0200
@@ -15,6 +15,9 @@
 
 #include <QStyledItemDelegate>
 
+/**
+ * @brief Item delegate drawing a separator in list widgets.
+ */
 class SeparatorItemDelegate : public QStyledItemDelegate
 {
 Q_OBJECT
diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/sslconnection.h
--- a/ui/sslconnection.h	Thu Sep 25 17:37:03 2014 +0200
+++ b/ui/sslconnection.h	Thu Sep 25 17:58:12 2014 +0200
@@ -10,7 +10,7 @@
 
 /**
  * @file sslconnection.h
- * @brief Qt wrapper around polarssl ssl api
+ * @brief Controller of the downloader network connection
  */
 
 #include <QDebug>
@@ -18,18 +18,38 @@
 #include <QString>
 #include <QByteArray>
 
+/** @brief Controller of the downloader network connection 
+ *
+ * Base class of the SSL connection used. Offers a high
+ * level API that the downloader can use regardless of the
+ * concrete SSL implementation.
+ *
+ */
 class SSLConnection
 {
 public:
+    /**
+     * @enum ErrorCode
+     * @brief Possible Errors of the SSL connection.
+     */
     enum ErrorCode {
+        /*! Everything OK */
         NoError,
+        /*! Failure before the SSL Handshake. Connection failure.*/
         NoConnection,
+        /*! SSL Handshake failed. Probably unsupported ciphersuites.*/
         SSLHandshakeFailed,
+        /*! The pinned certificate did not match with the server cert.*/
         InvalidCertificate,
+        /*! The pinned certificate could not be parsed. Coding error!.*/
         InvalidPinnedCertificate,
+        /*! The response from the server could not be parsed.*/
         InvalidResponse,
+        /*! The connection was established but lost at one point.*/
         ConnectionLost,
+        /*! A connection timeout was hit.*/
         Timeout,
+        /*! The unexpected.*/
         ErrUnknown
     };
 
@@ -44,7 +64,16 @@
 
     virtual ~SSLConnection() {};
 
+    /**@brief wether or not everything could be parsed and all options could be set.
+     *
+     * This should usually be true. Otherwise it is likely something wrong
+     * with the internal data or the used library versions.
+     *
+     * @returns false when some error occured during initalization.
+     **/
     bool initialized() { return mInitialized; }
+
+    /** @brief wether or not the connection has been established */
     bool connected() { return mConnected; }
 
     ErrorCode getLastError() { return mErrorState; }
diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/sslconnection_bare.h
--- a/ui/sslconnection_bare.h	Thu Sep 25 17:37:03 2014 +0200
+++ b/ui/sslconnection_bare.h	Thu Sep 25 17:58:12 2014 +0200
@@ -22,8 +22,12 @@
 /**
  * @file sslconnection_bare.h
  * @brief SSLConnection doing bare SSL over PolarSSL
- * */
-
+ */
+ /** @brief SSLConnection implementation doing bare SSL over PolarSSL
+  *
+  * This class needs no additional libraries and parses the server responses
+  * directly using QT.
+  */
 class SSLConnectionBare : public SSLConnection
 {
 public:
diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/sslconnection_curl.h
--- a/ui/sslconnection_curl.h	Thu Sep 25 17:37:03 2014 +0200
+++ b/ui/sslconnection_curl.h	Thu Sep 25 17:58:12 2014 +0200
@@ -22,6 +22,12 @@
 
 class QSaveFile;
 
+/** @brief SSLConnection implementation using LibCURL
+*
+* This class uses a modified version of the curl library to
+* speak the HTTP with the downloader server. Provides
+* Proxy support.
+*/
 class SSLConnectionCurl : public SSLConnection
 {
 public:
diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/taskscheduler.h
--- a/ui/taskscheduler.h	Thu Sep 25 17:37:03 2014 +0200
+++ b/ui/taskscheduler.h	Thu Sep 25 17:58:12 2014 +0200
@@ -25,6 +25,10 @@
 
 //struct ITaskScheduler;
 
+/** @brief Interface to the Task Scheduler API
+*
+* Provides a Qt / C++ API to work with the windows task scheduler.
+*/
 class TaskScheduler
 {
 public:
diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/tests/fakeinstaller.c
--- a/ui/tests/fakeinstaller.c	Thu Sep 25 17:37:03 2014 +0200
+++ b/ui/tests/fakeinstaller.c	Thu Sep 25 17:58:12 2014 +0200
@@ -5,7 +5,9 @@
 * and comes with ABSOLUTELY NO WARRANTY!
 * See LICENSE.txt for details. */
 
-/**@file dummy program to test installer execution */
+/** @file fakeinstaller.c
+  * @brief dummy program to test installer execution
+  */
 
 #include <stdio.h>
 #ifdef WIN32
diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/textoverlaybutton.h
--- a/ui/textoverlaybutton.h	Thu Sep 25 17:37:03 2014 +0200
+++ b/ui/textoverlaybutton.h	Thu Sep 25 17:58:12 2014 +0200
@@ -8,7 +8,7 @@
  * See LICENSE.txt for details.
  */
 
-/** 
+/**
   * @file textoverlaybutton.h
   * @brief A tool button that overlays a text over the icon.
   */
@@ -19,6 +19,8 @@
 
 class QPaintEvent;
 
+/** @brief A tool button that overlays a text over the icon.
+  */
 class TextOverlayButton : public QToolButton
 {
     Q_OBJECT
diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/trayicon.h
--- a/ui/trayicon.h	Thu Sep 25 17:37:03 2014 +0200
+++ b/ui/trayicon.h	Thu Sep 25 17:58:12 2014 +0200
@@ -12,7 +12,9 @@
 #include <QSystemTrayIcon>
 
 
-/**@brief Notification interface.
+class QMessageBox;
+
+/**@brief User notification interface
  *
  * This class provides an inherited implmentation of QSystemTrayIcon
  * to be more flexible on platforms where no SystemTray is available.
@@ -20,9 +22,6 @@
  * This class should become obsolete once Qt improves the support for
  * StatusNotifier icons that are used in Plasma 5 and Unity.
  */
-
-class QMessageBox;
-
 class TrayIcon :  public QSystemTrayIcon
 {
     Q_OBJECT


More information about the Trustbridge-commits mailing list