UpdateManager::UpdateManager(QObject *parent) : QObject(parent), isAutomaticCheck(false) { // is this the first time this version was run? QSettings settings; settings.beginGroup("UpdateManager"); if (settings.contains("DontCheckForUpdates") && settings.value("DontCheckForUpdates") == "TRUE") return; if (settings.contains("LastVersionUsed")) { // we have checked at least once before if (settings.value("LastVersionUsed").toString() != subsurface_git_version()) { // we have just updated - wait two weeks before you check again settings.setValue("LastVersionUsed", QString(subsurface_git_version())); settings.setValue("NextCheck", QDateTime::currentDateTime().addDays(14).toString(Qt::ISODate)); } else { // is it time to check again? QString nextCheckString = settings.value("NextCheck").toString(); QDateTime nextCheck = QDateTime::fromString(nextCheckString, Qt::ISODate); if (nextCheck > QDateTime::currentDateTime()) return; } } settings.setValue("LastVersionUsed", QString(subsurface_git_version())); settings.setValue("NextCheck", QDateTime::currentDateTime().addDays(14).toString(Qt::ISODate)); checkForUpdates(true); }
void print_version() { if (version_printed) return; printf("Subsurface v%s,\n", subsurface_git_version()); printf("built with libdivecomputer v%s\n", dc_version(NULL)); print_qt_versions(); int git_maj, git_min, git_rev; git_libgit2_version(&git_maj, &git_min, &git_rev); printf("built with libgit2 %d.%d.%d\n", git_maj, git_min, git_rev); version_printed = true; }
QString ConfigureDiveComputer::dc_open(device_data_t *data) { FILE *fp = NULL; dc_status_t rc; if (data->libdc_log) fp = subsurface_fopen(logfile_name, "w"); data->libdc_logfile = fp; rc = dc_context_new(&data->context); if (rc != DC_STATUS_SUCCESS) { return tr("Unable to create libdivecomputer context"); } if (fp) { dc_context_set_loglevel(data->context, DC_LOGLEVEL_ALL); dc_context_set_logfunc(data->context, logfunc, fp); fprintf(data->libdc_logfile, "Subsurface: v%s, ", subsurface_git_version()); fprintf(data->libdc_logfile, "built with libdivecomputer v%s\n", dc_version(NULL)); } rc = divecomputer_device_open(data); if (rc != DC_STATUS_SUCCESS) { report_error(errmsg(rc)); } else { rc = dc_device_open(&data->device, data->context, data->descriptor, data->iostream); } if (rc != DC_STATUS_SUCCESS) { return tr("Could not a establish connection to the dive computer."); } setState(OPEN); return NULL; }
SubsurfaceAbout::SubsurfaceAbout(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f) { ui.setupUi(this); setWindowModality(Qt::ApplicationModal); QString versionString(subsurface_git_version()); QStringList readableVersions = QStringList() << "4.5.95" << "4.6 Beta 0" << "4.5.96" << "4.6 Beta 1" << "4.5.97" << "4.6 Beta 2"; if (readableVersions.contains(versionString)) versionString = readableVersions[readableVersions.indexOf(versionString) + 1]; ui.aboutLabel->setText(tr("<span style='font-size: 18pt; font-weight: bold;'>" "Subsurface %1 </span><br><br>" "Multi-platform divelog software<br>" "<span style='font-size: 8pt'>" "Linus Torvalds, Dirk Hohndel, Tomaz Canabrava, and others, 2011-2017" "</span>").arg(versionString)); QShortcut *close = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_W), this); connect(close, SIGNAL(activated()), this, SLOT(close())); QShortcut *quit = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q), this); connect(quit, SIGNAL(activated()), parent, SLOT(close())); }
static void print_version() { printf("Subsurface v%s, ", subsurface_git_version()); printf("built with libdivecomputer v%s\n", dc_version(NULL)); }