# HG changeset patch # User Raimund Renkert # Date 1395830656 -3600 # Node ID 5f0d45ca9de4fe06bd3bd05e52c5bf95fa948b14 # Parent a3bde2aaabd9d451753a71cc3ac768c975454d26 Show certificates in the list view and details in the textfield. diff -r a3bde2aaabd9 -r 5f0d45ca9de4 ui/mainwindow.cpp --- a/ui/mainwindow.cpp Wed Mar 26 09:12:10 2014 +0100 +++ b/ui/mainwindow.cpp Wed Mar 26 11:44:16 2014 +0100 @@ -10,10 +10,10 @@ #include #include #include -#include #include #include #include +#include // The amount of time in minutes stay silent if we have // something to say @@ -124,6 +124,7 @@ mCurMessage = tr("An updated certificate list is available. Click here to install."); setState(NewListAvailable); showMessage(); + loadCertificateList(); } } @@ -229,10 +230,15 @@ QHBoxLayout *bottomLayout = new QHBoxLayout; QGroupBox *certBox = new QGroupBox(tr("Managed Certificates")); - QListWidget *certificates = new QListWidget; - QListWidget *details = new QListWidget; - certLayout->addWidget(certificates); - certLayout->addWidget(details); + certificateList = new QListWidget; + connect(certificateList, SIGNAL(itemClicked(QListWidgetItem*)), + this, SLOT(showDetails(QListWidgetItem*))); + certificateDetails = new QTextEdit; + certificateDetails->setReadOnly(true); + QSplitter *splitter = new QSplitter(certBox); + splitter->addWidget(certificateList); + splitter->addWidget(certificateDetails); + certLayout->addWidget(splitter); certBox->setLayout(certLayout); QPushButton *update = new QPushButton("Search for Updates"); @@ -248,7 +254,36 @@ setCentralWidget(base); } -void MainWindow::showSettings() { +void MainWindow::loadCertificateList() +{ + qDebug() << "display certificates"; + certificateList->clear(); + foreach (const Certificate &cert, mListToInstall.getInstallCertificates()) { + if (!cert.isValid()) { + qWarning() << "Invalid certificate in list"; + continue; + } + QListWidgetItem* item = new QListWidgetItem(cert.shortDescription()); + item->setData(Qt::UserRole, cert.details()); + QIcon *certIcon = new QIcon(":/img/tray_22.png"); + item->setIcon(*certIcon); + certificateList->addItem(item); + } + foreach (const Certificate& cert, mListToInstall.getRemoveCertificates()) { + if (!cert.isValid()) { + qWarning() << "Invalid certificate in list"; + continue; + } + QListWidgetItem* item = new QListWidgetItem(cert.shortDescription()); + item->setData(Qt::UserRole, cert.details()); + QIcon *certIcon = new QIcon(":/img/tray_22.png"); + item->setIcon(*certIcon); + certificateList->addItem(item); + } +} + +void MainWindow::showSettings() +{ qDebug() << "show settingsdialog"; } @@ -262,3 +297,9 @@ qDebug() << "show aboutdialog"; } +void MainWindow::showDetails(QListWidgetItem *item) +{ + qDebug() << "show details"; + QString details = item->data(Qt::UserRole).toString(); + certificateDetails->setPlainText(details); +} diff -r a3bde2aaabd9 -r 5f0d45ca9de4 ui/mainwindow.h --- a/ui/mainwindow.h Wed Mar 26 09:12:10 2014 +0100 +++ b/ui/mainwindow.h Wed Mar 26 11:44:16 2014 +0100 @@ -10,6 +10,8 @@ #include #include #include +#include +#include #include "downloader.h" #include "certificatelist.h" @@ -49,6 +51,7 @@ void showSettings(); void showHelp(); void showAbout(); + void showDetails(QListWidgetItem*); private: /** @brief check the integrity of available files. @@ -64,6 +67,7 @@ void createActions(); void createMenuBar(); void createContent(); + void loadCertificateList(); QString mCurMessage; QString mInstalledSWVersion; @@ -80,6 +84,9 @@ QMenuBar *mMenuBar; CertificateList mListToInstall; + + QListWidget *certificateList; + QTextEdit *certificateDetails; }; #endif // MAINWINDOW_H