diff options
| author | Remko Tronçon <git@el-tramo.be> | 2009-11-27 23:37:37 (GMT) | 
|---|---|---|
| committer | Remko Tronçon <git@el-tramo.be> | 2009-11-27 23:37:37 (GMT) | 
| commit | 91570ab79252b37afeae3b230cb6023c5b52547a (patch) | |
| tree | 011d77857557a28671a63a444dcf8e10db64ab3f | |
| parent | ba717874781a33ea40a1aea1ad8b9efce3580fc2 (diff) | |
| download | swift-91570ab79252b37afeae3b230cb6023c5b52547a.zip swift-91570ab79252b37afeae3b230cb6023c5b52547a.tar.bz2 | |
Integrated Sparkle auto-updater.
| -rw-r--r-- | BuildTools/SCons/Tools/AppBundle.py | 6 | ||||
| -rw-r--r-- | SConstruct | 1 | ||||
| -rw-r--r-- | SwifTools/AutoUpdater/DummyAutoUpdater.h | 10 | ||||
| -rw-r--r-- | SwifTools/AutoUpdater/PlatformAutoUpdaterFactory.cpp | 19 | ||||
| -rw-r--r-- | SwifTools/AutoUpdater/PlatformAutoUpdaterFactory.h | 9 | ||||
| -rw-r--r-- | SwifTools/SConscript | 3 | ||||
| -rw-r--r-- | Swift/QtUI/QtSwift.cpp | 14 | ||||
| -rw-r--r-- | Swift/QtUI/QtSwift.h | 2 | ||||
| -rw-r--r-- | Swift/QtUI/SConscript | 145 | ||||
| -rw-r--r-- | Swift/QtUI/main.cpp | 3 | ||||
| -rw-r--r-- | Swiften/Application/MacOSX/MacOSXApplication.h | 2 | ||||
| -rw-r--r-- | Swiften/Application/SConscript | 3 | 
12 files changed, 143 insertions, 74 deletions
| diff --git a/BuildTools/SCons/Tools/AppBundle.py b/BuildTools/SCons/Tools/AppBundle.py index 2849435..3d06e97 100644 --- a/BuildTools/SCons/Tools/AppBundle.py +++ b/BuildTools/SCons/Tools/AppBundle.py @@ -1,45 +1,49 @@  import SCons.Util  def generate(env) : -  def createAppBundle(env, bundle, version = "1.0", resources = [], info = {}) : +  def createAppBundle(env, bundle, version = "1.0", resources = [], frameworks = [], info = {}) :      bundleContentsDir = bundle + ".app" + "/Contents"      resourcesDir = bundleContentsDir + "/Resources" +    frameworksDir = bundleContentsDir + "/Frameworks"      env.Install(bundleContentsDir + "/MacOS", bundle)      env.WriteVal(bundleContentsDir + "/PkgInfo", env.Value("APPL\77\77\77\77"))      infoDict = {          "CFBundleDevelopmentRegion" : "English",          "CFBundleExecutable" : bundle,          "CFBundleIdentifier" : "im.swift." + bundle,          "CFBundleInfoDictionaryVersion" : "6.0",          "CFBundleName" : bundle,          "CFBundlePackageType" : "APPL",          "CFBundleSignature": "\77\77\77\77",          "CFBundleVersion" : version,          "CFBundleIconFile" : bundle,          "NSPrincipalClass" : "NSApplication",          "NSHumanReadableCopyright" : unichr(0xA9) + " 2009 Swift Development Team.\nAll Rights Reserved."        }      infoDict.update(info)      plist = """<?xml version="1.0" encoding="UTF-8"?>    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">    <plist version="1.0">    <dict>    """      for key, value in infoDict.items() :        plist += "<key>" + key + "</key>\n"        plist += "<string>" + value.encode("utf-8") + "</string>\n"      plist += """</dict>    </plist>    """      env.WriteVal(bundleContentsDir + "/Info.plist", env.Value(plist))      for resource in resources :        env.Install(resourcesDir, resource) +    for framework in frameworks : +      env.Install(frameworksDir, framework) +    env.AddMethod(createAppBundle, "AppBundle")  def exists(env) :    return env["PLATFORM"] == "darwin" @@ -179,96 +179,97 @@ if conf.CheckLib("z") :  	env["ZLIB_FLAGS"] = ""  else :  	SConscript("3rdParty/ZLib/SConscript")  if conf.CheckLib("dl") :  	env.Append(LIBS = ["dl"])  if conf.CheckLib("c") :  	env.Append(LIBS = ["c"])  if conf.CheckLib("resolv") :  	env.Append(LIBS = ["resolv"])  # Expat  if conf.CheckCHeader("expat.h") and conf.CheckLib("expat") :  	env["HAVE_EXPAT"] = 1  	env["EXPAT_FLAGS"] = { "LIBS": ["expat"] }  conf.Finish()  # Xss  env["HAVE_XSS"] = 0  if env["PLATFORM"] != "win32" and env["PLATFORM"] != "darwin" :  	xss_flags = {  			"LIBPATH": ["/usr/X11R6/lib"],  			"LIBS": ["X11", "Xss"]  		}  	xss_env = conf_env.Clone()  	xss_env.MergeFlags(xss_flags)  	conf = Configure(xss_env)  	if conf.CheckFunc("XScreenSaverQueryExtension") :  		env["HAVE_XSS"] = 1  		env["XSS_FLAGS"] = xss_flags  	conf.Finish()  # Sparkle  env["HAVE_SPARKLE"] = 0  if env["PLATFORM"] == "darwin" :  	sparkle_flags = {  			"FRAMEWORKPATH": ["/Library/Frameworks"],  			"FRAMEWORKS": ["Sparkle"]  		}  	sparkle_env = conf_env.Clone()  	sparkle_env.MergeFlags(sparkle_flags)  	conf = Configure(sparkle_env, custom_tests = { "CheckObjCHeader" : checkObjCHeader })  	if conf.CheckObjCHeader("Sparkle/Sparkle.h") :  		env["HAVE_SPARKLE"] = 1  		env["SPARKLE_FLAGS"] = sparkle_flags +		env["SPARKLE_FRAMEWORK"] = "/Library/Frameworks/Sparkle.framework"  	conf.Finish()  # LibXML  conf = Configure(conf_env)  if conf.CheckCHeader("libxml/parser.h") and conf.CheckLib("xml2") :  	env["HAVE_LIBXML"] = 1  	env["LIBXML_FLAGS"] = { "LIBS": ["xml2"] }  conf.Finish()  if not env.get("HAVE_LIBXML", 0) :  	libxml_env = conf_env.Clone()  	libxml_env.Append(CPPPATH = ["/usr/include/libxml2"])  	conf = Configure(libxml_env)  	if conf.CheckCHeader("libxml/parser.h") and conf.CheckLib("xml2") :  		env["HAVE_LIBXML"] = 1  		env["LIBXML_FLAGS"] = { "CPPPATH": ["/usr/include/libxml2"], "LIBS": ["xml2"] }  	conf.Finish()  # Bundled expat  bundledExpat = False  if not env.get("HAVE_EXPAT", 0) :  	print "Expat or LibXML not found. Using bundled Expat"  	SConscript("3rdParty/Expat/SConscript")  	env["HAVE_EXPAT"] = 1  	bundledExpat = True  # Qt  if env["qt"] :  	env["QTDIR"] = env["qt"]  # OpenSSL  openssl_env = conf_env.Clone()  use_openssl = bool(env["openssl"])  openssl_prefix = env["openssl"] if isinstance(env["openssl"], str) else ""  openssl_flags = {}  if openssl_prefix :  	openssl_flags = { "CPPPATH": [os.path.join(openssl_prefix, "include")] }  	if env["PLATFORM"] == "win32" :   		openssl_flags["LIBPATH"] = [os.path.join(openssl_prefix, "lib", "VC")]  		env["OPENSSL_DIR"] = openssl_prefix  	else :  		openssl_flags["LIBPATH"] = [os.path.join(openssl_prefix, "lib")]  	openssl_env.MergeFlags(openssl_flags)  openssl_conf = Configure(openssl_env)  if use_openssl and openssl_conf.CheckCHeader("openssl/ssl.h") :  	env["HAVE_OPENSSL"] = 1  	env["OPENSSL_FLAGS"] = openssl_flags diff --git a/SwifTools/AutoUpdater/DummyAutoUpdater.h b/SwifTools/AutoUpdater/DummyAutoUpdater.h new file mode 100644 index 0000000..bdddb2a --- /dev/null +++ b/SwifTools/AutoUpdater/DummyAutoUpdater.h @@ -0,0 +1,10 @@ +#pragma once + +#include "SwifTools/AutoUpdater/AutoUpdater.h" + +namespace Swift { +	class DummyAutoUpdater : public AutoUpdater { +		public: +			void checkForUpdates() {} +	}; +} diff --git a/SwifTools/AutoUpdater/PlatformAutoUpdaterFactory.cpp b/SwifTools/AutoUpdater/PlatformAutoUpdaterFactory.cpp new file mode 100644 index 0000000..2049a4e --- /dev/null +++ b/SwifTools/AutoUpdater/PlatformAutoUpdaterFactory.cpp @@ -0,0 +1,19 @@ +#include "SwifTools/AutoUpdater/PlatformAutoUpdaterFactory.h" + +#ifdef HAVE_SPARKLE +#include "SwifTools/AutoUpdater/SparkleAutoUpdater.h" +#else +#include "SwifTools/AutoUpdater/DummyAutoUpdater.h" +#endif + +namespace Swift { + +AutoUpdater* PlatformAutoUpdaterFactory::createAutoUpdater(const String& appcastURL) { +#ifdef HAVE_SPARKLE +	return new SparkleAutoUpdater(appcastURL); +#else +	return new DummyAutoUpdater(); +#endif +} + +} diff --git a/SwifTools/AutoUpdater/PlatformAutoUpdaterFactory.h b/SwifTools/AutoUpdater/PlatformAutoUpdaterFactory.h new file mode 100644 index 0000000..4e3cef1 --- /dev/null +++ b/SwifTools/AutoUpdater/PlatformAutoUpdaterFactory.h @@ -0,0 +1,9 @@ +namespace Swift { +	class AutoUpdater; +	class String; + +	class PlatformAutoUpdaterFactory { +		public: +			AutoUpdater* createAutoUpdater(const String& appcastURL); +	}; +} diff --git a/SwifTools/SConscript b/SwifTools/SConscript index 92e82be..a1b3d18 100644 --- a/SwifTools/SConscript +++ b/SwifTools/SConscript @@ -1,39 +1,42 @@  Import("env")  env["SWIFTOOLS_FLAGS"] = {  		"LIBPATH": [Dir(".")],  		"LIBS": ["SwifTools"]  	}  myenv = env.Clone()  myenv.MergeFlags(myenv["BOOST_FLAGS"])  sources = [  		"Idle/IdleDetector.cpp",  		"Idle/ActualIdleDetector.cpp",  		"Idle/IdleQuerier.cpp",  		"Idle/PlatformIdleQuerier.cpp",  		"AutoUpdater/AutoUpdater.cpp", +		"AutoUpdater/PlatformAutoUpdaterFactory.cpp",  		"Linkify.cpp",  	]  if myenv.get("HAVE_SPARKLE", 0) : +	myenv.MergeFlags(myenv["SPARKLE_FLAGS"]) +	myenv.Append(CPPDEFINES = ["HAVE_SPARKLE"])  	sources += ["AutoUpdater/SparkleAutoUpdater.mm"]  if myenv["PLATFORM"] == "win32" :  	sources += ["Idle/WindowsIdleQuerier.cpp"]  elif myenv["PLATFORM"] == "darwin" :  	sources += ["Idle/MacOSXIdleQuerier.cpp"]  elif myenv["HAVE_XSS"] :  	myenv.Append(CPPDEFINES = ["HAVE_XSS"])  	sources += ["Idle/XSSIdleQuerier.cpp"]  else :    sources += ["Idle/DummyIdleQuerier.cpp"]  myenv.StaticLibrary("SwifTools", sources)  SConscript(dirs = [  		"Idle/IdleQuerierTest",  		"Idle/UnitTest",  		"UnitTest"  	]) diff --git a/Swift/QtUI/QtSwift.cpp b/Swift/QtUI/QtSwift.cpp index 7e204e9..4c7eabb 100644 --- a/Swift/QtUI/QtSwift.cpp +++ b/Swift/QtUI/QtSwift.cpp @@ -1,68 +1,82 @@  #include "QtSwift.h"  #include "QtLoginWindowFactory.h"  #include "QtChatWindowFactory.h"  #include "QtLoginWindow.h"  #include "QtChatTabs.h"  #include "QtMainWindowFactory.h"  #include "Roster/QtTreeWidgetFactory.h"  #include "QtSystemTray.h"  #include "QtSoundPlayer.h"  #include "QtXMLConsoleWidgetFactory.h"  #include <boost/bind.hpp>  #include <QSplitter>  #include "Swiften/Application/Application.h"  #include "Swiften/Application/Platform/PlatformApplication.h"  #include "Swiften/Base/String.h" +#include "Swiften/Base/Platform.h"  #include "Swiften/Elements/Presence.h"  #include "Swiften/Client/Client.h"  #include "Swift/Controllers/ChatController.h"  #include "Swift/Controllers/MainController.h"  #include "Swift/QtUI/BuildVersion.h" +#include "SwifTools/AutoUpdater/AutoUpdater.h" +#include "SwifTools/AutoUpdater/PlatformAutoUpdaterFactory.h"  namespace Swift{ +#if defined(SWIFTEN_PLATFORM_MACOSX) +#define SWIFT_APPCAST_URL "http://swift.im/appcast/psi-mac.xml" +#else  +#define SWIFT_APPCAST_URL "" +#endif + +  QtSwift::QtSwift(bool netbookMode) {  	if (netbookMode) {  		splitter_ = new QSplitter();  	} else {  		splitter_ = NULL;  	}  	QCoreApplication::setApplicationName("Swift");  	QCoreApplication::setOrganizationName("Swift");  	QCoreApplication::setOrganizationDomain("swift.im");  	QCoreApplication::setApplicationVersion(buildVersion);  	tabs_ = new QtChatTabs();  	settings_ = new QtSettingsProvider();  	application_ = new PlatformApplication("Swift");  	treeWidgetFactory_ = new QtTreeWidgetFactory();   	systemTray_ = new QtSystemTray();  	loginWindowFactory_ = new QtLoginWindowFactory(splitter_, systemTray_, settings_);  	chatWindowFactory_ = new QtChatWindowFactory(treeWidgetFactory_, splitter_, settings_, tabs_);  	rosterWindowFactory_ = new QtMainWindowFactory(treeWidgetFactory_);  	xmlConsoleWidgetFactory_ = new QtXMLConsoleWidgetFactory(tabs_);  	soundPlayer_ = new QtSoundPlayer();  	if (splitter_) {  		splitter_->show();  	}  	mainController_ = new MainController(chatWindowFactory_, rosterWindowFactory_, loginWindowFactory_, treeWidgetFactory_, settings_, application_, systemTray_, soundPlayer_, xmlConsoleWidgetFactory_); + +	autoUpdater_ = PlatformAutoUpdaterFactory().createAutoUpdater(SWIFT_APPCAST_URL); +	autoUpdater_->checkForUpdates();  }  QtSwift::~QtSwift() { +	delete autoUpdater_;  	delete chatWindowFactory_;  	delete rosterWindowFactory_;  	delete loginWindowFactory_;  	delete treeWidgetFactory_;  	delete mainController_;  	delete settings_;  	delete application_;  	delete systemTray_;  	delete splitter_;  	delete soundPlayer_;  	delete tabs_;  	delete xmlConsoleWidgetFactory_;  }  } diff --git a/Swift/QtUI/QtSwift.h b/Swift/QtUI/QtSwift.h index ad113d6..0ba9926 100644 --- a/Swift/QtUI/QtSwift.h +++ b/Swift/QtUI/QtSwift.h @@ -1,46 +1,48 @@  #ifndef SWIFT_QtSwift_H  #define SWIFT_QtSwift_H  #include "Swiften/Base/String.h"  #include "Swiften/EventLoop/Qt/QtEventLoop.h"  #include "QtLoginWindowFactory.h"  #include "QtMainWindowFactory.h"  #include "QtChatWindowFactory.h"  #include "QtSettingsProvider.h"  class QSplitter;  namespace Swift { +	class AutoUpdater;  	class Application;  	class MainController;  	class QtChatWindowFactory;  	class QtMainWindowFactory;  	class QtLoginWindowFactory;  	class QtTreeWidgetFactory;  	class QtXMLConsoleWidgetFactory;  	class QtSystemTray;  	class QtSoundPlayer;  	class QtSwift : public QObject {  		Q_OBJECT  		public:  			QtSwift(bool netbookMode);  			~QtSwift();  		private:  			MainController *mainController_;  			QtTreeWidgetFactory *treeWidgetFactory_;  			QtChatWindowFactory *chatWindowFactory_;  			QtMainWindowFactory *rosterWindowFactory_;  			QtLoginWindowFactory *loginWindowFactory_;  			QtXMLConsoleWidgetFactory* xmlConsoleWidgetFactory_;  			QtEventLoop clientMainThreadCaller_;  			QtSettingsProvider *settings_;  			QtSystemTray* systemTray_;  			QSplitter* splitter_;  			QtSoundPlayer* soundPlayer_;  			QtChatTabs* tabs_;  			Application* application_; +			AutoUpdater* autoUpdater_;  	};  }  #endif diff --git a/Swift/QtUI/SConscript b/Swift/QtUI/SConscript index f8de60e..3a9545c 100644 --- a/Swift/QtUI/SConscript +++ b/Swift/QtUI/SConscript @@ -1,124 +1,129 @@  import os, shutil, datetime  import Version  def generateDefaultTheme(env, target, source) : -	sourceDir = source[0].abspath -	output = open(target[0].abspath, "w") -	output.write("<RCC version =\"1.0\">") -	output.write("<qresource prefix=\"/themes/Default\">") -	for (path, dirs, files) in os.walk(sourceDir) : -		for file in files : -			filePath = os.path.join(path,file) -			output.write("<file alias=\"%(alias)s\">%(path)s</file>" % {  -					"alias": filePath[len(sourceDir)+1:], -					"path": filePath -				}) -	output.write("</qresource>") -	output.write("</RCC>") +  sourceDir = source[0].abspath +  output = open(target[0].abspath, "w") +  output.write("<RCC version =\"1.0\">") +  output.write("<qresource prefix=\"/themes/Default\">") +  for (path, dirs, files) in os.walk(sourceDir) : +    for file in files : +      filePath = os.path.join(path,file) +      output.write("<file alias=\"%(alias)s\">%(path)s</file>" % {  +          "alias": filePath[len(sourceDir)+1:], +          "path": filePath +        }) +  output.write("</qresource>") +  output.write("</RCC>")  Import("env")  myenv = env.Clone()  myenv.MergeFlags(env["SWIFT_CONTROLLERS_FLAGS"])  myenv.MergeFlags(env["SWIFTOOLS_FLAGS"])  if myenv["HAVE_XSS"] :    myenv.MergeFlags(env["XSS_FLAGS"]) +if myenv["HAVE_SPARKLE"] : +  myenv.MergeFlags(env["SPARKLE_FLAGS"])  myenv.MergeFlags(env["SWIFTEN_FLAGS"])  myenv.MergeFlags(env["CPPUNIT_FLAGS"])  myenv.MergeFlags(env["LIBIDN_FLAGS"])  myenv.MergeFlags(env["BOOST_FLAGS"])  myenv.MergeFlags(env["SQLITE_FLAGS"])  myenv.MergeFlags(env["ZLIB_FLAGS"])  myenv.MergeFlags(env["OPENSSL_FLAGS"])  myenv.MergeFlags(env.get("LIBXML_FLAGS", ""))  myenv.MergeFlags(env.get("EXPAT_FLAGS", ""))  myenv.Tool("qt4", toolpath = ["#/BuildTools/SCons/Tools"])  myenv.Tool("nsis", toolpath = ["#/BuildTools/SCons/Tools"])  myenv.EnableQt4Modules(['QtCore', 'QtGui', 'QtWebKit'], debug = False)  myenv.Append(CPPPATH = ["/usr/include/phonon"])  myenv.Append(CPPPATH = ["."])  if env["PLATFORM"] == "win32" : -	#myenv["LINKFLAGS"] = ["/SUBSYSTEM:CONSOLE"] -	myenv.Append(LINKFLAGS = ["/SUBSYSTEM:WINDOWS"]) -	myenv.Append(LIBS = "qtmain") +  #myenv["LINKFLAGS"] = ["/SUBSYSTEM:CONSOLE"] +  myenv.Append(LINKFLAGS = ["/SUBSYSTEM:WINDOWS"]) +  myenv.Append(LIBS = "qtmain")  myenv.Command("DefaultTheme.qrc", "../resources/themes/Default", Action(generateDefaultTheme, cmdstr = "$GENCOMSTR"))  sources = [ -		"main.cpp", -		"QtAboutWidget.cpp", -		"QtAddContactDialog.cpp", -		"QtChatWindow.cpp", -		"QtChatWindowFactory.cpp", -		"QtJoinMUCDialog.cpp", -		"QtLoginWindow.cpp", -		"QtLoginWindowFactory.cpp", -		"QtMainWindow.cpp", -		"QtMainWindowFactory.cpp", -		"QtSettingsProvider.cpp", -		"QtStatusWidget.cpp", -		"QtSwift.cpp", -		"QtChatView.cpp", -		"QtChatTabs.cpp", -		"QtSoundPlayer.cpp", -		"QtSystemTray.cpp", -		"QtTabbable.cpp", -		"QtTextEdit.cpp", -		"QtXMLConsoleWidgetFactory.cpp", -		"QtXMLConsoleWidget.cpp", -		"ChatSnippet.cpp", -		"MessageSnippet.cpp", -		"SystemMessageSnippet.cpp", -		"Roster/RosterModel.cpp", -		"Roster/QtTreeWidget.cpp", -		"Roster/QtTreeWidgetItem.cpp", -		"Roster/RosterDelegate.cpp", -		"EventViewer/EventView.cpp", -		"EventViewer/EventModel.cpp", -		"EventViewer/EventDelegate.cpp", -		"QtRosterHeader.cpp", -		"qrc_DefaultTheme.cc", -		"qrc_Swift.cc", -	] +    "main.cpp", +    "QtAboutWidget.cpp", +    "QtAddContactDialog.cpp", +    "QtChatWindow.cpp", +    "QtChatWindowFactory.cpp", +    "QtJoinMUCDialog.cpp", +    "QtLoginWindow.cpp", +    "QtLoginWindowFactory.cpp", +    "QtMainWindow.cpp", +    "QtMainWindowFactory.cpp", +    "QtSettingsProvider.cpp", +    "QtStatusWidget.cpp", +    "QtSwift.cpp", +    "QtChatView.cpp", +    "QtChatTabs.cpp", +    "QtSoundPlayer.cpp", +    "QtSystemTray.cpp", +    "QtTabbable.cpp", +    "QtTextEdit.cpp", +    "QtXMLConsoleWidgetFactory.cpp", +    "QtXMLConsoleWidget.cpp", +    "ChatSnippet.cpp", +    "MessageSnippet.cpp", +    "SystemMessageSnippet.cpp", +    "Roster/RosterModel.cpp", +    "Roster/QtTreeWidget.cpp", +    "Roster/QtTreeWidgetItem.cpp", +    "Roster/RosterDelegate.cpp", +    "EventViewer/EventView.cpp", +    "EventViewer/EventModel.cpp", +    "EventViewer/EventDelegate.cpp", +    "QtRosterHeader.cpp", +    "qrc_DefaultTheme.cc", +    "qrc_Swift.cc", +  ]  myenv.BuildVersion("BuildVersion.h", version = env["SWIFT_VERSION"])  if env["PLATFORM"] == "win32" : -	myenv.RES("../resources/Windows/Swift.rc") -	sources += ["../resources/Windows/Swift.res"] +  myenv.RES("../resources/Windows/Swift.rc") +  sources += ["../resources/Windows/Swift.res"]  if env["PLATFORM"] == "darwin" or env["PLATFORM"] == "win32" : -	swiftProgram = myenv.Program("Swift", sources) +  swiftProgram = myenv.Program("Swift", sources)  else : -	swiftProgram = myenv.Program("swift", sources) +  swiftProgram = myenv.Program("swift", sources)  myenv.Uic4("QtJoinMUCDialog.ui")  myenv.Uic4("QtAddContactDialog.ui")  myenv.Qrc("DefaultTheme.qrc")  myenv.Qrc("Swift.qrc")  if env["PLATFORM"] == "darwin" : -  myenv.AppBundle("Swift", version = env["SWIFT_VERSION"], resources = ["../resources/MacOSX/Swift.icns"]) +  frameworks = [] +  if env["HAVE_SPARKLE"] : +    frameworks.append(env["SPARKLE_FRAMEWORK"]) +  myenv.AppBundle("Swift", version = env["SWIFT_VERSION"], resources = ["../resources/MacOSX/Swift.icns"], frameworks = frameworks)  if env.get("SWIFT_INSTALLDIR", "") : -	env.Install(os.path.join(env["SWIFT_INSTALLDIR"], "bin"), swiftProgram) +  env.Install(os.path.join(env["SWIFT_INSTALLDIR"], "bin"), swiftProgram)  if env["PLATFORM"] == "win32" : -	if "dist" in COMMAND_LINE_TARGETS or env.GetOption("clean") : -		myenv.WindowsBundle("Swift", resources = [ -				os.path.join(env["OPENSSL_DIR"], "bin", "ssleay32.dll"),	 -				os.path.join(env["OPENSSL_DIR"], "bin", "libeay32.dll"),	 -			],	 -			qtimageformats = ["gif", "ico", "jpeg", "mng", "svg", "tiff"], -			qtlibs = ["QtCore4", "QtGui4", "QtNetwork4", "QtWebKit4", "phonon4"]) - -		myenv.Append(NSIS_OPTIONS = [ -				"/DmsvccRedistributableDir=\"" + env["vcredist"] + "\"",  -				"/DbuildVersion=" + env["SWIFT_VERSION"] -			]) -		myenv.Nsis("../Packaging/nsis/swift.nsi") +  if "dist" in COMMAND_LINE_TARGETS or env.GetOption("clean") : +    myenv.WindowsBundle("Swift", resources = [ +        os.path.join(env["OPENSSL_DIR"], "bin", "ssleay32.dll"),   +        os.path.join(env["OPENSSL_DIR"], "bin", "libeay32.dll"),   +      ],   +      qtimageformats = ["gif", "ico", "jpeg", "mng", "svg", "tiff"], +      qtlibs = ["QtCore4", "QtGui4", "QtNetwork4", "QtWebKit4", "phonon4"]) + +    myenv.Append(NSIS_OPTIONS = [ +        "/DmsvccRedistributableDir=\"" + env["vcredist"] + "\"",  +        "/DbuildVersion=" + env["SWIFT_VERSION"] +      ]) +    myenv.Nsis("../Packaging/nsis/swift.nsi") diff --git a/Swift/QtUI/main.cpp b/Swift/QtUI/main.cpp index a7a715c..b76acfa 100644 --- a/Swift/QtUI/main.cpp +++ b/Swift/QtUI/main.cpp @@ -1,11 +1,10 @@  #include <QApplication>  #include "QtSwift.h" -int main(int argc, char* argv[]) -{ +int main(int argc, char* argv[]) {  	QApplication app(argc, argv);  	bool netbookMode = argc > 1;  	Swift::QtSwift swift(netbookMode);  	return app.exec();  } diff --git a/Swiften/Application/MacOSX/MacOSXApplication.h b/Swiften/Application/MacOSX/MacOSXApplication.h index e408ffd..cd5e69f 100644 --- a/Swiften/Application/MacOSX/MacOSXApplication.h +++ b/Swiften/Application/MacOSX/MacOSXApplication.h @@ -1,23 +1,25 @@  #ifndef SWIFTEN_MacOSXApplication_H  #define SWIFTEN_MacOSXApplication_H  #include "Swiften/Application/Application.h"  #include "Swiften/Application/MacOSX/MacOSXApplicationMessageDisplay.h" +#include "Swiften/Application/MacOSX/MacOSXApplicationInitializer.h"  namespace Swift {  	class ApplicationMessageDisplay;  	class MacOSXApplication : public Application {  		public:  			MacOSXApplication(const String& name);  			virtual boost::filesystem::path getHomeDir() const;  			virtual ApplicationMessageDisplay* getApplicationMessageDisplay();  			boost::filesystem::path getSettingsDir() const;  		private: +			MacOSXApplicationInitializer initializer_;  			MacOSXApplicationMessageDisplay messageDisplay_;  	};  }  #endif diff --git a/Swiften/Application/SConscript b/Swiften/Application/SConscript index d13b63b..7696bd7 100644 --- a/Swiften/Application/SConscript +++ b/Swiften/Application/SConscript @@ -1,15 +1,16 @@  Import("swiften_env")  sources = [  		"Application.cpp",  		"ApplicationMessageDisplay.cpp",  	]  if swiften_env["PLATFORM"] == "darwin" :  	sources += [  			"MacOSX/MacOSXApplication.cpp", -			"MacOSX/MacOSXApplicationMessageDisplay.mm" +			"MacOSX/MacOSXApplicationMessageDisplay.mm", +			"MacOSX/MacOSXApplicationInitializer.mm",  		]  objects = swiften_env.StaticObject(sources)  swiften_env.Append(SWIFTEN_OBJECTS = [objects]) | 
 Swift
 Swift