# HG changeset patch # User Emanuel Schuetze # Date 1411573823 -7200 # Node ID 4692f8860a24bb749818a9b01c6f53f26d824943 # Parent 17aa7cf0bedd74dc80fa5dd3d0f16b1904e16b6e# Parent 33a17569812a29d03d22c888a5f4a5f0dc7dde90 Merged. diff -r 17aa7cf0bedd -r 4692f8860a24 AUTHORS --- a/AUTHORS Wed Sep 24 17:50:09 2014 +0200 +++ b/AUTHORS Wed Sep 24 17:50:23 2014 +0200 @@ -1,5 +1,5 @@ -TrustBridge was written by the follwing authors of -Intevation GmbH : +TrustBridge software enginieering by +Intevation GmbH in particular: Andre Heinecke Bernhard Reiter diff -r 17aa7cf0bedd -r 4692f8860a24 ui/certificateitemwidget.cpp --- a/ui/certificateitemwidget.cpp Wed Sep 24 17:50:09 2014 +0200 +++ b/ui/certificateitemwidget.cpp Wed Sep 24 17:50:23 2014 +0200 @@ -11,6 +11,27 @@ #include #include #include +#include + +void CheckLessToolBtn::paintEvent(QPaintEvent * pe) { + + /* Hack to always paint the button as if it were + * not checked. */ + bool oldchecked = isChecked(); + QIcon oldIcon = icon(); + QIcon tmpIcon; + if (isEnabled()) + tmpIcon = QIcon(oldIcon.pixmap(QSize(48, 48), QIcon::Normal, oldchecked ? QIcon::On : QIcon::Off)); + else { + tmpIcon = QIcon(oldIcon.pixmap(QSize(48, 48), QIcon::Disabled, oldchecked ? QIcon::On : QIcon::Off)); + } + QSignalBlocker blk(this); + setChecked(false); + setIcon(tmpIcon); + QToolButton::paintEvent(pe); + setIcon(oldIcon); + setChecked(oldchecked); +} CertificateItemWidget::CertificateItemWidget(QWidget *parent, const Certificate &cert, @@ -22,12 +43,12 @@ mCertificate = cert; mOriginalState = state; btn->setCheckable(true); - btn->setStyleSheet("QToolButton:Checked{" +/* btn->setStyleSheet("QToolButton:Checked{" "border: 1px solid #8f8f91;" "background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1," "stop: 0 #f6f7fa, stop: 1 #dadbde);" "}" - ); + );*/ setState(state); setupGUI(); } diff -r 17aa7cf0bedd -r 4692f8860a24 ui/certificateitemwidget.h --- a/ui/certificateitemwidget.h Wed Sep 24 17:50:09 2014 +0200 +++ b/ui/certificateitemwidget.h Wed Sep 24 17:50:23 2014 +0200 @@ -14,10 +14,14 @@ */ #include #include +#include #include "certificate.h" -class QToolButton; +class CheckLessToolBtn : public QToolButton +{ + void paintEvent(QPaintEvent * pe); +}; class CertificateItemWidget : public QWidget { diff -r 17aa7cf0bedd -r 4692f8860a24 ui/mainwindow.cpp --- a/ui/mainwindow.cpp Wed Sep 24 17:50:09 2014 +0200 +++ b/ui/mainwindow.cpp Wed Sep 24 17:50:23 2014 +0200 @@ -33,6 +33,7 @@ #include #include "certificatelist.h" +#include "certificateitemwidget.h" #include "downloader.h" #include "helpdialog.h" #include "aboutdialog.h" @@ -266,7 +267,14 @@ } void MainWindow::handleNewList(const QString& fileName, const QDateTime& modDate) { - qDebug() << "new list available"; + + if (mSettings.value("List/available").toString() == fileName && + getState() == NewListAvailable) { + qDebug() << "List already handled"; + return; + } else { + qDebug() << "Handling list"; + } mSettings.setValue("List/available", fileName); mSettings.setValue("List/availableDate", modDate); @@ -512,7 +520,6 @@ connect(downloader, SIGNAL(newListAvailable(const QString&, const QDateTime&)), this, SLOT(handleNewList(const QString&, const QDateTime&))); if (!downloadSW) { - setState(BeforeDownload); connect(downloader, SIGNAL(newSoftwareAvailable(const QString&, const QDateTime&)), this, SLOT(handleNewSW(const QString&, const QDateTime&))); } else { @@ -581,6 +588,7 @@ void MainWindow::downloaderError(const QString &message, SSLConnection::ErrorCode error) { syslog_error_printf ("Failed to check for updates: %s", message.toUtf8().constData()); + qDebug() << "Downloader error: " << error; if (error == SSLConnection::InvalidCertificate) { handleLTE(lteInvalidCertificate); } else { @@ -1128,12 +1136,8 @@ if (changeCount() && !mUpdatesManual->certificates().size()) { mUpdatesTip->setText( tr("You should apply the following, recommended changes to your certificate stores:")); - } else if (changeCount()) { - mUpdatesTip->setText( - tr("You can apply the following, changes to your certificate stores:")); } else { - mUpdatesTip->setText( - tr("There are currently no changes for your certificate stores.")); + mUpdatesTip->setText(""); } if (!changeCount()) { @@ -1233,6 +1237,7 @@ { /* TODO (issue134): if nothing is available (neither old nor new) add some progress * indication */ + setUpdatesEnabled(false); mInstallList->clear(); mRemoveList->clear(); mUpdatesNew->clear(); @@ -1248,7 +1253,7 @@ bool state = !mPreviouslyUnselected.contains(cert.base64Line()); if (cert.isInstallCert()) { oldInstallCerts.append(cert); - QToolButton* actionBtn = new QToolButton(); + CheckLessToolBtn* actionBtn = new CheckLessToolBtn(); QIcon btnIcon; if (!state) { btnIcon.addFile(":/img/cert-to-be-installed-good-48.png", QSize(48, 48), QIcon::Normal, QIcon::Off); @@ -1266,7 +1271,7 @@ } else { oldRemoveCerts.append(cert); - QToolButton* actionBtn = new QToolButton(); + CheckLessToolBtn* actionBtn = new CheckLessToolBtn(); QIcon btnIcon; actionBtn->setProperty("ToolTip_Off", tr("Certificate will be removed.")); actionBtn->setProperty("ToolTip_On", tr("Certificate has not been removed.")); @@ -1291,7 +1296,7 @@ if (mInstalledList.getCertificates().contains(cert)) { // Was in the old list. oldInstallCerts.append(cert); - QToolButton* actionBtn = new QToolButton(); + CheckLessToolBtn* actionBtn = new CheckLessToolBtn(); QIcon btnIcon; actionBtn->setProperty("ToolTip_Off", tr("Certificate is installed.")); actionBtn->setProperty("ToolTip_On", tr("Certifcate is not installed.")); @@ -1303,7 +1308,7 @@ else { // Is a brand new certificate newInstallCerts.append(cert); - QToolButton* actionBtn = new QToolButton(); + CheckLessToolBtn* actionBtn = new CheckLessToolBtn(); QIcon btnIcon; actionBtn->setProperty("ToolTip_Off", tr("Certificate will be installed.")); actionBtn->setProperty("ToolTip_On", tr("Certificate will not be installed.")); @@ -1319,7 +1324,7 @@ // Was in the old list. oldRemoveCerts.append(cert); // Is removed, so set editable to false. - QToolButton* actionBtn = new QToolButton(); + CheckLessToolBtn* actionBtn = new CheckLessToolBtn(); QIcon btnIcon; actionBtn->setProperty("ToolTip_Off", tr("Certificate will be removed.")); actionBtn->setProperty("ToolTip_On", tr("Certificate has not been removed.")); @@ -1337,7 +1342,7 @@ // Was in the old list with status "install" and now has the // status "remove". newRemoveCerts.append(cert); - QToolButton* actionBtn = new QToolButton(); + CheckLessToolBtn* actionBtn = new CheckLessToolBtn(); QIcon btnIcon; actionBtn->setProperty("ToolTip_Off", tr("Certificate will be removed.")); actionBtn->setProperty("ToolTip_On", tr("Certificate will not be removed.")); @@ -1351,6 +1356,7 @@ } listChanged(0); + setUpdatesEnabled(true); } void MainWindow::installerError(const QString& errMsg) { @@ -1723,6 +1729,7 @@ void MainWindow::handleLTE(LongTimeErrors lte, bool reset) { QString settingPrefix; + // qDebug() << "Handle LTE for " << lte << " Reset? : " << reset; switch (lte) { case lteInvalidSoftware: settingPrefix = "LTE/invalidSW"; @@ -1744,7 +1751,7 @@ /* delete all values and be done */ mSettings.remove(settingPrefix + "_lastSaved"); mSettings.remove(settingPrefix + "_count"); - mSettings.remove(settingPrefix + "_lastMsgShown"); + mSettings.remove(settingPrefix + "_lastShown"); return; } diff -r 17aa7cf0bedd -r 4692f8860a24 ui/mainwindow.h --- a/ui/mainwindow.h Wed Sep 24 17:50:09 2014 +0200 +++ b/ui/mainwindow.h Wed Sep 24 17:50:23 2014 +0200 @@ -68,7 +68,6 @@ * @brief The internal state of the application */ enum CurrentState { - BeforeDownload, /*! Initial state before a connection is tried. */ NewListAvailable, /*! A new certificate list is available. */ NewSoftwareAvailable, /*! A new Software is avaialable. */ DownloadingSW, /*! Download in progress. */