Support Sparkle's Install on Quit

felipesanches-svg
Marius Kintel 2013-02-07 15:01:31 -05:00
parent a7b80d64dd
commit 4bd23c9091
4 changed files with 28 additions and 2 deletions

View File

@ -323,11 +323,12 @@ macx {
src/EventFilter.h \
src/AutoUpdater.h \
src/SparkleAutoUpdater.h \
src/CocoaInitializer.h
src/CocoaInitializer.h \
src/CocoaUtils.h
SOURCES += src/AppleEvents.cc \
src/AutoUpdater.cc
OBJECTIVE_SOURCES += src/SparkleAutoUpdater.mm \
src/CocoaInitializer.mm
src/CocoaUtils.mm
}
isEmpty(PREFIX):PREFIX = /usr/local

10
src/CocoaUtils.h Normal file
View File

@ -0,0 +1,10 @@
#ifndef COCOAUTILS_H_
#define COCOAUTILS_H_
class CocoaUtils
{
public:
static void endApplication();
};
#endif

9
src/CocoaUtils.mm Normal file
View File

@ -0,0 +1,9 @@
#include "CocoaUtils.h"
#import <Foundation/Foundation.h>
void CocoaUtils::endApplication()
{
[[NSNotificationCenter defaultCenter]
postNotificationName:@"NSApplicationWillTerminateNotification"
object:nil];
}

View File

@ -49,6 +49,9 @@
#include "ThrownTogetherRenderer.h"
#include "csgtermnormalizer.h"
#include "AutoUpdater.h"
#ifdef Q_OS_MAC
#include "CocoaUtils.h"
#endif
#include <QMenu>
#include <QTime>
@ -1843,6 +1846,9 @@ void MainWindow::quit()
QApplication::sendEvent(QApplication::instance(), &ev);
if (ev.isAccepted()) QApplication::instance()->quit();
// FIXME: Cancel any CGAL calculations
#ifdef Q_OS_MAC
CocoaUtils::endApplication();
#endif
}
void MainWindow::consoleOutput(const std::string &msg, void *userdata)