mirror of https://github.com/vitalif/openscad
79 lines
1.9 KiB
Plaintext
79 lines
1.9 KiB
Plaintext
/*
|
|
* Copyright (C) 2008 Remko Troncon. BSD license
|
|
* Copyright (C) 2013 Marius Kintel. BSD license
|
|
*/
|
|
|
|
#include "SparkleAutoUpdater.h"
|
|
#include "PlatformUtils.h"
|
|
|
|
#include <Cocoa/Cocoa.h>
|
|
#include <Sparkle/Sparkle.h>
|
|
|
|
NSString *const SUEnableSnapshotsKey = @"SUEnableSnapshots";
|
|
|
|
class SparkleAutoUpdater::Private
|
|
{
|
|
public:
|
|
SUUpdater* updater;
|
|
};
|
|
|
|
SparkleAutoUpdater::SparkleAutoUpdater()
|
|
{
|
|
d = new Private;
|
|
|
|
d->updater = [SUUpdater sharedUpdater];
|
|
[d->updater retain];
|
|
|
|
updateFeed();
|
|
}
|
|
|
|
SparkleAutoUpdater::~SparkleAutoUpdater()
|
|
{
|
|
[d->updater release];
|
|
delete d;
|
|
}
|
|
|
|
void SparkleAutoUpdater::checkForUpdates()
|
|
{
|
|
[d->updater checkForUpdatesInBackground];
|
|
}
|
|
|
|
void SparkleAutoUpdater::setAutomaticallyChecksForUpdates(bool on)
|
|
{
|
|
[d->updater setAutomaticallyChecksForUpdates:on];
|
|
}
|
|
|
|
bool SparkleAutoUpdater::automaticallyChecksForUpdates()
|
|
{
|
|
return [d->updater automaticallyChecksForUpdates];
|
|
}
|
|
|
|
void SparkleAutoUpdater::setEnableSnapshots(bool on)
|
|
{
|
|
[[NSUserDefaults standardUserDefaults] setBool:on forKey:SUEnableSnapshotsKey];
|
|
updateFeed();
|
|
}
|
|
|
|
bool SparkleAutoUpdater::enableSnapshots()
|
|
{
|
|
return [[NSUserDefaults standardUserDefaults] boolForKey:SUEnableSnapshotsKey];
|
|
}
|
|
|
|
QString SparkleAutoUpdater::lastUpdateCheckDate()
|
|
{
|
|
NSDate *date = [d->updater lastUpdateCheckDate];
|
|
NSString *datestring = date ? [NSString stringWithFormat:@"Last checked: %@", date] : @"";
|
|
return QString::fromUtf8([datestring UTF8String]);
|
|
}
|
|
|
|
#define STRINGIFY(x) #x
|
|
#define TOSTRING(x) STRINGIFY(x)
|
|
|
|
void SparkleAutoUpdater::updateFeed()
|
|
{
|
|
NSString *urlstring = [NSString stringWithFormat:@"http://files.openscad.org/appcast%@.xml", enableSnapshots() ? @"-snapshots" : @""];
|
|
[d->updater setFeedURL:[NSURL URLWithString:urlstring]];
|
|
NSString *userAgent = [NSString stringWithFormat:@"OpenSCAD %s %s", TOSTRING(OPENSCAD_VERSION), PlatformUtils::sysinfo(false).c_str()];
|
|
[d->updater setUserAgentString: userAgent];
|
|
}
|