diff --git a/NextcloudCPack.cmake b/NextcloudCPack.cmake index 0a506b945..2edb205e1 100644 --- a/NextcloudCPack.cmake +++ b/NextcloudCPack.cmake @@ -19,7 +19,7 @@ if(APPLE) set( CPACK_GENERATOR "DragNDrop" ) set( CPACK_SOURCE_GENERATOR "") set( CPACK_PACKAGE_FILE_NAME ${APPLICATION_SHORTNAME}-${CPACK_PACKAGE_VERSION} ) - set( CPACK_PACKAGE_ICON ${CMAKE_BINARY_DIR}/src/gui/ownCloud.icns) + set( CPACK_PACKAGE_ICON ${CMAKE_BINARY_DIR}/src/gui/${APPLICATION_ICON_NAME}.icns) set( CPACK_DMG_DS_STORE "${CMAKE_SOURCE_DIR}/admin/osx/DS_Store.in") # set( CPACK_DMG_BACKGROUND_IMAGE "${CMAKE_SOURCE_DIR}/admin/osx/DMGBackground.png" ) diff --git a/README.md b/README.md index 0feca92e9..df72496f4 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ you want to install system wide you could use `/usr/local` or `/opt/nextcloud/`. ##### Linux ``` -$ cmake .. -DCMAKE_INSTALL_PREFIX=path-to-install-folder/ -DCMAKE_BUILD_TYPE=Debug -DNO_SHIBBOLETH=1 +$ cmake "-GVisual Studio 15 2017 Win64" .. -DCMAKE_INSTALL_PREFIX=path-to-install-folder/ -DCMAKE_BUILD_TYPE=Debug -DNO_SHIBBOLETH=1 -DPng2Ico_EXECUTABLE=/path-to-install-png2ico/png2ico.exe -DQTKEYCHAIN_LIBRARY=/path-to-qt5keychain-folder/lib/qt5keychain.lib -DQTKEYCHAIN_INCLUDE_DIR=/path-to-qt5keychain-folder/include/qt5keychain/ -DOPENSSL_ROOT_DIR=/path-to-openssl-folder/ -DOPENSSL_INCLUDE_DIR=path-to-openssl-folder/include -DOPENSSL_LIBRARIES=path-to-openssl-folder/lib $ make install ``` diff --git a/cmake/modules/MacOSXBundleInfo.plist.in b/cmake/modules/MacOSXBundleInfo.plist.in index 5b8f3388a..62e30cbbe 100644 --- a/cmake/modules/MacOSXBundleInfo.plist.in +++ b/cmake/modules/MacOSXBundleInfo.plist.in @@ -11,7 +11,7 @@ CFBundleExecutable @APPLICATION_EXECUTABLE@ CFBundleIconFile - ownCloud.icns + @APPLICATION_ICON_NAME@.icns CFBundleIdentifier @APPLICATION_REV_DOMAIN@ CFBundleInfoDictionaryVersion diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt index 05a93f556..4684e9117 100644 --- a/src/gui/CMakeLists.txt +++ b/src/gui/CMakeLists.txt @@ -272,7 +272,7 @@ if(NOT BUILD_OWNCLOUD_OSX_BUNDLE) add_executable( ${APPLICATION_EXECUTABLE} WIN32 main.cpp ${final_src}) else() # set(CMAKE_INSTALL_PREFIX ".") # Examples use /Applications. hurmpf. - set(MACOSX_BUNDLE_ICON_FILE "ownCloud.icns") + set(MACOSX_BUNDLE_ICON_FILE "${APPLICATION_ICON_NAME}.icns") # we must add MACOSX_BUNDLE only if building a bundle add_executable( ${APPLICATION_EXECUTABLE} WIN32 MACOSX_BUNDLE main.cpp ${final_src}) diff --git a/src/gui/creds/webflowcredentials.cpp b/src/gui/creds/webflowcredentials.cpp index 2b70c5328..fc3370c8d 100644 --- a/src/gui/creds/webflowcredentials.cpp +++ b/src/gui/creds/webflowcredentials.cpp @@ -24,6 +24,35 @@ namespace OCC { Q_LOGGING_CATEGORY(lcWebFlowCredentials, "sync.credentials.webflow", QtInfoMsg) +class WebFlowCredentialsAccessManager : public AccessManager +{ +public: + WebFlowCredentialsAccessManager(const WebFlowCredentials *cred, QObject *parent = nullptr) + : AccessManager(parent) + , _cred(cred) + { + } + +protected: + QNetworkReply *createRequest(Operation op, const QNetworkRequest &request, QIODevice *outgoingData) Q_DECL_OVERRIDE + { + QNetworkRequest req(request); + if (!req.attribute(HttpCredentials::DontAddCredentialsAttribute).toBool()) { + if (_cred && !_cred->password().isEmpty()) { + QByteArray credHash = QByteArray(_cred->user().toUtf8() + ":" + _cred->password().toUtf8()).toBase64(); + req.setRawHeader("Authorization", "Basic " + credHash); + } + } + + return AccessManager::createRequest(op, req, outgoingData); + } + +private: + // The credentials object dies along with the account, while the QNAM might + // outlive both. + QPointer _cred; +}; + WebFlowCredentials::WebFlowCredentials() : _ready(false), _credentialsValid(false) @@ -56,7 +85,7 @@ QString WebFlowCredentials::password() const { QNetworkAccessManager *WebFlowCredentials::createQNAM() const { qCInfo(lcWebFlowCredentials()) << "Get QNAM"; - AccessManager *qnam = new AccessManager(); + AccessManager *qnam = new WebFlowCredentialsAccessManager(this); connect(qnam, &AccessManager::authenticationRequired, this, &WebFlowCredentials::slotAuthentication); connect(qnam, &AccessManager::finished, this, &WebFlowCredentials::slotFinished);