Mercurial > trustbridge
diff ui/mainwindow.cpp @ 739:5f0fca113ff4
Factor out Info Panel creation.
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Fri, 04 Jul 2014 11:15:34 +0200 |
parents | d39b5b65366e |
children | 8efd10afb883 |
line wrap: on
line diff
--- a/ui/mainwindow.cpp Fri Jul 04 12:32:51 2014 +0200 +++ b/ui/mainwindow.cpp Fri Jul 04 11:15:34 2014 +0200 @@ -80,7 +80,7 @@ { createActions(); createTrayIcon(); - createContent(); + setupGUI(); resize(1065, 600); setMinimumWidth(760); qRegisterMetaType<SSLConnection::ErrorCode>("SSLConnection::ErrorCode"); @@ -433,7 +433,76 @@ connect(mTrayIcon, SIGNAL(messageClicked()), this, SLOT(messageClicked())); } -void MainWindow::createContent() +QLayout * createInfoPanelLayout() +{ + QVBoxLayout *infoPanelLayout = new QVBoxLayout; + QHBoxLayout *infoHeaderLayout = new QHBoxLayout; + QVBoxLayout *infoHeaderTextLayout = new QVBoxLayout; + QVBoxLayout *infoCenterLayout = new QVBoxLayout; + + QImage *infoLogoImage = new QImage(":/img/logo.png"); + QLabel *infoLogo = new QLabel; + infoLogo->setBackgroundRole(QPalette::Base); + infoLogo->setPixmap(QPixmap::fromImage(*infoLogoImage)); + QLabel *infoTitle = new QLabel("<h1>" + QObject::tr("TrustBridge") + "</h1>"); + QString infoVersion = QObject::tr("Version: "); + infoVersion.append(QApplication::applicationVersion()); + QLabel *appVersion = new QLabel(infoVersion); + appVersion->setTextInteractionFlags( + Qt::TextSelectableByMouse | + Qt::TextSelectableByKeyboard); + + QFrame *infoHeaderSeparator = new QFrame(); + infoHeaderSeparator->setFrameShape(QFrame::HLine); + infoHeaderSeparator->setFrameShadow(QFrame::Sunken); + + infoHeaderTextLayout->addWidget(infoTitle); + infoHeaderTextLayout->addWidget(appVersion); + infoHeaderLayout->addWidget(infoLogo); + infoHeaderLayout->addLayout(infoHeaderTextLayout); + infoHeaderLayout->insertStretch(2, 10); + + QLabel *textDesc = new QLabel(QObject::tr("TrustBridge is a root certificate" + " installer for Windows and Linux.")); + textDesc->setTextInteractionFlags( + Qt::TextSelectableByMouse | + Qt::TextSelectableByKeyboard); + QLabel *textManage = new QLabel(QObject::tr("The root certificate lists are managed" + " by the German <a href=\"https://www.bsi.bund.de\">" + "Federal Office for Information Security (BSI)</a>.\n\n")); + textManage->setTextInteractionFlags( + Qt::TextBrowserInteraction | + Qt::TextSelectableByKeyboard); + QLabel *textDevel = new QLabel(QObject::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 German Federal Office for Information Security (BSI).\n\n")); + textDevel->setTextInteractionFlags( + Qt::TextBrowserInteraction | + Qt::TextSelectableByKeyboard); + QLabel *textLicense = new QLabel(QObject::tr("TrustBridge is Free Software licensed" + " under GNU GPL v2+.\n\nCopyright (C) 2014 by Bundesamt für Sicherheit" + " in der Informationstechnik")); + textLicense->setTextInteractionFlags( + Qt::TextSelectableByMouse | + Qt::TextSelectableByKeyboard); + + infoCenterLayout->addWidget(infoHeaderSeparator); + infoCenterLayout->addWidget(textDesc); + infoCenterLayout->addWidget(textManage); + infoCenterLayout->addWidget(textDevel); + infoCenterLayout->addWidget(textLicense); + infoCenterLayout->insertSpacing(2, 10); + infoCenterLayout->insertSpacing(4, 10); + infoCenterLayout->insertSpacing(6, 10); + infoCenterLayout->insertStretch(8, 10); + + infoPanelLayout->addLayout(infoHeaderLayout); + infoPanelLayout->addLayout(infoCenterLayout); + return infoPanelLayout; +} + +void MainWindow::setupGUI() { // Create a central widget containing the main layout. QWidget *base = new QWidget; @@ -743,72 +812,8 @@ * The info panel. **********************************/ mInfoPanel = new QScrollArea; - - QVBoxLayout *infoPanelLayout = new QVBoxLayout; - QHBoxLayout *infoHeaderLayout = new QHBoxLayout; - QVBoxLayout *infoHeaderTextLayout = new QVBoxLayout; - QVBoxLayout *infoCenterLayout = new QVBoxLayout; - - QImage *infoLogoImage = new QImage(":/img/logo.png"); - QLabel *infoLogo = new QLabel; - infoLogo->setBackgroundRole(QPalette::Base); - infoLogo->setPixmap(QPixmap::fromImage(*infoLogoImage)); - QLabel *infoTitle = new QLabel("<h1>" + tr("TrustBridge") + "</h1>"); - QString infoVersion = tr("Version: "); - infoVersion.append(QApplication::applicationVersion()); - QLabel *appVersion = new QLabel(infoVersion); - appVersion->setTextInteractionFlags( - Qt::TextSelectableByMouse | - Qt::TextSelectableByKeyboard); - - QFrame *infoHeaderSeparator = new QFrame(); - infoHeaderSeparator->setFrameShape(QFrame::HLine); - infoHeaderSeparator->setFrameShadow(QFrame::Sunken); - - infoHeaderTextLayout->addWidget(infoTitle); - infoHeaderTextLayout->addWidget(appVersion); - infoHeaderLayout->addWidget(infoLogo); - infoHeaderLayout->addLayout(infoHeaderTextLayout); - infoHeaderLayout->insertStretch(2, 10); + mInfoPanel->setLayout(createInfoPanelLayout()); - QLabel *textDesc = new QLabel(tr("TrustBridge is a root certificate" - " installer for Windows and Linux.")); - textDesc->setTextInteractionFlags( - Qt::TextSelectableByMouse | - Qt::TextSelectableByKeyboard); - QLabel *textManage = new QLabel(tr("The root certificate lists are managed" - " by the German <a href=\"https://www.bsi.bund.de\">" - "Federal Office for Information Security (BSI)</a>.\n\n")); - textManage->setTextInteractionFlags( - Qt::TextBrowserInteraction | - Qt::TextSelectableByKeyboard); - QLabel *textDevel = new QLabel(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 German Federal Office for Information Security (BSI).\n\n")); - textDevel->setTextInteractionFlags( - Qt::TextBrowserInteraction | - Qt::TextSelectableByKeyboard); - QLabel *textLicense = new QLabel(tr("TrustBridge is Free Software licensed" - " under GNU GPL v2+.\n\nCopyright (C) 2014 by Bundesamt für Sicherheit" - " in der Informationstechnik")); - textLicense->setTextInteractionFlags( - Qt::TextSelectableByMouse | - Qt::TextSelectableByKeyboard); - - infoCenterLayout->addWidget(infoHeaderSeparator); - infoCenterLayout->addWidget(textDesc); - infoCenterLayout->addWidget(textManage); - infoCenterLayout->addWidget(textDevel); - infoCenterLayout->addWidget(textLicense); - infoCenterLayout->insertSpacing(2, 10); - infoCenterLayout->insertSpacing(4, 10); - infoCenterLayout->insertSpacing(6, 10); - infoCenterLayout->insertStretch(8, 10); - - infoPanelLayout->addLayout(infoHeaderLayout); - infoPanelLayout->addLayout(infoCenterLayout); - mInfoPanel->setLayout(infoPanelLayout); /******************************** * The main layout for pages.