diff ui/mainwindow.cpp @ 628:3a9c0f38bbad trustbridge-refactor

Made certificate lists member of mainwindow and added some temporary debug msgs.
author Raimund Renkert <rrenkert@intevation.de>
date Mon, 23 Jun 2014 12:49:09 +0200
parents ebfe1128ee97
children 626507197360
line wrap: on
line diff
--- a/ui/mainwindow.cpp	Mon Jun 23 12:46:53 2014 +0200
+++ b/ui/mainwindow.cpp	Mon Jun 23 12:49:09 2014 +0200
@@ -164,6 +164,7 @@
 }
 
 void MainWindow::handleNewList(const QString& fileName, const QDateTime& modDate) {
+    qDebug() << "new list available";
     mSettings.setValue("List/available", fileName);
     mSettings.setValue("List/availableDate", modDate);
 
@@ -452,17 +453,18 @@
     QVBoxLayout *updatesHeaderTextLayout = new QVBoxLayout;
     QVBoxLayout *updatesHeaderSettLayout = new QVBoxLayout;
 
-    QLabel *updatesHeader =
+    mUpdatesHeader =
         new QLabel("<h2>" + tr("Updates (%1/%2)").arg(2).arg(4)+ "</h2>");
-    QLabel *lastCertUpdate =
+    mLastCertUpdate =
         new QLabel(tr("Last certificate update: %1").arg("today"));
-    QLabel *lastSWupdate =
+    mLastSWupdate =
         new QLabel(tr("Last Software update: %1").arg("today"));
-    updatesHeaderTextLayout->addWidget(updatesHeader);
-    updatesHeaderTextLayout->addWidget(lastCertUpdate);
-    updatesHeaderTextLayout->addWidget(lastSWupdate);
+    updatesHeaderTextLayout->addWidget(mUpdatesHeader);
+    updatesHeaderTextLayout->addWidget(mLastCertUpdate);
+    updatesHeaderTextLayout->addWidget(mLastSWupdate);
 
     QPushButton *searchUpdates = new QPushButton(tr("Search for Updates"));
+    connect(searchUpdates, SIGNAL(clicked()), this, SLOT(checkUpdates()));
     updatesHeaderSettLayout->insertStretch(0, 10);
     updatesHeaderSettLayout->addWidget(searchUpdates);
     updatesHeaderLayout->addLayout(updatesHeaderTextLayout);
@@ -475,7 +477,7 @@
     QHBoxLayout *updatesManualLayout = new QHBoxLayout;
     QLabel *updatesTip =
         new QLabel(tr("The following certificate changes are recommended."));
-    QLabel *updatesNewCertificates =
+    mUpdatesNewCertificates =
         new QLabel("<h3>" +
             tr("Install new Certificates (%1/%2)").arg(2).arg(2) +
             "</h3>");
@@ -484,13 +486,15 @@
         SIGNAL(clicked()),
         this,
         SLOT(toggleUpdatesNew()));
-    updatesNewLayout->addWidget(updatesNewCertificates);
+    updatesNewLayout->addWidget(mUpdatesNewCertificates);
     updatesNewLayout->addWidget(updatesDetailsNew);
     updatesNewLayout->insertStretch(2, 10);
     mUpdatesNew = new CertificateListWidget(this);
+    connect(mUpdatesNew, SIGNAL(certListChanged(int)),
+        this, SLOT(listChanged(int)));
     mUpdatesNew->hide();
 
-    QLabel *updatesRemoveCertificates =
+    mUpdatesRemoveCertificates =
         new QLabel("<h3>" +
             tr("Remove insecure Certificates (%1/%2)").arg(2).arg(2) +
             "</h3>");
@@ -499,13 +503,13 @@
         SIGNAL(clicked()),
         this,
         SLOT(toggleUpdatesRemove()));
-    updatesRemoveLayout->addWidget(updatesRemoveCertificates);
+    updatesRemoveLayout->addWidget(mUpdatesRemoveCertificates);
     updatesRemoveLayout->addWidget(updatesDetailsRemove);
     updatesRemoveLayout->insertStretch(2, 10);
     mUpdatesRemove = new CertificateListWidget(this);
     mUpdatesRemove->hide();
 
-    QLabel *updatesManualCertificates =
+    mUpdatesManualCertificates =
         new QLabel("<h3>" +
             tr("Manualy changed Certificates (%1)").arg(2) +
             "</h3>");
@@ -514,7 +518,7 @@
         SIGNAL(clicked()),
         this,
         SLOT(toggleUpdatesManual()));
-    updatesManualLayout->addWidget(updatesManualCertificates);
+    updatesManualLayout->addWidget(mUpdatesManualCertificates);
     updatesManualLayout->addWidget(updatesDetailsManual);
     updatesManualLayout->insertStretch(2, 10);
     mUpdatesManual = new CertificateListWidget(this);
@@ -532,6 +536,7 @@
     quitButton = new QPushButton(tr("Quit without saving"));
     QPushButton *saveButton = new QPushButton(tr("Update"));
     connect(quitButton, SIGNAL(clicked()), this, SLOT(closeApp()));
+    connect(saveButton, SIGNAL(clicked()), this, SLOT(installCerts()));
     updatesBottomLayout->insertStretch(0, 10);
     updatesBottomLayout->addWidget(saveButton);
     updatesBottomLayout->addWidget(quitButton);
@@ -592,9 +597,11 @@
     QLabel *removeCenterText = new QLabel(tr("Please choose the certificates"
         " you want to remove. TrustBridge will remove these certificates."));
     removeCenterLayout->addWidget(removeCenterText);
+    mRemoveList = new CertificateListWidget(this);
 
     removePanelLayout->addLayout(removeHeaderLayout);
     removePanelLayout->addLayout(removeCenterLayout);
+    removePanelLayout->addWidget(mRemoveList);
     mRemovePanel->setLayout(removePanelLayout);
 
     // Info panel.
@@ -784,13 +791,36 @@
     setCentralWidget(base);
 }
 
+void MainWindow::listChanged(int selected)
+{
+    mUpdatesHeader->setText("<h2>" + tr("Updates (%1/%2)")
+            .arg(mUpdatesRemove->selectedCertCount() + mUpdatesNew->selectedCertCount())
+            .arg(mUpdatesRemove->certificates().size() + mUpdatesNew->certificates().size()) +
+            "</h2>");
+    mUpdatesNewCertificates->setText("<h3>" +
+            tr("Install new Certificates (%1/%2)")
+            .arg(mUpdatesNew->selectedCertCount())
+            .arg(mUpdatesNew->certificates().size()) +
+            "</h3>");
+    mUpdatesRemoveCertificates->setText("<h3>" +
+            tr("Remove insecure Certificates (%1/%2)")
+            .arg(mUpdatesRemove->selectedCertCount())
+            .arg(mUpdatesRemove->certificates().size()) +
+            "</h3>");
+}
+
 void MainWindow::loadCertificateList()
 {
     //mCertListWidget->clear();
     //int i = 0;
 
+    qDebug() << "loading list";
     /* TODO: if nothing is available (neither old nor new) add some progress
      * indication */
+    mInstallList->clear();
+    mUpdatesNew->clear();
+    mRemoveList->clear();
+    mUpdatesRemove->clear();
     QList<Certificate> newInstallCerts;
     QList<Certificate> newRemoveCerts;
     QList<Certificate> oldInstallCerts;
@@ -798,6 +828,7 @@
 
     if (mListToInstall.getCertificates().isEmpty()) {
         // No new list available, add old certificates.
+        qDebug() << "no new list...";
         foreach (const Certificate &cert, mInstalledList.getCertificates()) {
             if (cert.isInstallCert()) {
                 oldInstallCerts.append(cert);
@@ -805,13 +836,16 @@
             }
             else {
                 oldRemoveCerts.append(cert);
+                mRemoveList->addCertificate(cert);
             }
         }
+        qDebug() << "old list date: " << mInstalledList.date().toString();
         // Set the date of the old list.
-        mCurrentListDate->setText(tr("Current List Date: %1")
-            .arg(mInstalledList.date().toString()));
+//        mCurrentListDate->setText(tr("Current List Date: %1")
+//            .arg(mInstalledList.date().toString()));
     }
     else {
+        qDebug() << "new list available";
         // Sort and filter both lists.
         foreach (const Certificate &cert, mListToInstall.getCertificates()) {
             if (cert.isInstallCert()) {
@@ -819,10 +853,13 @@
                 if (mInstalledList.getCertificates().contains(cert)) {
                     // Was in the old list.
                     oldInstallCerts.append(cert);
+                    qDebug() << "add install";
+                    mInstallList->addCertificate(cert);
                 }
                 else {
                     // Is a brand new certificate
                     newInstallCerts.append(cert);
+                    qDebug() << "add new install";
                     mUpdatesNew->addCertificate(cert);
                 }
             }
@@ -831,18 +868,42 @@
                 if (mInstalledList.getCertificates().contains(cert)) {
                     // Was in the old list.
                     oldRemoveCerts.append(cert);
+                    qDebug() << "add remove";
+                    mRemoveList->addCertificate(cert);
                 }
                 else {
                     // Was in the old list with status "install" and now has the
                     // status "remove".
                     newRemoveCerts.append(cert);
+                    qDebug() << "add new remove";
+                    mUpdatesRemove->addCertificate(cert);
                 }
             }
         }
+        mUpdatesHeader->setText("<h2>" +
+            tr("Updates (%1/%2)")
+                .arg(newRemoveCerts.size() + newInstallCerts.size())
+                .arg(newRemoveCerts.size() + newInstallCerts.size()) + "</h2>");
+        mLastCertUpdate->setText(tr("Last certificate update: %1")
+            .arg(mInstalledList.date().toString()));
 /*        mCurrentListDate->setText(tr("Current List Date: %1")
             .arg(mInstalledList.date().toString()));
         mNewListDate->setText(tr("New List Date: %1").arg(mListToInstall.date().toString()));*/
     }
+    mUpdatesNewCertificates->setText("<h3>" +
+            tr("Install new Certificates (%1/%2)")
+            .arg(mUpdatesNew->selectedCertCount())
+            .arg(mUpdatesNew->certificates().size()) +
+            "</h3>");
+
+    mUpdatesRemoveCertificates->setText("<h3>" +
+            tr("Remove insecure Certificates (%1/%2)")
+            .arg(mUpdatesRemove->selectedCertCount())
+            .arg(mUpdatesRemove->certificates().size()) +
+            "</h3>");
+    mUpdatesManualCertificates->setText("<h3>" +
+            tr("Manualy changed Certificates (%1)").arg(0) +
+            "</h3>");
 /*
     // Add separators and certificates to list widget.
     if (!newInstallCerts.isEmpty()) {
@@ -967,13 +1028,17 @@
         mInstalledList = mListToInstall;
         mListToInstall = CertificateList();
     }
-    //loadCertificateList();
+    loadCertificateList();
 }
 
 void MainWindow::installCerts() {
     QStringList choices;
 
-    for (int i = 0; i < mCertListWidget->count(); i++) {
+    choices << mUpdatesNew->certificates();
+    choices << mUpdatesRemove->certificates();
+    choices << mUpdatesManual->certificates();
+
+/*    for (int i = 0; i < mCertListWidget->count(); i++) {
         QListWidgetItem *item = mCertListWidget->item(i);
         if (item->checkState() == Qt::Checked) {
             choices << item->data(CertificateItemDelegate::DataRole).value<Certificate>().base64Line();
@@ -985,7 +1050,7 @@
             choices << certLine;
         }
     }
-
+*/
     QProgressDialog *progress = new QProgressDialog(this);
     progress->setWindowModality(Qt::WindowModal);
     progress->setLabelText(tr("Installing certificates..."));

http://wald.intevation.org/projects/trustbridge/