mirror of
https://github.com/chylex/Nextcloud-Desktop.git
synced 2026-04-04 20:34:17 +02:00
Compare commits
7 Commits
v2.4.2
...
v2.4.3-rc1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dca63dc539 | ||
|
|
b5384c9ad7 | ||
|
|
8c77bfad93 | ||
|
|
235e314da7 | ||
|
|
628daeadfe | ||
|
|
2a55b20b8d | ||
|
|
6c818ac3c7 |
@@ -1,7 +1,13 @@
|
|||||||
ChangeLog
|
ChangeLog
|
||||||
=========
|
=========
|
||||||
|
|
||||||
version 2.4.2 (2018-06-xx)
|
version 2.4.3 (2018-08-xx)
|
||||||
|
* Windows: Don't ignore files with FILE_ATTRIBUTE_TEMPORARY (#6696, #6610)
|
||||||
|
* OAuth2: Fix infinite loop when the refresh token is expired
|
||||||
|
* Windows MSI: Fix crash in the auto updater
|
||||||
|
* Nautilus: Guard against None state (#6643)
|
||||||
|
|
||||||
|
version 2.4.2 (2018-07-18)
|
||||||
* Linux: Tray workarounds (#6545)
|
* Linux: Tray workarounds (#6545)
|
||||||
* Fix nautilus/nemo shell issues (#6393, #6406)
|
* Fix nautilus/nemo shell issues (#6393, #6406)
|
||||||
* Updater: Add update channel feature (#6259)
|
* Updater: Add update channel feature (#6259)
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
set( MIRALL_VERSION_MAJOR 2 )
|
set( MIRALL_VERSION_MAJOR 2 )
|
||||||
set( MIRALL_VERSION_MINOR 4 )
|
set( MIRALL_VERSION_MINOR 4 )
|
||||||
set( MIRALL_VERSION_PATCH 2 )
|
set( MIRALL_VERSION_PATCH 3 )
|
||||||
set( MIRALL_VERSION_YEAR 2018 )
|
set( MIRALL_VERSION_YEAR 2018 )
|
||||||
set( MIRALL_SOVERSION 0 )
|
set( MIRALL_SOVERSION 0 )
|
||||||
|
|
||||||
if ( NOT DEFINED MIRALL_VERSION_SUFFIX )
|
if ( NOT DEFINED MIRALL_VERSION_SUFFIX )
|
||||||
set( MIRALL_VERSION_SUFFIX "git") #e.g. beta1, beta2, rc1
|
set( MIRALL_VERSION_SUFFIX "rc1") #e.g. beta1, beta2, rc1
|
||||||
endif( NOT DEFINED MIRALL_VERSION_SUFFIX )
|
endif( NOT DEFINED MIRALL_VERSION_SUFFIX )
|
||||||
|
|
||||||
if( NOT DEFINED MIRALL_VERSION_BUILD )
|
if( NOT DEFINED MIRALL_VERSION_BUILD )
|
||||||
|
|||||||
@@ -214,8 +214,8 @@ class MenuExtension(GObject.GObject, Nautilus.MenuProvider):
|
|||||||
# and we definitely don't want to show them for IGNORED.
|
# and we definitely don't want to show them for IGNORED.
|
||||||
shareable = False
|
shareable = False
|
||||||
state = entry['state']
|
state = entry['state']
|
||||||
state_ok = state.startswith('OK')
|
state_ok = state and state.startswith('OK')
|
||||||
state_sync = state.startswith('SYNC')
|
state_sync = state and state.startswith('SYNC')
|
||||||
if state_ok:
|
if state_ok:
|
||||||
shareable = True
|
shareable = True
|
||||||
elif state_sync and isDir:
|
elif state_sync and isDir:
|
||||||
|
|||||||
@@ -181,7 +181,7 @@ std::unique_ptr<csync_file_stat_t> csync_vio_local_readdir(csync_vio_handle_t *d
|
|||||||
}
|
}
|
||||||
} else if (handle->ffd.dwFileAttributes & FILE_ATTRIBUTE_DEVICE
|
} else if (handle->ffd.dwFileAttributes & FILE_ATTRIBUTE_DEVICE
|
||||||
|| handle->ffd.dwFileAttributes & FILE_ATTRIBUTE_OFFLINE
|
|| handle->ffd.dwFileAttributes & FILE_ATTRIBUTE_OFFLINE
|
||||||
|| handle->ffd.dwFileAttributes & FILE_ATTRIBUTE_TEMPORARY) {
|
) {
|
||||||
file_stat->type = CSYNC_FTW_TYPE_SKIP;
|
file_stat->type = CSYNC_FTW_TYPE_SKIP;
|
||||||
} else if (handle->ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
|
} else if (handle->ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
|
||||||
file_stat->type = CSYNC_FTW_TYPE_DIR;
|
file_stat->type = CSYNC_FTW_TYPE_DIR;
|
||||||
|
|||||||
@@ -283,7 +283,7 @@ void OCUpdater::slotStartInstaller()
|
|||||||
return QDir::toNativeSeparators(path);
|
return QDir::toNativeSeparators(path);
|
||||||
};
|
};
|
||||||
|
|
||||||
auto msiLogFile = cfg.configPath() + "msi.log";
|
QString msiLogFile = cfg.configPath() + "msi.log";
|
||||||
QString command = QString("&{msiexec /norestart /passive /i '%1' /L*V '%2'| Out-Null ; &'%3'}")
|
QString command = QString("&{msiexec /norestart /passive /i '%1' /L*V '%2'| Out-Null ; &'%3'}")
|
||||||
.arg(preparePathForPowershell(updateFile))
|
.arg(preparePathForPowershell(updateFile))
|
||||||
.arg(preparePathForPowershell(msiLogFile))
|
.arg(preparePathForPowershell(msiLogFile))
|
||||||
|
|||||||
@@ -379,11 +379,12 @@ bool HttpCredentials::refreshAccessToken()
|
|||||||
QJsonParseError jsonParseError;
|
QJsonParseError jsonParseError;
|
||||||
QJsonObject json = QJsonDocument::fromJson(jsonData, &jsonParseError).object();
|
QJsonObject json = QJsonDocument::fromJson(jsonData, &jsonParseError).object();
|
||||||
QString accessToken = json["access_token"].toString();
|
QString accessToken = json["access_token"].toString();
|
||||||
if (reply->error() != QNetworkReply::NoError || jsonParseError.error != QJsonParseError::NoError || json.isEmpty()) {
|
if (jsonParseError.error != QJsonParseError::NoError || json.isEmpty()) {
|
||||||
// Network error maybe?
|
// Invalid or empty JSON: Network error maybe?
|
||||||
qCWarning(lcHttpCredentials) << "Error while refreshing the token" << reply->errorString() << jsonData << jsonParseError.errorString();
|
qCWarning(lcHttpCredentials) << "Error while refreshing the token" << reply->errorString() << jsonData << jsonParseError.errorString();
|
||||||
} else if (accessToken.isEmpty()) {
|
} else if (accessToken.isEmpty()) {
|
||||||
// The token is no longer valid.
|
// If the json was valid, but the reply did not contain an access token, the token
|
||||||
|
// is considered expired. (Usually the HTTP reply code is 400)
|
||||||
qCDebug(lcHttpCredentials) << "Expired refresh token. Logging out";
|
qCDebug(lcHttpCredentials) << "Expired refresh token. Logging out";
|
||||||
_refreshToken.clear();
|
_refreshToken.clear();
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user