summaryrefslogtreecommitdiffstats
path: root/Swift
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2009-11-27 23:37:37 (GMT)
committerRemko Tronçon <git@el-tramo.be>2009-11-27 23:37:37 (GMT)
commit91570ab79252b37afeae3b230cb6023c5b52547a (patch)
tree011d77857557a28671a63a444dcf8e10db64ab3f /Swift
parentba717874781a33ea40a1aea1ad8b9efce3580fc2 (diff)
downloadswift-91570ab79252b37afeae3b230cb6023c5b52547a.zip
swift-91570ab79252b37afeae3b230cb6023c5b52547a.tar.bz2
Integrated Sparkle auto-updater.
Diffstat (limited to 'Swift')
-rw-r--r--Swift/QtUI/QtSwift.cpp14
-rw-r--r--Swift/QtUI/QtSwift.h2
-rw-r--r--Swift/QtUI/SConscript145
-rw-r--r--Swift/QtUI/main.cpp3
4 files changed, 92 insertions, 72 deletions
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
@@ -15,14 +15,24 @@
#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();
@@ -48,9 +58,13 @@ QtSwift::QtSwift(bool netbookMode) {
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_;
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
@@ -11,6 +11,7 @@
class QSplitter;
namespace Swift {
+ class AutoUpdater;
class Application;
class MainController;
class QtChatWindowFactory;
@@ -40,6 +41,7 @@ namespace Swift {
QtSoundPlayer* soundPlayer_;
QtChatTabs* tabs_;
Application* application_;
+ AutoUpdater* autoUpdater_;
};
}
diff --git a/Swift/QtUI/SConscript b/Swift/QtUI/SConscript
index f8de60e..3a9545c 100644
--- a/Swift/QtUI/SConscript
+++ b/Swift/QtUI/SConscript
@@ -2,19 +2,19 @@ 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")
@@ -24,6 +24,8 @@ 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"])
@@ -42,60 +44,60 @@ 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")
@@ -103,22 +105,25 @@ 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
@@ -2,8 +2,7 @@
#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);