Some update fixing.
This commit is contained in:
parent
81ca791b24
commit
e1e8f18a8b
@ -47,9 +47,7 @@ FormUpdate::FormUpdate(QWidget *parent)
|
|||||||
m_btnUpdate = m_ui->m_buttonBox->addButton(tr("Update"), QDialogButtonBox::ActionRole);
|
m_btnUpdate = m_ui->m_buttonBox->addButton(tr("Update"), QDialogButtonBox::ActionRole);
|
||||||
m_btnUpdate->setToolTip(tr("Download new installation files."));
|
m_btnUpdate->setToolTip(tr("Download new installation files."));
|
||||||
|
|
||||||
#if defined(Q_OS_WIN)
|
|
||||||
connect(m_btnUpdate, SIGNAL(clicked()), this, SLOT(startUpdate()));
|
connect(m_btnUpdate, SIGNAL(clicked()), this, SLOT(startUpdate()));
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined(Q_OS_WIN)
|
#if !defined(Q_OS_WIN)
|
||||||
MessageBox::iconify(m_ui->m_buttonBox);
|
MessageBox::iconify(m_ui->m_buttonBox);
|
||||||
@ -86,8 +84,7 @@ void FormUpdate::checkForUpdates() {
|
|||||||
m_ui->m_txtChanges->clear();
|
m_ui->m_txtChanges->clear();
|
||||||
m_ui->m_lblStatus->setStatus(WidgetWithStatus::Error,
|
m_ui->m_lblStatus->setStatus(WidgetWithStatus::Error,
|
||||||
tr("Error: '%1'.").arg(NetworkFactory::networkErrorText(update.second)),
|
tr("Error: '%1'.").arg(NetworkFactory::networkErrorText(update.second)),
|
||||||
tr("List with updates was "
|
tr("List with updates was not\ndownloaded successfully."));
|
||||||
"not\ndownloaded successfully."));
|
|
||||||
m_btnUpdate->setEnabled(false);
|
m_btnUpdate->setEnabled(false);
|
||||||
m_btnUpdate->setToolTip(tr("Checking for updates failed."));
|
m_btnUpdate->setToolTip(tr("Checking for updates failed."));
|
||||||
}
|
}
|
||||||
@ -95,19 +92,19 @@ void FormUpdate::checkForUpdates() {
|
|||||||
m_ui->m_lblAvailableRelease->setText(update.first.m_availableVersion);
|
m_ui->m_lblAvailableRelease->setText(update.first.m_availableVersion);
|
||||||
m_ui->m_txtChanges->setText(update.first.m_changes);
|
m_ui->m_txtChanges->setText(update.first.m_changes);
|
||||||
|
|
||||||
if (update.first.m_availableVersion != APP_VERSION) {
|
bool is_self_update_for_this_system = isUpdateForThisSystem() && isSelfUpdateSupported();
|
||||||
|
|
||||||
|
if (update.first.m_availableVersion > APP_VERSION) {
|
||||||
m_ui->m_lblStatus->setStatus(WidgetWithStatus::Ok,
|
m_ui->m_lblStatus->setStatus(WidgetWithStatus::Ok,
|
||||||
tr("New release available."),
|
tr("New release available."),
|
||||||
tr("This is new version which can be\ndownloaded and installed."));
|
tr("This is new version which can be\ndownloaded and installed."));
|
||||||
m_btnUpdate->setEnabled(true);
|
m_btnUpdate->setEnabled(true);
|
||||||
m_btnUpdate->setToolTip(isUpdateForThisSystem() ?
|
m_btnUpdate->setToolTip(is_self_update_for_this_system ?
|
||||||
tr("Download installation file for your OS.") :
|
tr("Download installation file for your OS.") :
|
||||||
tr("Installation file is not available directly.\n"
|
tr("Installation file is not available directly.\n"
|
||||||
"Go to application website to obtain it manually."));
|
"Go to application website to obtain it manually."));
|
||||||
|
|
||||||
if (isUpdateForThisSystem() && isSelfUpdateSupported()) {
|
m_btnUpdate->setText(is_self_update_for_this_system ? tr("Download update") : tr("Go to application website"));
|
||||||
m_btnUpdate->setText(tr("Download update"));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
m_ui->m_lblStatus->setStatus(WidgetWithStatus::Warning,
|
m_ui->m_lblStatus->setStatus(WidgetWithStatus::Warning,
|
||||||
@ -190,9 +187,8 @@ void FormUpdate::updateCompleted(QNetworkReply::NetworkError status, QByteArray
|
|||||||
}
|
}
|
||||||
|
|
||||||
void FormUpdate::startUpdate() {
|
void FormUpdate::startUpdate() {
|
||||||
#if defined(Q_OS_WIN)
|
|
||||||
QString url_file;
|
QString url_file;
|
||||||
bool update_for_this_system = isUpdateForThisSystem();
|
bool update_for_this_system = isUpdateForThisSystem() && isSelfUpdateSupported();
|
||||||
|
|
||||||
if (update_for_this_system) {
|
if (update_for_this_system) {
|
||||||
url_file = m_updateInfo.m_urls.value(OS_ID).m_fileUrl;
|
url_file = m_updateInfo.m_urls.value(OS_ID).m_fileUrl;
|
||||||
@ -209,6 +205,7 @@ void FormUpdate::startUpdate() {
|
|||||||
qDebug("Preparing to launch external installer '%s'.",
|
qDebug("Preparing to launch external installer '%s'.",
|
||||||
qPrintable(QDir::toNativeSeparators(m_updateFilePath)));
|
qPrintable(QDir::toNativeSeparators(m_updateFilePath)));
|
||||||
|
|
||||||
|
#if defined(Q_OS_WIN)
|
||||||
long exec_result = (long) ShellExecute(NULL,
|
long exec_result = (long) ShellExecute(NULL,
|
||||||
NULL,
|
NULL,
|
||||||
reinterpret_cast<const WCHAR*>(QDir::toNativeSeparators(m_updateFilePath).utf16()),
|
reinterpret_cast<const WCHAR*>(QDir::toNativeSeparators(m_updateFilePath).utf16()),
|
||||||
@ -226,8 +223,9 @@ void FormUpdate::startUpdate() {
|
|||||||
else {
|
else {
|
||||||
qApp->quit();
|
qApp->quit();
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
else if (update_for_this_system && isSelfUpdateSupported()) {
|
else if (update_for_this_system) {
|
||||||
// Nothing is downloaded yet, but update for this system
|
// Nothing is downloaded yet, but update for this system
|
||||||
// is available and self-update feature is present.
|
// is available and self-update feature is present.
|
||||||
|
|
||||||
@ -247,10 +245,9 @@ void FormUpdate::startUpdate() {
|
|||||||
// Self-update and package are not available.
|
// Self-update and package are not available.
|
||||||
if (!WebFactory::instance()->openUrlInExternalBrowser(url_file)) {
|
if (!WebFactory::instance()->openUrlInExternalBrowser(url_file)) {
|
||||||
qApp->showGuiMessage(tr("Cannot update application"),
|
qApp->showGuiMessage(tr("Cannot update application"),
|
||||||
tr("Cannot navigate to installation file. Check new installation downloads "
|
tr("Cannot navigate to installation file. Check new installation downloads manually on project website."),
|
||||||
"manually on project website."),
|
QSystemTrayIcon::Warning,
|
||||||
QSystemTrayIcon::Warning, this);
|
this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user