# HG changeset patch # User Andre Heinecke # Date 1396349946 0 # Node ID 06089ba2614abe125784b68c12c9977ba2fb9a7a # Parent 84ae353688e0841ddf2f88601ef475cb41c9bf44 Use Installwrapper to call certificate installation process diff -r 84ae353688e0 -r 06089ba2614a ui/CMakeLists.txt --- a/ui/CMakeLists.txt Tue Apr 01 10:52:06 2014 +0000 +++ b/ui/CMakeLists.txt Tue Apr 01 10:59:06 2014 +0000 @@ -20,6 +20,7 @@ ${CMAKE_CURRENT_SOURCE_DIR}/helpdialog.cpp ${CMAKE_CURRENT_SOURCE_DIR}/aboutdialog.cpp ${CMAKE_CURRENT_SOURCE_DIR}/statusdialog.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/installwrapper.cpp ${CERTIFICATELIST_SOURCES} ${DOWNLOADER_SOURCES} ) diff -r 84ae353688e0 -r 06089ba2614a ui/listupdatedialog.cpp --- a/ui/listupdatedialog.cpp Tue Apr 01 10:52:06 2014 +0000 +++ b/ui/listupdatedialog.cpp Tue Apr 01 10:59:06 2014 +0000 @@ -10,7 +10,11 @@ #include #include #include +#include + + #include "certificate.h" +#include "installwrapper.h" ListUpdateDialog::ListUpdateDialog(QMainWindow *parent, const CertificateList &listToInstall) : @@ -86,7 +90,33 @@ return; } +void ListUpdateDialog::installerError(const QString& errMsg) { + QMessageBox::warning(this, tr("Installation Error"), errMsg); +} + void ListUpdateDialog::executeUpdate() { + + QStringList instructions; + + for (int i = 0; i < mCertListWidget->count(); i++) { + QListWidgetItem *item = mCertListWidget->item(i); + if (item->checkState() == Qt::Checked) { + instructions << item->data(Qt::UserRole).toString(); + } + + /* TODO: Check if it was an install instruction for an old certificate + * (already installed) and remove it in case it is unchecked. */ + } + + InstallWrapper *instWrap = new InstallWrapper(this, + mCertificateList.fileName(), + instructions); + connect(instWrap, SIGNAL(finished()), instWrap, SLOT(deleteLater())); + connect(instWrap, SIGNAL(error(const QString &)), + this, SLOT(installerError(const QString &))); + instWrap->start(); + +#if 0 /* TODO move this in another dialog and call it async*/ QProcess installerProcess; QFileInfo fi(QCoreApplication::applicationFilePath()); @@ -155,6 +185,7 @@ qDebug() << "output: " << installerProcess.readAllStandardOutput(); return; } +#endif } void ListUpdateDialog::showDetails(QListWidgetItem *item) diff -r 84ae353688e0 -r 06089ba2614a ui/listupdatedialog.h --- a/ui/listupdatedialog.h Tue Apr 01 10:52:06 2014 +0000 +++ b/ui/listupdatedialog.h Tue Apr 01 10:59:06 2014 +0000 @@ -28,6 +28,7 @@ QTextEdit *mDetailWidget; private slots: + void installerError(const QString& errMsg); void executeUpdate(); void showDetails(QListWidgetItem*); };