aheinecke@404: /* Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik aheinecke@404: * Software engineering by Intevation GmbH aheinecke@404: * aheinecke@404: * This file is Free Software under the GNU GPL (v>=2) aheinecke@404: * and comes with ABSOLUTELY NO WARRANTY! aheinecke@404: * See LICENSE.txt for details. aheinecke@404: */ rrenkert@361: #include "createinstallerdialog.h" rrenkert@361: #include rrenkert@361: #include rrenkert@361: #include rrenkert@361: #include rrenkert@361: #include rrenkert@361: #include rrenkert@361: #include rrenkert@361: #include rrenkert@361: rrenkert@361: CreateInstallerDialog::CreateInstallerDialog(QMainWindow *parent) : rrenkert@361: QDialog(parent) rrenkert@361: { rrenkert@361: setWindowTitle(tr("adminstrator - Create signed installer binary")); rrenkert@361: setupGUI(); rrenkert@361: } rrenkert@361: rrenkert@361: void CreateInstallerDialog::setupGUI() rrenkert@361: { rrenkert@361: /* Top level layout / widgets */ rrenkert@361: QVBoxLayout *topLayout = new QVBoxLayout; rrenkert@361: QHBoxLayout *headerLayout = new QHBoxLayout; rrenkert@361: QVBoxLayout *centerLayout = new QVBoxLayout; rrenkert@361: QHBoxLayout *bottomLayout = new QHBoxLayout; rrenkert@361: QHBoxLayout *archiveLayout = new QHBoxLayout; rrenkert@361: QHBoxLayout *certLayout = new QHBoxLayout; rrenkert@361: QHBoxLayout *saveLayout = new QHBoxLayout; rrenkert@361: rrenkert@361: QString descString = tr("Create a new signed installer binary.\n"); rrenkert@361: descString.append("Select the archive, certificate and destination directory."); rrenkert@361: QLabel *description = new QLabel(descString); rrenkert@361: headerLayout->addWidget(description); rrenkert@361: rrenkert@361: QLabel *archiveLabel = new QLabel("Select source archive:"); rrenkert@361: archiveLabel->setFixedWidth(140); rrenkert@361: mArchiveFile = new QLineEdit(); rrenkert@361: QPushButton *archiveSelect = new QPushButton("..."); rrenkert@361: connect(archiveSelect, SIGNAL(clicked()), this, SLOT(openArchiveSelect())); rrenkert@361: archiveSelect->setFixedWidth(30); rrenkert@361: archiveLayout->addWidget(archiveLabel); rrenkert@361: archiveLayout->addWidget(mArchiveFile); rrenkert@361: archiveLayout->addWidget(archiveSelect); rrenkert@361: rrenkert@361: QLabel *certLabel = new QLabel("Select certificate:"); rrenkert@361: certLabel->setFixedWidth(140); rrenkert@361: mCertFile = new QLineEdit(); rrenkert@361: QPushButton *certSelect = new QPushButton("..."); rrenkert@361: connect(certSelect, SIGNAL(clicked()), this, SLOT(openCertificateSelect())); rrenkert@361: certSelect->setFixedWidth(30); rrenkert@361: certLayout->addWidget(certLabel); rrenkert@361: certLayout->addWidget(mCertFile); rrenkert@361: certLayout->addWidget(certSelect); rrenkert@361: rrenkert@361: QLabel *saveLabel = new QLabel("Select target location:"); rrenkert@361: saveLabel->setFixedWidth(140); rrenkert@361: mSaveFile = new QLineEdit(); rrenkert@361: QPushButton *saveSelect = new QPushButton("..."); rrenkert@361: connect(saveSelect, SIGNAL(clicked()), this, SLOT(openSaveLocation())); rrenkert@361: saveSelect->setFixedWidth(30); rrenkert@361: saveLayout->addWidget(saveLabel); rrenkert@361: saveLayout->addWidget(mSaveFile); rrenkert@361: saveLayout->addWidget(saveSelect); rrenkert@361: rrenkert@361: centerLayout->addLayout(archiveLayout); rrenkert@361: centerLayout->addLayout(certLayout); rrenkert@361: centerLayout->addLayout(saveLayout); rrenkert@361: rrenkert@361: QPushButton *create = new QPushButton(tr("Create Installer")); rrenkert@361: connect(create, SIGNAL(clicked()), this, SLOT(createInstaller())); rrenkert@361: bottomLayout->insertStretch(0, 10); rrenkert@361: bottomLayout->addWidget(create); rrenkert@361: rrenkert@361: topLayout->addLayout(headerLayout); rrenkert@361: topLayout->addLayout(centerLayout); rrenkert@361: topLayout->insertStretch(2, 10); rrenkert@361: topLayout->addLayout(bottomLayout); rrenkert@361: rrenkert@361: setLayout(topLayout); rrenkert@361: rrenkert@361: return; rrenkert@361: } rrenkert@361: rrenkert@361: void CreateInstallerDialog::openCertificateSelect() rrenkert@361: { rrenkert@361: QString certFile = QFileDialog::getOpenFileName( rrenkert@361: this, tr("Select certificate"), QDir::homePath(), "*.pem *.der *.crt"); rrenkert@361: mCertFile->setText(certFile); rrenkert@361: } rrenkert@361: rrenkert@361: void CreateInstallerDialog::openArchiveSelect() rrenkert@361: { rrenkert@361: QString archiveFile = QFileDialog::getOpenFileName( rrenkert@361: this, tr("Select source archive"), QDir::homePath(), "*.zip *.tar.gz"); rrenkert@361: mArchiveFile->setText(archiveFile); rrenkert@361: } rrenkert@361: rrenkert@361: void CreateInstallerDialog::openSaveLocation() rrenkert@361: { rrenkert@361: QString saveFile = QFileDialog::getExistingDirectory( rrenkert@361: this, tr("Select target location"), QDir::homePath()); rrenkert@361: mSaveFile->setText(saveFile); rrenkert@361: } rrenkert@361: rrenkert@361: void CreateInstallerDialog::createInstaller() rrenkert@361: { rrenkert@361: qDebug() << "and now create the installer using:"; rrenkert@361: qDebug() << "source archive: " << mArchiveFile->text(); rrenkert@361: qDebug() << "certificate: " << mCertFile->text(); rrenkert@361: qDebug() << "target" << mSaveFile->text(); rrenkert@361: // TODO rrenkert@361: }