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 /Swift | |
parent | ba717874781a33ea40a1aea1ad8b9efce3580fc2 (diff) | |
download | swift-91570ab79252b37afeae3b230cb6023c5b52547a.zip swift-91570ab79252b37afeae3b230cb6023c5b52547a.tar.bz2 |
Integrated Sparkle auto-updater.
Diffstat (limited to 'Swift')
-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 |
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); |