comparison ui/mainwindow.cpp @ 1098:75a5bfe0525e

(issue111) Rework Updates ui This also concentrates label changes into the listChanged method.
author Andre Heinecke <andre.heinecke@intevation.de>
date Mon, 15 Sep 2014 12:45:22 +0200
parents b033a7d26f2e
children 3d4a81eff3fd
comparison
equal deleted inserted replaced
1097:b033a7d26f2e 1098:75a5bfe0525e
600 QVBoxLayout *updatesMainLayout = new QVBoxLayout; 600 QVBoxLayout *updatesMainLayout = new QVBoxLayout;
601 601
602 /* The header */ 602 /* The header */
603 QVBoxLayout *updatesHeaderLayout = new QVBoxLayout; 603 QVBoxLayout *updatesHeaderLayout = new QVBoxLayout;
604 604
605 605 QGridLayout *detailsLayout = new QGridLayout;
606 /* Header 1: Update date and search button */ 606
607 QHBoxLayout *updateDateAndSearchButton = new QHBoxLayout; 607 /* Header 1: Action buttons and summary*/
608 mUpdatesHeader = 608 mUpdatesHeader =
609 new QLabel("<h2>" + tr("Certificates unchanged")+ "</h2>"); 609 new QLabel("<h2>" + tr("Certificates unchanged")+ "</h2>");
610 mLastCertUpdate = 610 updatesHeaderLayout->addWidget(mUpdatesHeader);
611 new QLabel(tr("Installed certificates from:")); 611
612 mLastCertUpdateContents = new QLabel(QString()); 612 QHBoxLayout *updatesHeaderActionButtonLayout = new QHBoxLayout;
613 mLastCertUpdate->hide(); 613 mQuitButton = new QPushButton(" " + tr("Quit without saving"));
614 mLastCertUpdateContents->hide(); 614 mQuitButton->setIcon(QIcon(":/img/application-exit.png"));
615 mQuitButton->setFixedHeight(30);
616
617 mInstallButton = new QPushButton(" " + tr("Install certificates again"));
618 mInstallButton->setFixedHeight(30);
619 #ifdef Q_OS_WIN
620 if (is_system_install()) {
621 QIcon uacShield = QApplication::style()->standardIcon(QStyle::SP_VistaShield);
622 mInstallButton->setIcon(uacShield);
623 }
624 #else
625 mInstallButton->setIcon(QIcon(":/img/view-refresh_16px.png"));
626 #endif
627 connect(mQuitButton, SIGNAL(clicked()), this, SLOT(closeApp()));
628 connect(mInstallButton, SIGNAL(clicked()), this, SLOT(checkAndInstallCerts()));
629
630 updatesHeaderActionButtonLayout->addWidget(mInstallButton);
631 updatesHeaderActionButtonLayout->addWidget(mQuitButton);
632 updatesHeaderActionButtonLayout->addStretch(-1);
633
634 updatesHeaderLayout->addLayout(updatesHeaderActionButtonLayout);
635 updatesHeaderLayout->addSpacing(20);
636
637 /* The splitter line */
638 QFrame *line = new QFrame();
639 line->setFrameShape(QFrame::HLine);
640 line->setFrameShadow(QFrame::Sunken);
641 updatesHeaderLayout->addWidget(line);
642
643 updatesMainLayout->addLayout(updatesHeaderLayout);
644 /* Header 2: Details and update button */
645 mUpdatesDetailsHeader = new QLabel(QString());
646
647 QHBoxLayout *updateDateAndSearchButton = new QHBoxLayout;
648 mCertListVersion =
649 new QLabel(QString());
650 mCertListVersionContents = new QLabel(QString());
615 const QDateTime lastCheck = mSettings.value("lastUpdateCheck").toDateTime().toLocalTime(); 651 const QDateTime lastCheck = mSettings.value("lastUpdateCheck").toDateTime().toLocalTime();
616 if (lastCheck.isValid()) { 652 if (lastCheck.isValid()) {
617 const QString lastUpdateCheck = QLocale::system().toString(lastCheck, DATETIME_FORMAT); 653 const QString lastUpdateCheck = QLocale::system().toString(lastCheck, DATETIME_FORMAT);
618 mLastUpdateCheck = 654 mLastUpdateCheck =
619 new QLabel(tr("Last successful update check:")); 655 new QLabel(tr("Last successful update check:"));
621 } else { 657 } else {
622 mLastUpdateCheck = new QLabel(tr("Last successful update check:")); 658 mLastUpdateCheck = new QLabel(tr("Last successful update check:"));
623 mLastUpdateCheckContents = new QLabel(tr("No connection with the updateserver.")); 659 mLastUpdateCheckContents = new QLabel(tr("No connection with the updateserver."));
624 } 660 }
625 QPushButton *searchUpdates = new QPushButton(" " + tr("Update")); 661 QPushButton *searchUpdates = new QPushButton(" " + tr("Update"));
626 searchUpdates->setFixedHeight(22); 662 searchUpdates->setFixedHeight(18);
627 searchUpdates->setToolTip(tr("Check for Updates")); 663 searchUpdates->setToolTip(tr("Check for Updates"));
628 searchUpdates->setStyleSheet("font-size: 10px;"); 664 searchUpdates->setStyleSheet("font-size: 10px;");
629 searchUpdates->setIcon(QIcon(":/img/update-list.png")); 665 searchUpdates->setIcon(QIcon(":/img/update-list.png"));
630 connect(searchUpdates, SIGNAL(clicked()), this, SLOT(checkUpdates())); 666 connect(searchUpdates, SIGNAL(clicked()), this, SLOT(checkUpdates()));
631 updateDateAndSearchButton->addWidget(mLastUpdateCheckContents); 667 updateDateAndSearchButton->addWidget(mLastUpdateCheckContents);
632 updateDateAndSearchButton->addWidget(searchUpdates); 668 updateDateAndSearchButton->addWidget(searchUpdates);
633 669
634 updatesHeaderLayout->addWidget(mUpdatesHeader);
635 // TODO updatesHeaderLayout->addWidget(mLastUpdateCheck, 2, 0, 1, 1);
636 // TODO updatesHeaderLayout->addLayout(updateDateAndSearchButton, 2, 1, 1, 1);
637 // TODO updatesHeaderLayout->addWidget(mLastCertUpdate, 3, 0, 1, 1);
638 // TODO updatesHeaderLayout->addWidget(mLastCertUpdateContents, 3, 1, 1, 1);
639
640 /* Header 2: Action text and buttons */
641 mUpdatesTip = 670 mUpdatesTip =
642 new QLabel(tr("There are currently no changes for your certificate stores.")); 671 new QLabel(QString());
643 mUpdatesTip->setWordWrap(true); 672 mUpdatesTip->setWordWrap(true);
644 QHBoxLayout *updatesHeaderActionButtonLayout = new QHBoxLayout;
645 mQuitButton = new QPushButton(" " + tr("Quit without saving"));
646 mQuitButton->setIcon(QIcon(":/img/application-exit.png"));
647 mQuitButton->setFixedHeight(30);
648
649 mInstallButton = new QPushButton(" " + tr("Install certificates again"));
650 mInstallButton->setFixedHeight(30);
651 #ifdef Q_OS_WIN
652 if (is_system_install()) {
653 QIcon uacShield = QApplication::style()->standardIcon(QStyle::SP_VistaShield);
654 mInstallButton->setIcon(uacShield);
655 }
656 #else
657 mInstallButton->setIcon(QIcon(":/img/view-refresh_16px.png"));
658 #endif
659 connect(mQuitButton, SIGNAL(clicked()), this, SLOT(closeApp()));
660 connect(mInstallButton, SIGNAL(clicked()), this, SLOT(checkAndInstallCerts()));
661 673
662 // addWidget(*Widget, row, column, rowspan, colspan) 674 // addWidget(*Widget, row, column, rowspan, colspan)
663 // TODO updatesHeaderLayout->addWidget(mUpdatesTip, 5, 0, 1, 4); 675 updatesMainLayout->addWidget(mUpdatesDetailsHeader);
664 updatesHeaderActionButtonLayout->addWidget(mInstallButton); 676 detailsLayout->addWidget(mLastUpdateCheck, 0, 0, 1, 1);
665 updatesHeaderActionButtonLayout->addWidget(mQuitButton); 677 detailsLayout->addLayout(updateDateAndSearchButton, 0, 1, 1, 1);
666 updatesHeaderActionButtonLayout->addStretch(-1); 678 detailsLayout->addWidget(mCertListVersion, 1, 0, 1, 1);
667 updatesHeaderLayout->addLayout(updatesHeaderActionButtonLayout); 679 detailsLayout->addWidget(mCertListVersionContents, 1, 1, 1, 1);
668 updatesHeaderLayout->addSpacing(20); 680 detailsLayout->addItem(new QSpacerItem(1, 1, QSizePolicy::Expanding, QSizePolicy::Minimum), 2, 2, 1, 1);
669 681 detailsLayout->setColumnStretch(2, 1);
670 /* The splitter line */ 682
671 QFrame *line = new QFrame(); 683 updatesMainLayout->addLayout(detailsLayout);
672 line->setFrameShape(QFrame::HLine); 684
673 line->setFrameShadow(QFrame::Sunken); 685 updatesMainLayout->addItem(new QSpacerItem(100, 10));
674 updatesHeaderLayout->addWidget(line); 686 updatesMainLayout->addWidget(mUpdatesTip);
675 687
676 /* The central panels. */ 688 /* The central panels. */
677 QScrollArea *centralScrollArea = new QScrollArea; 689 QScrollArea *centralScrollArea = new QScrollArea;
678 QVBoxLayout *updatesCenterLayout = new QVBoxLayout; 690 QVBoxLayout *updatesCenterLayout = new QVBoxLayout;
679 QHBoxLayout *updatesNewLayout = new QHBoxLayout; 691 QHBoxLayout *updatesNewLayout = new QHBoxLayout;
721 mUpdatesRemove = new CertificateListWidget(this); 733 mUpdatesRemove = new CertificateListWidget(this);
722 connect(mUpdatesRemove, SIGNAL(certListChanged(int)), 734 connect(mUpdatesRemove, SIGNAL(certListChanged(int)),
723 this, SLOT(listChanged(int))); 735 this, SLOT(listChanged(int)));
724 mUpdatesRemove->hide(); 736 mUpdatesRemove->hide();
725 737
726 mUpdatesManualCertificates = 738 mUpdatesManualCertificates = new QLabel(QString());
727 new QLabel("<h3>" +
728 tr("Manually changed certificates (%1)").arg(0) +
729 "</h3>");
730 mUpdatesDetailsManual = new QPushButton(); 739 mUpdatesDetailsManual = new QPushButton();
731 mUpdatesDetailsManual->setText(" " + tr("Details")); 740 mUpdatesDetailsManual->setText(" " + tr("Details"));
732 mUpdatesDetailsManual->setToolTip(tr("Show details")); 741 mUpdatesDetailsManual->setToolTip(tr("Show details"));
733 mUpdatesDetailsManual->setStyleSheet("font-size: 10px;"); 742 mUpdatesDetailsManual->setStyleSheet("font-size: 10px;");
734 mUpdatesDetailsManual->setFixedHeight(22); 743 mUpdatesDetailsManual->setFixedHeight(22);
736 connect(mUpdatesDetailsManual, 745 connect(mUpdatesDetailsManual,
737 SIGNAL(clicked()), 746 SIGNAL(clicked()),
738 this, 747 this,
739 SLOT(toggleUpdatesManual())); 748 SLOT(toggleUpdatesManual()));
740 mUpdatesDetailsManual->hide(); 749 mUpdatesDetailsManual->hide();
741 mUpdatesManualCertificates->hide();
742 updatesManualLayout->addWidget(mUpdatesManualCertificates); 750 updatesManualLayout->addWidget(mUpdatesManualCertificates);
743 updatesManualLayout->addWidget(mUpdatesDetailsManual); 751 updatesManualLayout->addWidget(mUpdatesDetailsManual);
744 updatesManualLayout->addStretch(1); 752 updatesManualLayout->addStretch(1);
745 mUpdatesManual = new CertificateListWidget(this); 753 mUpdatesManual = new CertificateListWidget(this);
746 mUpdatesManual->hide(); 754 mUpdatesManual->hide();
754 updatesManualLayout->setAlignment(Qt::AlignTop); 762 updatesManualLayout->setAlignment(Qt::AlignTop);
755 updatesCenterLayout->addLayout(updatesNewLayout); 763 updatesCenterLayout->addLayout(updatesNewLayout);
756 updatesCenterLayout->addWidget(mUpdatesNew); 764 updatesCenterLayout->addWidget(mUpdatesNew);
757 updatesCenterLayout->addLayout(updatesRemoveLayout); 765 updatesCenterLayout->addLayout(updatesRemoveLayout);
758 updatesCenterLayout->addWidget(mUpdatesRemove); 766 updatesCenterLayout->addWidget(mUpdatesRemove);
767 updatesCenterLayout->addSpacing(10);
759 updatesCenterLayout->addLayout(updatesManualLayout); 768 updatesCenterLayout->addLayout(updatesManualLayout);
760 updatesCenterLayout->addWidget(mUpdatesManual); 769 updatesCenterLayout->addWidget(mUpdatesManual);
761 770
762 QWidget *dummyWidget = new QWidget; 771 QWidget *dummyWidget = new QWidget;
763 dummyWidget->setLayout(updatesCenterLayout); 772 dummyWidget->setLayout(updatesCenterLayout);
764 centralScrollArea->setWidgetResizable(true); 773 centralScrollArea->setWidgetResizable(true);
765 centralScrollArea->setWidget(dummyWidget); 774 centralScrollArea->setWidget(dummyWidget);
766 centralScrollArea->setFrameShape(QFrame::NoFrame); 775 centralScrollArea->setFrameShape(QFrame::NoFrame);
767 centralScrollArea->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); 776 centralScrollArea->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
768 777
769 updatesMainLayout->addLayout(updatesHeaderLayout);
770 updatesMainLayout->addWidget(centralScrollArea); 778 updatesMainLayout->addWidget(centralScrollArea);
771 updatesCenterLayout->addSpacerItem(new QSpacerItem(0, 0, 779 updatesCenterLayout->addSpacerItem(new QSpacerItem(0, 0,
772 QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding)); 780 QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding));
773 theWidget->setLayout(updatesMainLayout); 781 theWidget->setLayout(updatesMainLayout);
774 return theWidget; 782 return theWidget;
1023 mUpdatesHeader->setText("<h2>" + tr("Certificates unchanged") + 1031 mUpdatesHeader->setText("<h2>" + tr("Certificates unchanged") +
1024 "</h2>"); 1032 "</h2>");
1025 mInstallButton->setText(" " + tr("Install certificates again")); 1033 mInstallButton->setText(" " + tr("Install certificates again"));
1026 } else { 1034 } else {
1027 mQuitButton->setText(" " + tr("Quit without saving")); 1035 mQuitButton->setText(" " + tr("Quit without saving"));
1028 mUpdatesHeader->setText("<h2>" + tr("Changes to certificate stores (%1)") 1036 mUpdatesHeader->setText("<h2>" + tr("Outstanding changes (%1)")
1029 .arg(changeCount()) + 1037 .arg(changeCount()) +
1030 "</h2>"); 1038 "</h2>");
1031 mInstallButton->setText(" " + tr("Apply changes")); 1039 mInstallButton->setText(" " + tr("Apply changes"));
1032 } 1040 }
1033 1041
1034 if (mUpdatesManual->certificates().size()) { 1042 if (mUpdatesManual->certificates().size()) {
1035 mUpdatesDetailsManual->show(); 1043 mUpdatesDetailsManual->show();
1036 mUpdatesDetailsManual->setIcon(QIcon(":/img/dialog-information_16px.png")); 1044 mUpdatesDetailsManual->setIcon(QIcon(":/img/dialog-information_16px.png"));
1037 mUpdatesDetailsManual->setToolTip(tr("Show details")); 1045 mUpdatesDetailsManual->setToolTip(tr("Show details"));
1038 mUpdatesManualCertificates->show();
1039 } else { 1046 } else {
1040 mUpdatesDetailsManual->hide(); 1047 mUpdatesDetailsManual->hide();
1041 mUpdatesManualCertificates->hide();
1042 mUpdatesManual->hide(); 1048 mUpdatesManual->hide();
1043 } 1049 }
1050 mUpdatesManualCertificates->setText("<h2>" +
1051 tr("Manually changed certificates (%1)").arg(mUpdatesManual->certificates().size()) +
1052 "</h2>");
1044 1053
1045 if (mUpdatesNew->certificates().size()) { 1054 if (mUpdatesNew->certificates().size()) {
1046 mUpdatesNewCertificates->setText("<h3>" + 1055 mUpdatesNewCertificates->setText("<h3>" +
1047 tr("Install new trusted certificates (%1/%2)") 1056 tr("Install new trusted certificates (%1/%2)")
1048 .arg(mUpdatesNew->selectedCertCount()) 1057 .arg(mUpdatesNew->selectedCertCount())
1070 mUpdatesDetailsRemove->show(); 1079 mUpdatesDetailsRemove->show();
1071 } else { 1080 } else {
1072 mUpdatesRemoveCertificates->hide(); 1081 mUpdatesRemoveCertificates->hide();
1073 mUpdatesDetailsRemove->hide(); 1082 mUpdatesDetailsRemove->hide();
1074 mUpdatesRemove->hide(); 1083 mUpdatesRemove->hide();
1084 }
1085
1086 /* Update the details header */
1087 if (mUpdatesRemove->certificates().size() ||
1088 mUpdatesNew->certificates().size()) {
1089 mUpdatesDetailsHeader->setText("<h2>" +
1090 tr("New, recommended changes (%1/%2)")
1091 .arg(mUpdatesRemove->selectedCertCount() +
1092 mUpdatesNew->selectedCertCount())
1093 .arg(mUpdatesRemove->certificates().size() +
1094 mUpdatesNew->certificates().size()) +
1095 "</h2>");
1096 } else {
1097 mUpdatesDetailsHeader->setText(QString::fromLatin1("<h2>") +
1098 tr("No new recommendations") + QString::fromLatin1("</h2>"));
1099 }
1100
1101 if (mListToInstall.isValid()) {
1102 mCertListVersion->setText(tr("Certificatelist from:"));
1103 mCertListVersionContents->setText(QLocale::system().toString(
1104 mListToInstall.date().toLocalTime(), DATETIME_FORMAT));
1105 } else {
1106 if (mInstalledList.isValid()) {
1107 mCertListVersion->setText(tr("Currently installed Certificatelist:"));
1108 mCertListVersionContents->setText(QLocale::system().toString(
1109 mInstalledList.date().toLocalTime(), DATETIME_FORMAT));
1110 } else {
1111 mCertListVersion->setText(tr("No Certificatelist installed."));
1112 mCertListVersionContents->setText("");
1113 }
1075 } 1114 }
1076 } 1115 }
1077 1116
1078 void MainWindow::loadCertificateList() 1117 void MainWindow::loadCertificateList()
1079 { 1118 {
1136 } 1175 }
1137 } 1176 }
1138 } 1177 }
1139 } 1178 }
1140 1179
1141 if (mInstalledList.date().isValid()) {
1142 mLastCertUpdateContents->setText(QLocale::system().toString(mInstalledList.date().toLocalTime(),
1143 DATETIME_FORMAT));
1144 mLastCertUpdate->show();
1145 mLastCertUpdateContents->show();
1146 }
1147 mUpdatesManualCertificates->setText("<h3>" +
1148 tr("Manually changed certificates (%1)").arg(0) +
1149 "</h3>");
1150 listChanged(0); 1180 listChanged(0);
1151 } 1181 }
1152 1182
1153 void MainWindow::installerError(const QString& errMsg) { 1183 void MainWindow::installerError(const QString& errMsg) {
1154 QMessageBox::warning(this, tr("Error executing update"), errMsg); 1184 QMessageBox::warning(this, tr("Error executing update"), errMsg);
1313 mUpdatesManual->addCertificate(cert, state); 1343 mUpdatesManual->addCertificate(cert, state);
1314 } 1344 }
1315 else { 1345 else {
1316 mUpdatesManual->removeCertificate(cert); 1346 mUpdatesManual->removeCertificate(cert);
1317 } 1347 }
1318
1319 mUpdatesManualCertificates->setText("<h3>" +
1320 tr("Manually changed certificates (%1)")
1321 .arg(mUpdatesManual->certificates().size()) +
1322 "</h3>");
1323 } 1348 }
1324 1349
1325 void MainWindow::removeFromManual(bool state, const Certificate &cert) 1350 void MainWindow::removeFromManual(bool state, const Certificate &cert)
1326 { 1351 {
1327 mUpdatesManual->removeCertificate(cert); 1352 mUpdatesManual->removeCertificate(cert);
1328
1329 mUpdatesManualCertificates->setText("<h3>" +
1330 tr("Manually changed certificates (%1)")
1331 .arg(mUpdatesManual->certificates().size()) +
1332 "</h3>");
1333 1353
1334 if (cert.isInstallCert()) { 1354 if (cert.isInstallCert()) {
1335 mInstallList->setCertState(state, cert); 1355 mInstallList->setCertState(state, cert);
1336 } 1356 }
1337 else { 1357 else {
1382 default: mUpdatesWidget->show(); break; 1402 default: mUpdatesWidget->show(); break;
1383 } 1403 }
1384 return; 1404 return;
1385 } 1405 }
1386 1406
1407 static void deactivateDetailsButton(QPushButton *btn) {
1408 btn->setToolTip(QObject::tr("Hide details"));
1409 btn->setText(QObject::tr("Less"));
1410 btn->setIcon(QIcon(":/img/dialog-information_grey_16px.png"));
1411 }
1412
1413 static void activateDetailsButton(QPushButton *btn) {
1414 btn->setToolTip(QObject::tr("Show details"));
1415 btn->setText(QObject::tr("Details"));
1416 btn->setIcon(QIcon(":/img/dialog-information_16px.png"));
1417 }
1418
1387 void MainWindow::toggleUpdatesNew() { 1419 void MainWindow::toggleUpdatesNew() {
1388 if (!mUpdatesNew->isVisible()) { 1420 if (!mUpdatesNew->isVisible()) {
1389 mUpdatesDetailsNew->setToolTip(tr("Hide details"));
1390 mUpdatesDetailsNew->setIcon(QIcon(":/img/dialog-information_grey_16px.png"));
1391 mUpdatesNew->show(); 1421 mUpdatesNew->show();
1422 deactivateDetailsButton(mUpdatesDetailsNew);
1392 } 1423 }
1393 else { 1424 else {
1394 mUpdatesNew->hide(); 1425 mUpdatesNew->hide();
1395 mUpdatesDetailsNew->setToolTip(tr("Show details")); 1426 activateDetailsButton(mUpdatesDetailsNew);
1396 mUpdatesDetailsNew->setIcon(QIcon(":/img/dialog-information_16px.png"));
1397 } 1427 }
1398 } 1428 }
1399 1429
1400 void MainWindow::toggleUpdatesRemove() { 1430 void MainWindow::toggleUpdatesRemove() {
1401 if (!mUpdatesRemove->isVisible()) { 1431 if (!mUpdatesRemove->isVisible()) {
1402 mUpdatesDetailsRemove->setToolTip(tr("Hide details"));
1403 mUpdatesDetailsRemove->setIcon(QIcon(":/img/dialog-information_grey_16px.png"));
1404 mUpdatesRemove->show(); 1432 mUpdatesRemove->show();
1433 deactivateDetailsButton(mUpdatesDetailsRemove);
1405 } 1434 }
1406 else { 1435 else {
1407 mUpdatesRemove->hide(); 1436 mUpdatesRemove->hide();
1408 mUpdatesDetailsRemove->setToolTip(tr("Show details")); 1437 activateDetailsButton(mUpdatesDetailsRemove);
1409 mUpdatesDetailsRemove->setIcon(QIcon(":/img/dialog-information_16px.png"));
1410 } 1438 }
1411 } 1439 }
1412 1440
1413 void MainWindow::toggleUpdatesManual() { 1441 void MainWindow::toggleUpdatesManual() {
1414 if (!mUpdatesManual->isVisible()) { 1442 if (!mUpdatesManual->isVisible()) {
1415 mUpdatesDetailsManual->setToolTip(tr("Hide details"));
1416 mUpdatesDetailsManual->setIcon(QIcon(":/img/dialog-information_grey_16px.png"));
1417 mUpdatesManual->show(); 1443 mUpdatesManual->show();
1444 deactivateDetailsButton(mUpdatesDetailsManual);
1418 } 1445 }
1419 else { 1446 else {
1420 mUpdatesDetailsManual->setToolTip(tr("Show details"));
1421 mUpdatesDetailsManual->setIcon(QIcon(":/img/dialog-information_16px.png"));
1422 mUpdatesManual->hide(); 1447 mUpdatesManual->hide();
1448 activateDetailsButton(mUpdatesDetailsManual);
1423 } 1449 }
1424 } 1450 }
1425 1451
1426 void MainWindow::closeEvent(QCloseEvent *event) 1452 void MainWindow::closeEvent(QCloseEvent *event)
1427 { 1453 {

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