Changeset 139 in tspsg-svn for trunk/src/mainwindow.cpp


Ignore:
Timestamp:
Sep 29, 2010, 11:21:46 PM (14 years ago)
Author:
laleppa
Message:

+ Automatically check for updates at the given interval functionality (Windows only at this moment).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/mainwindow.cpp

    r138 r139  
    8181#endif // HANDHELD
    8282        connect(actionSettingsPreferences, SIGNAL(triggered()), SLOT(actionSettingsPreferencesTriggered()));
    83 #ifdef Q_OS_WIN32
    84         connect(actionHelpCheck4Updates, SIGNAL(triggered()), SLOT(actionHelpCheck4UpdatesTriggered()));
    85 #endif // Q_OS_WIN32
     83        if (actionHelpCheck4Updates != NULL)
     84                connect(actionHelpCheck4Updates, SIGNAL(triggered()), SLOT(actionHelpCheck4UpdatesTriggered()));
    8685        connect(actionSettingsLanguageAutodetect, SIGNAL(triggered(bool)), SLOT(actionSettingsLanguageAutodetectTriggered(bool)));
    8786        connect(groupSettingsLanguageList, SIGNAL(triggered(QAction *)), SLOT(groupSettingsLanguageListTriggered(QAction *)));
     
    123122        }
    124123        setWindowModified(false);
     124
     125        if ((actionHelpCheck4Updates != NULL)
     126                && (settings->value("Check4Updates/Enabled", DEF_CHECK_FOR_UPDATES).toBool())
     127                && (QDate(qvariant_cast<QDate>(settings->value("Check4Updates/LastAttempt"))).daysTo(QDate::currentDate()) >= settings->value("Check4Updates/Interval", DEF_UPDATE_CHECK_INTERVAL).toInt())) {
     128                check4Updates(true);
     129        }
    125130}
    126131
     
    430435#endif // HANDHELD
    431436
    432 #ifdef Q_OS_WIN32
    433437void MainWindow::actionHelpCheck4UpdatesTriggered()
    434438{
     
    438442        }
    439443
    440         QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
    441         QProcess::execute("updater/Update.exe -name=\"TSPSG: TSP Solver and Generator\" -check=\"freeupdate\"");
    442         QApplication::restoreOverrideCursor();
    443 }
    444 #endif // Q_OS_WIN32
     444        check4Updates();
     445}
    445446
    446447void MainWindow::actionHelpAboutTriggered()
     
    10401041}
    10411042
     1043void MainWindow::check4Updates(bool silent)
     1044{
     1045#ifdef Q_OS_WIN32
     1046        if (silent)
     1047                QProcess::startDetached("updater/Update.exe -name=\"TSPSG: TSP Solver and Generator\" -check=\"freeupdate\" -silentcheck");
     1048        else {
     1049                QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
     1050                QProcess::execute("updater/Update.exe -name=\"TSPSG: TSP Solver and Generator\" -check=\"freeupdate\"");
     1051                QApplication::restoreOverrideCursor();
     1052        }
     1053#endif
     1054        settings->setValue("Check4Updates/LastAttempt", QDate::currentDate().toString(Qt::ISODate));
     1055}
     1056
    10421057void MainWindow::closeEvent(QCloseEvent *ev)
    10431058{
     
    11411156                ev->accept();
    11421157        }
    1143 }
    1144 
    1145 bool MainWindow::hasUpdater() const
    1146 {
    1147 #ifdef Q_OS_WIN32
    1148         return QFile::exists("updater/Update.exe");
    1149 #else // Q_OS_WIN32
    1150         return false;
    1151 #endif // Q_OS_WIN32
    11521158}
    11531159
     
    14441450#endif // HANDHELD
    14451451
    1446 #ifdef Q_OS_WIN32
    1447         actionHelpCheck4Updates->setText(tr("Check for &Updates..."));
     1452        if (actionHelpCheck4Updates != NULL) {
     1453                actionHelpCheck4Updates->setText(tr("Check for &Updates..."));
    14481454#ifndef QT_NO_STATUSTIP
    1449         actionHelpCheck4Updates->setStatusTip(tr("Check for %1 updates").arg(QApplication::applicationName()));
     1455                actionHelpCheck4Updates->setStatusTip(tr("Check for %1 updates").arg(QApplication::applicationName()));
    14501456#endif // QT_NO_STATUSTIP
    1451 #endif // Q_OS_WIN32
     1457        }
    14521458}
    14531459
     
    15931599#endif // HANDHELD
    15941600
    1595 #ifdef Q_OS_WIN32
    1596         actionHelpCheck4Updates = new QAction(this);
    1597         actionHelpCheck4Updates->setIcon(GET_ICON("system-software-update"));
    1598         actionHelpCheck4Updates->setEnabled(hasUpdater());
    1599         menuHelp->insertAction(actionHelpAboutQt, actionHelpCheck4Updates);
    1600         menuHelp->insertSeparator(actionHelpAboutQt);
    1601 #endif // Q_OS_WIN32
     1601        if (hasUpdater()) {
     1602                actionHelpCheck4Updates = new QAction(this);
     1603                actionHelpCheck4Updates->setIcon(GET_ICON("system-software-update"));
     1604                actionHelpCheck4Updates->setEnabled(hasUpdater());
     1605                menuHelp->insertAction(actionHelpAboutQt, actionHelpCheck4Updates);
     1606                menuHelp->insertSeparator(actionHelpAboutQt);
     1607        } else
     1608                actionHelpCheck4Updates = NULL;
    16021609
    16031610        spinCities->setMaximum(MAX_NUM_CITIES);
Note: See TracChangeset for help on using the changeset viewer.