changeset 693:0fc1a20adaff

(Issue 27) Change Quit button text depending on changes or no changes.
author Andre Heinecke <andre.heinecke@intevation.de>
date Tue, 01 Jul 2014 16:43:58 +0200
parents 3791a277f00b
children 25a73bfec359
files ui/mainwindow.cpp ui/mainwindow.h
diffstat 2 files changed, 15 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/ui/mainwindow.cpp	Tue Jul 01 16:39:28 2014 +0200
+++ b/ui/mainwindow.cpp	Tue Jul 01 16:43:58 2014 +0200
@@ -549,8 +549,8 @@
 
     QPushButton *searchUpdates = new QPushButton(tr("Check for updates"));
     searchUpdates->setIcon(QIcon(":/img/edit-find.png"));
-    QPushButton *quitButton = new QPushButton(tr("Quit without saving"));
-    quitButton->setIcon(QIcon(":/img/application-exit.png"));
+    mQuitButton = new QPushButton(tr("Quit without saving"));
+    mQuitButton->setIcon(QIcon(":/img/application-exit.png"));
     QPushButton *installButton = new QPushButton(tr("Install updates"));
 #ifdef Q_OS_WIN
     if (is_admin()) {
@@ -560,12 +560,12 @@
 #else
     installButton->setIcon(QIcon(":/img/view-refresh.png"));
 #endif
-    connect(quitButton, SIGNAL(clicked()), this, SLOT(closeApp()));
+    connect(mQuitButton, SIGNAL(clicked()), this, SLOT(closeApp()));
     connect(installButton, SIGNAL(clicked()), this, SLOT(checkAndInstallCerts()));
     connect(searchUpdates, SIGNAL(clicked()), this, SLOT(checkUpdates()));
 
     updatesHeaderActionLayout->addWidget(installButton);
-    updatesHeaderActionLayout->addWidget(quitButton);
+    updatesHeaderActionLayout->addWidget(mQuitButton);
     updatesHeaderSearchLayout->insertStretch(0, 1);
     updatesHeaderSearchLayout->addWidget(searchUpdates);
 
@@ -807,6 +807,15 @@
 
 void MainWindow::listChanged(int selected)
 {
+    if (mUpdatesRemove->selectedCertCount() +
+        mUpdatesNew->selectedCertCount() +
+        mUpdatesManual->selectedCertCount() == 0) {
+        /* No changes */
+        mQuitButton->setText(tr("Quit"));
+    } else {
+        mQuitButton->setText(tr("Quit without saving"));
+    }
+
     mUpdatesHeader->setText("<h2>" + tr("Updates (%1/%2)")
             .arg(mUpdatesRemove->selectedCertCount() + mUpdatesNew->selectedCertCount())
             .arg(mUpdatesRemove->certificates().size() + mUpdatesNew->certificates().size()) +
--- a/ui/mainwindow.h	Tue Jul 01 16:39:28 2014 +0200
+++ b/ui/mainwindow.h	Tue Jul 01 16:43:58 2014 +0200
@@ -30,6 +30,7 @@
 class QMenu;
 class QAction;
 class QTimer;
+class QPushButton;
 
 
 class MainWindow : public QMainWindow
@@ -186,6 +187,7 @@
     QAction *mQuitAction;
     CurrentState mCurState;
     QMenuBar *mMenuBar;
+    QPushButton *mQuitButton;
 
     /* The current list that should be installed */
     CertificateList mListToInstall;

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