# HG changeset patch
# User bedr...@bedrich-5f0ecfa.
# Date 1245316874 -7200
# Node ID 28123d22f3642ae88b5c667c20ed017ef75ecc8b
# Parent 16afed46a4e9f149a581d5bb1bfe207ed4a8844e
Automatic updates. For more information see
http://trac.qutecom.org/wiki/AutomaticUpdates
diff -r 16afed46a4e9 -r 28123d22f364 wengophone/resources/config/config.xml
--- a/wengophone/resources/config/config.xml Tue Jan 20 16:47:33 2009 -0500
+++ b/wengophone/resources/config/config.xml Thu Jun 18 11:21:14 2009 +0200
@@ -110,7 +110,7 @@
<!-- Can be one of Hidden, IconsOnly, TextUnderIcons -->
<general.toolbarmode><string>Hidden</string></general.toolbarmode>
-
+<https.updates.enabled><bool>1</bool></https.updates.enabled>
<ieactivex.enable><bool>1</bool></ieactivex.enable>
<language><string>detect</string></language>
diff -r 16afed46a4e9 -r 28123d22f364
wengophone/src/control/profile/CUserProfile.cpp
--- a/wengophone/src/control/profile/CUserProfile.cpp Tue Jan 20 16:47:33
2009 -0500
+++ b/wengophone/src/control/profile/CUserProfile.cpp Thu Jun 18 11:21:14
2009 +0200
@@ -162,8 +162,8 @@
//Check for WengoPhone update
if (_userProfile.getSipAccount()) {
- if (_userProfile.getSipAccount()->getType() ==
SipAccount::SipAccountTypeWengo) {
- wsSoftUpdate.checkForUpdate();
+ if (_userProfile.getSipAccount()->getType() ==
SipAccount::SipAccountTypeBasic) {
+ wsSoftUpdate.checkForUpdate(false);
}
}
}
diff -r 16afed46a4e9 -r 28123d22f364
wengophone/src/control/webservices/softupdate/CSoftUpdate.cpp
--- a/wengophone/src/control/webservices/softupdate/CSoftUpdate.cpp Tue Jan
20 16:47:33 2009 -0500
+++ b/wengophone/src/control/webservices/softupdate/CSoftUpdate.cpp Thu Jun
18 11:21:14 2009 +0200
@@ -49,5 +49,5 @@
}
void CSoftUpdate::checkForUpdate() {
- _wsSoftUpdate.checkForUpdate();
+ _wsSoftUpdate.checkForUpdate(false);
}
diff -r 16afed46a4e9 -r 28123d22f364 wengophone/src/model/config/Config.cpp
--- a/wengophone/src/model/config/Config.cpp Tue Jan 20 16:47:33 2009 -0500
+++ b/wengophone/src/model/config/Config.cpp Thu Jun 18 11:21:14 2009 +0200
@@ -173,6 +173,7 @@
const string Config::LINUX_PREFERED_BROWSER_KEY = "linux.prefered.browser";
const string Config::CALL_ENCRYPTION_MODE_KEY = "call.encryption.mode";
+const string Config::HTTPS_UPDATES_ENABLED_KEY = "https.updates.enabled";
const string Config::URL_ACCOUNTCREATION_KEY = "url.accountcreation";
@@ -759,6 +760,11 @@
bool Config::getCallEncryptionMode() const {
return getBooleanKeyValue(CALL_ENCRYPTION_MODE_KEY);
}
+
+bool Config::getHttpsUpdatesEnabled() const {
+ return getBooleanKeyValue(HTTPS_UPDATES_ENABLED_KEY);
+}
+
string Config::getAccountCreationUrl() const {
return getStringKeyValue(URL_ACCOUNTCREATION_KEY);
}
diff -r 16afed46a4e9 -r 28123d22f364 wengophone/src/model/config/Config.h
--- a/wengophone/src/model/config/Config.h Tue Jan 20 16:47:33 2009 -0500
+++ b/wengophone/src/model/config/Config.h Thu Jun 18 11:21:14 2009 +0200
@@ -598,6 +598,8 @@
/** Call encryption mode. */
static const std::string CALL_ENCRYPTION_MODE_KEY;
bool getCallEncryptionMode() const;
+ static const std::string HTTPS_UPDATES_ENABLED_KEY;
+ bool getHttpsUpdatesEnabled() const;
/** @} */
diff -r 16afed46a4e9 -r 28123d22f364
wengophone/src/model/profile/UserProfile.cpp
--- a/wengophone/src/model/profile/UserProfile.cpp Tue Jan 20 16:47:33
2009 -0500
+++ b/wengophone/src/model/profile/UserProfile.cpp Thu Jun 18 11:21:14
2009 +0200
@@ -495,7 +495,7 @@
LOG_DEBUG("SMS created");
//Creates SoftUpdate, SoftUpdate needs a
WengoAccount
- _wsSoftUpdate = new WsSoftUpdate(wengoAccount);
+ _wsSoftUpdate = new WsSoftUpdate(wengoAccount,
this);
wsSoftUpdateCreatedEvent(*this, *_wsSoftUpdate);
LOG_DEBUG("SoftUpdate created");
@@ -508,6 +508,11 @@
wsCallForwardCreatedEvent(*this,
*_wsCallForward);
_wsCallForward->wsCallForwardEvent +=
boost::bind(&UserProfile::wsCallForwardEventHandler, this, _1, _2, _3);
}
+ else if (_sipAccount->getType() ==
SipAccount::SipAccountTypeBasic) {
+ WengoAccount * wengoAccount =
dynamic_cast<WengoAccount*>(_sipAccount);
+ _wsSoftUpdate = new WsSoftUpdate(wengoAccount,
this);
+ wsSoftUpdateCreatedEvent(*this, *_wsSoftUpdate);
+ }
phoneLineCreatedEvent(*this, *_activePhoneLine);
loadHistory(getProfileDirectory());
@@ -625,3 +630,7 @@
return false;
}
+
+void UserProfile::setLastRejectedUpdate(unsigned long long buildId) {
+ _lastRejectedUpdate = buildId;
+}
diff -r 16afed46a4e9 -r 28123d22f364 wengophone/src/model/profile/UserProfile.h
--- a/wengophone/src/model/profile/UserProfile.h Tue Jan 20 16:47:33
2009 -0500
+++ b/wengophone/src/model/profile/UserProfile.h Thu Jun 18 11:21:14
2009 +0200
@@ -412,6 +412,15 @@
std::string getName() const {
return _name;
}
+
+ /**
+ * Softupdate
+ */
+ unsigned long long getLastRejectedUpdate() {
+ return _lastRejectedUpdate;
+ }
+
+ void setLastRejectedUpdate(unsigned long long buildId);
private:
@@ -559,6 +568,9 @@
/** Name of the UserProfile. */
std::string _name;
+
+ /** BuildId of last rejected update */
+ unsigned long long _lastRejectedUpdate;
};
#endif //OWUSERPROFILE_H
diff -r 16afed46a4e9 -r 28123d22f364
wengophone/src/model/profile/UserProfileXMLSerializer.cpp
--- a/wengophone/src/model/profile/UserProfileXMLSerializer.cpp Tue Jan 20
16:47:33 2009 -0500
+++ b/wengophone/src/model/profile/UserProfileXMLSerializer.cpp Thu Jun 18
11:21:14 2009 +0200
@@ -27,6 +27,7 @@
#include "UserProfile.h"
#include <tinyxml.h>
+#include <sstream>
UserProfileXMLSerializer::UserProfileXMLSerializer(UserProfile & userProfile)
: ProfileXMLSerializer(userProfile), _userProfile(userProfile) {
@@ -34,6 +35,8 @@
std::string UserProfileXMLSerializer::serialize() {
std::string result;
+ unsigned long long tmpLastRejectedUpdate;
+ std::stringstream tmp;
result += "<userprofile>\n";
@@ -48,6 +51,11 @@
result += sserializer.serialize();
}
+ result += "<updates>\n<lastrejectedupdate>";
+ tmp << _userProfile.getLastRejectedUpdate();
+ result += tmp.str();
+ result += "</lastrejectedupdate>\n</updates>";
+
result += "</userprofile>\n";
return result;
@@ -65,6 +73,16 @@
result = ProfileXMLSerializer::unserializeContent(userprofile);
if (result) {
+ // Retrieving informations for softupdate
+ TiXmlText * text =
userprofile.FirstChild("updates").FirstChild("lastrejectedupdate").FirstChild().Text();
+ unsigned long long lastRejectedUpdate;
+ if (text) {
+ std::stringstream ss(std::string(text->Value()));
+ ss >> lastRejectedUpdate;
+ _userProfile.setLastRejectedUpdate(lastRejectedUpdate);
+ }
+ /////
+
// Retrieving wengoaccount
TiXmlNode * wengoaccount =
userprofile.FirstChild("wengoaccount").Node();
if (wengoaccount) {
diff -r 16afed46a4e9 -r 28123d22f364
wengophone/src/model/webservices/softupdate/WsSoftUpdate.cpp
--- a/wengophone/src/model/webservices/softupdate/WsSoftUpdate.cpp Tue Jan
20 16:47:33 2009 -0500
+++ b/wengophone/src/model/webservices/softupdate/WsSoftUpdate.cpp Thu Jun
18 11:21:14 2009 +0200
@@ -31,23 +31,35 @@
#include <sstream>
-WsSoftUpdate::WsSoftUpdate(WengoAccount * wengoAccount)
+#include <model/profile/UserProfile.h>
+
+WsSoftUpdate::WsSoftUpdate(WengoAccount * wengoAccount, UserProfile *
userProfile)
: WengoWebService(wengoAccount) {
Config & config = ConfigManager::getInstance().getCurrentConfig();
+ _lastRejectedUpdate = userProfile->getLastRejectedUpdate();
//Setup the web service
setHostname(config.getWengoServerHostname());
setGet(true);
- setHttps(true);
+ if (config.getHttpsUpdatesEnabled()) {
+ setHttps(true);
+ setPort(443);
+ }
+ else {
+ setHttps(false);
+ setPort(80);
+ }
setServicePath(config.getWengoSoftUpdatePath());
setPort(443);
setWengoAuthentication(false);
}
-void WsSoftUpdate::checkForUpdate() {
+void WsSoftUpdate::checkForUpdate(bool forced) {
std::string operatingSystem;
+ forcedUpdate = forced;
+
#ifdef OS_WINDOWS
operatingSystem = "windows";
#elif defined (OS_MACOSX)
@@ -106,8 +118,9 @@
ss >> fileSize;
}
+ // Gets the last rejected update buildId from user profile
- if ((WengoPhoneBuildId::getBuildId() != 0) && (buildId >
WengoPhoneBuildId::getBuildId())) {
+ if ((WengoPhoneBuildId::getBuildId() != 0) && (buildId >
WengoPhoneBuildId::getBuildId()) && ((buildId > _lastRejectedUpdate) ||
forcedUpdate)) {
//A new version of WengoPhone is available and we don't have a
developer version with buildid=0
LOG_DEBUG("new WengoPhone version available=" + version + "
buildid=" + String::fromUnsignedLongLong(buildId));
diff -r 16afed46a4e9 -r 28123d22f364
wengophone/src/model/webservices/softupdate/WsSoftUpdate.h
--- a/wengophone/src/model/webservices/softupdate/WsSoftUpdate.h Tue Jan
20 16:47:33 2009 -0500
+++ b/wengophone/src/model/webservices/softupdate/WsSoftUpdate.h Thu Jun
18 11:21:14 2009 +0200
@@ -21,6 +21,7 @@
#define OWWSSOFTUPDATE_H
#include <model/webservices/WengoWebService.h>
+#include <model/profile/UserProfile.h>
/**
* WengoPhone update web service.
@@ -37,7 +38,7 @@
*
* @param wengoAccount the WengoAccount used for web services
*/
- WsSoftUpdate(WengoAccount * wengoAccount);
+ WsSoftUpdate(WengoAccount * wengoAccount, UserProfile * userProfile);
virtual ~WsSoftUpdate() {}
@@ -59,14 +60,19 @@
/**
* Checks if a WengoPhone update is available.
*/
- void checkForUpdate();
+ void checkForUpdate(bool forced);
private:
+ //Indicates whether the update check was done automatically or by menu item
+ bool forcedUpdate;
/**
* @see WengoWebService
*/
void answerReceived(const std::string & answer, int id);
+
+ //BuildId of last rejected update
+ unsigned long long _lastRejectedUpdate;
};
#endif //OWWSSOFTUPDATE_H
diff -r 16afed46a4e9 -r 28123d22f364
wengophone/src/presentation/qt/CMakeLists.txt
--- a/wengophone/src/presentation/qt/CMakeLists.txt Tue Jan 20 16:47:33
2009 -0500
+++ b/wengophone/src/presentation/qt/CMakeLists.txt Thu Jun 18 11:21:14
2009 +0200
@@ -421,6 +421,7 @@
webservices/sms/SmsWindow.ui
webservices/softupdate/SoftUpdateWindow.ui
webservices/softupdate/BrowserSoftUpdateWindow.ui
+ webservices/softupdate/DownloadUpdatesWindow.ui
conference/ConferenceCallWidget.ui
diff -r 16afed46a4e9 -r 28123d22f364
wengophone/src/presentation/qt/QtToolBar.cpp
--- a/wengophone/src/presentation/qt/QtToolBar.cpp Tue Jan 20 16:47:33
2009 -0500
+++ b/wengophone/src/presentation/qt/QtToolBar.cpp Thu Jun 18 11:21:14
2009 +0200
@@ -52,10 +52,12 @@
#include <model/phonecall/ConferenceCall.h>
#include <model/account/wengo/WengoAccount.h>
#include <model/profile/UserProfile.h>
+#include <model/profile/UserProfileHandler.h>
#include <model/history/History.h>
#include <model/config/ConfigManager.h>
#include <model/config/Config.h>
#include <model/config/EnumToolBarMode.h>
+#include <model/webservices/softupdate/WsSoftUpdate.h>
#include <util/Logger.h>
@@ -134,7 +136,7 @@
//menuHelp
connectOrHide(WsUrl::Forum, _ui->actionShowWengoForum, this,
SLOT(showWengoForum()));
connectOrHide(WsUrl::FAQ, _ui->actionWengoFAQ, this,
SLOT(showWengoFAQ()));
- SAFE_CONNECT(_ui->actionShowAbout, SIGNAL(triggered()),
SLOT(showAbout()));
+ SAFE_CONNECT(_ui->actionCheckForUpdates, SIGNAL(triggered()),
SLOT(checkForUpdates()));
//menuTools
SAFE_CONNECT(_ui->actionShowConfig, SIGNAL(triggered()),
SLOT(showConfig()));
@@ -289,6 +291,11 @@
qtAbout->getWidget()->show();
}
+void QtToolBar::checkForUpdates() {
+ WsSoftUpdate * wsSoftUpdate =
_cWengoPhone.getCUserProfileHandler().getUserProfileHandler().getCurrentUserProfile()->getWsSoftUpdate();
+ wsSoftUpdate->checkForUpdate(true);
+}
+
void QtToolBar::sendSms() {
CUserProfile * cuserprofile =
_cWengoPhone.getCUserProfileHandler().getCUserProfile();
diff -r 16afed46a4e9 -r 28123d22f364 wengophone/src/presentation/qt/QtToolBar.h
--- a/wengophone/src/presentation/qt/QtToolBar.h Tue Jan 20 16:47:33
2009 -0500
+++ b/wengophone/src/presentation/qt/QtToolBar.h Thu Jun 18 11:21:14
2009 +0200
@@ -79,6 +79,8 @@
void showAbout();
+ void checkForUpdates();
+
void sendSms();
void showWengoFAQ();
diff -r 16afed46a4e9 -r 28123d22f364
wengophone/src/presentation/qt/WengoPhoneWindow.ui
--- a/wengophone/src/presentation/qt/WengoPhoneWindow.ui Tue Jan 20
16:47:33 2009 -0500
+++ b/wengophone/src/presentation/qt/WengoPhoneWindow.ui Thu Jun 18
11:21:14 2009 +0200
@@ -102,6 +102,8 @@
<addaction name="actionShowWengoForum" />
<addaction name="actionWengoFAQ" />
<addaction name="separator" />
+ <addaction name="actionCheckForUpdates" />
+ <addaction name="separator" />
<addaction name="actionShowAbout" />
</widget>
<widget class="QMenu" name="menuActions" >
@@ -475,6 +477,11 @@
<string>&Hidden</string>
</property>
</action>
+ <action name="actionCheckForUpdates" >
+ <property name="text" >
+ <string>Check f&or Updates...</string>
+ </property>
+ </action>
</widget>
<customwidgets>
<customwidget>
diff -r 16afed46a4e9 -r 28123d22f364
wengophone/src/presentation/qt/lang/qtwengophone_cs.ts
--- a/wengophone/src/presentation/qt/lang/qtwengophone_cs.ts Tue Jan 20
16:47:33 2009 -0500
+++ b/wengophone/src/presentation/qt/lang/qtwengophone_cs.ts Thu Jun 18
11:21:14 2009 +0200
@@ -1109,6 +1109,35 @@
</message>
</context>
<context>
+ <name>DownloadUpdatesWindow</name>
+ <message>
+ <location
filename="../webservices/softupdate/DownloadUpdatesWindow.ui" line="13"/>
+ <source>@product@ - Update available</source>
+ <translation>@product@ - Jsou dostupné aktualizace</translation>
+ </message>
+ <message>
+ <location
filename="../webservices/softupdate/DownloadUpdatesWindow.ui" line="55"/>
+ <source>An update is available. Do you want to download it?
+
+Version: %1
+File Size: %2 (MB)</source>
+ <translation>Jsou dostupné aktualizace. Chcete je nyní stáhnout?
+
+Verze: %1
+Velikost souboru: %2 (MB)</translation>
+ </message>
+ <message>
+ <location
filename="../webservices/softupdate/DownloadUpdatesWindow.ui" line="101"/>
+ <source>Yes</source>
+ <translation>Ano</translation>
+ </message>
+ <message>
+ <location
filename="../webservices/softupdate/DownloadUpdatesWindow.ui" line="108"/>
+ <source>No</source>
+ <translation>Ne</translation>
+ </message>
+</context>
+<context>
<name>EventWidget</name>
<message>
<location filename="../profilebar/EventWidget.ui" line="33"/>
@@ -4545,6 +4574,11 @@
<translation>&O aplikaci</translation>
</message>
<message>
+ <location filename="../WengoPhoneWindow.ui" line="519"/>
+ <source>Check f&or Updates...</source>
+ <translation>Zk&ontrolovat aktualizace</translation>
+ </message>
+ <message>
<location filename="../WengoPhoneWindow.ui" line="241"/>
<source>Add &Contact...</source>
<translation>Přidat &kontakt...</translation>
diff -r 16afed46a4e9 -r 28123d22f364
wengophone/src/presentation/qt/webservices/softupdate/DownloadUpdatesWindow.ui
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++
b/wengophone/src/presentation/qt/webservices/softupdate/DownloadUpdatesWindow.ui
Thu Jun 18 11:21:14 2009 +0200
@@ -0,0 +1,170 @@
+<ui version="4.0" >
+ <class>DownloadUpdatesWindow</class>
+ <widget class="QDialog" name="DownloadUpdatesWindow" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>365</width>
+ <height>131</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>@product@ - Update available</string>
+ </property>
+ <property name="sizeGripEnabled" >
+ <bool>false</bool>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout" >
+ <item>
+ <layout class="QGridLayout" name="gridLayout" >
+ <property name="sizeConstraint" >
+ <enum>QLayout::SetDefaultConstraint</enum>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="label_2" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string/>
+ </property>
+ <property name="pixmap" >
+ <pixmap resource="../../../../../resources/wengophone.qrc"
>:/pics/update.png</pixmap>
+ </property>
+ <property name="scaledContents" >
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QLabel" name="updateTextLabel" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>An update is available. Do you want to download it?
+
+Version: %1
+File Size: %2 (MB)</string>
+ </property>
+ <property name="textFormat" >
+ <enum>Qt::PlainText</enum>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+ </property>
+ <property name="indent" >
+ <number>10</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <spacer name="verticalSpacer" >
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>20</width>
+ <height>8</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout" >
+ <item>
+ <spacer name="horizontalSpacer" >
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="yesButton" >
+ <property name="text" >
+ <string>Yes</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="noButton" >
+ <property name="text" >
+ <string>No</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer_2" >
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <resources>
+ <include location="../../../../../resources/wengophone.qrc" />
+ <include
location="../../../../../../../../../../../resources/wengophone.qrc" />
+ </resources>
+ <connections>
+ <connection>
+ <sender>yesButton</sender>
+ <signal>clicked()</signal>
+ <receiver>DownloadUpdatesWindow</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>140</x>
+ <y>190</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>182</x>
+ <y>135</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>noButton</sender>
+ <signal>clicked()</signal>
+ <receiver>DownloadUpdatesWindow</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>225</x>
+ <y>190</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>182</x>
+ <y>135</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff -r 16afed46a4e9 -r 28123d22f364
wengophone/src/presentation/qt/webservices/softupdate/QtSoftUpdate.cpp
--- a/wengophone/src/presentation/qt/webservices/softupdate/QtSoftUpdate.cpp
Tue Jan 20 16:47:33 2009 -0500
+++ b/wengophone/src/presentation/qt/webservices/softupdate/QtSoftUpdate.cpp
Thu Jun 18 11:21:14 2009 +0200
@@ -20,6 +20,7 @@
#include "QtSoftUpdate.h"
#include "ui_SoftUpdateWindow.h"
+#include "ui_DownloadUpdatesWindow.h"
#include "QtBrowserSoftUpdate.h"
@@ -39,6 +40,10 @@
#include <QtGui/QtGui>
+#include <model/profile/UserProfileHandler.h>
+#include <control/profile/CUserProfileHandler.h>
+#include <model/profile/UserProfile.h>
+
static const char * UPDATE_PROGRAM = "update.exe";
QtSoftUpdate::QtSoftUpdate(CSoftUpdate & cSoftUpdate)
@@ -82,35 +87,28 @@
const std::string & version,
unsigned fileSize) {
-#ifdef OS_WINDOWS
- _softUpdateWindow = new QDialog(_qtWengoPhone->getWidget());
+ updDownloadUrl = downloadUrl;
+ updBuildId = buildId;
+ updVersion = version;
+ updFileSize = fileSize;
+
+ _downloadUpdatesWindow = new QDialog(_qtWengoPhone->getWidget());
+
+ _uiDownload = new Ui::DownloadUpdatesWindow();
+ _uiDownload->setupUi(_downloadUpdatesWindow);
+
+ SAFE_CONNECT(_downloadUpdatesWindow, SIGNAL(accepted()),
SLOT(startDownload()));
+ SAFE_CONNECT(_downloadUpdatesWindow, SIGNAL(rejected()),
SLOT(rejectUpdate()));
+
- _ui = new Ui::SoftUpdateWindow();
- _ui->setupUi(_softUpdateWindow);
-
- SAFE_CONNECT(_softUpdateWindow, SIGNAL(rejected()),
SLOT(abortDownload()));
-
+
//updateTextLabel
- _originalLabelText = _ui->updateTextLabel->text()
- .arg(QString::fromStdString(version))
- .arg(QString::fromStdString(downloadUrl))
- .arg(fileSize);
- _ui->updateTextLabel->setText(_originalLabelText);
-
- //Deletes previous update program
- QFile file(UPDATE_PROGRAM);
- file.remove();
- file.close();
-
- _softUpdater = new SoftUpdater(downloadUrl, UPDATE_PROGRAM);
- _softUpdater->dataReadProgressEvent +=
boost::bind(&QtSoftUpdate::dataReadProgressEventHandler, this, _1, _2, _3);
- _softUpdater->downloadFinishedEvent +=
boost::bind(&QtSoftUpdate::downloadFinishedEventHandler, this, _1);
- _softUpdater->start();
-
- _softUpdateWindow->exec();
-#else
- QtBrowserSoftUpdate(downloadUrl, buildId, version, fileSize,
_qtWengoPhone->getWidget());
-#endif
+ _originalLabelText = _uiDownload->updateTextLabel->text()
+ .arg(QString::fromStdString(updVersion))
+ .arg(updFileSize);
+ _uiDownload->updateTextLabel->setText(_originalLabelText);
+
+ _downloadUpdatesWindow->exec();
}
void QtSoftUpdate::dataReadProgressEventHandler(double bytesDone, double
bytesTotal, unsigned downloadSpeed) {
@@ -151,10 +149,47 @@
}
}
+void QtSoftUpdate::rejectUpdate() {
+ UserProfile * userprofile =
_cSoftUpdate.getCWengoPhone().getCUserProfileHandler().getUserProfileHandler().getCurrentUserProfile();
+ userprofile->setLastRejectedUpdate(updBuildId);
+}
+
void QtSoftUpdate::abortDownload() {
_softUpdater->abort();
}
+void QtSoftUpdate::startDownload() {
+#ifdef OS_WINDOWS
+ _softUpdateWindow = new QDialog(_qtWengoPhone->getWidget());
+
+ _ui = new Ui::SoftUpdateWindow();
+ _ui->setupUi(_softUpdateWindow);
+
+ SAFE_CONNECT(_softUpdateWindow, SIGNAL(rejected()),
SLOT(abortDownload()));
+
+ //updateTextLabel
+ _originalLabelText = _ui->updateTextLabel->text()
+ .arg(QString::fromStdString(updVersion))
+ .arg(QString::fromStdString(updDownloadUrl))
+ .arg(updFileSize);
+ _ui->updateTextLabel->setText(_originalLabelText);
+
+ //Deletes previous update program
+ QFile file(UPDATE_PROGRAM);
+ file.remove();
+ file.close();
+
+ _softUpdater = new SoftUpdater(updDownloadUrl, UPDATE_PROGRAM);
+ _softUpdater->dataReadProgressEvent +=
boost::bind(&QtSoftUpdate::dataReadProgressEventHandler, this, _1, _2, _3);
+ _softUpdater->downloadFinishedEvent +=
boost::bind(&QtSoftUpdate::downloadFinishedEventHandler, this, _1);
+ _softUpdater->start();
+
+ _softUpdateWindow->exec();
+#else
+ QtBrowserSoftUpdate(downloadUrl, buildId, version, fileSize,
_qtWengoPhone->getWidget());
+#endif
+}
+
void QtSoftUpdate::launchUpdateProcess() {
QProcess * updateProcess = new QProcess();
SAFE_CONNECT(updateProcess, SIGNAL(error(QProcess::ProcessError)),
SLOT(updateProcessError(QProcess::ProcessError)));
_______________________________________________
QuteCom-dev mailing list
[email protected]
http://lists.qutecom.org/mailman/listinfo/qutecom-dev