diff options
| author | Rachel Powers <508861+Ryex@users.noreply.github.com> | 2023-04-17 17:51:34 -0700 | 
|---|---|---|
| committer | Rachel Powers <508861+Ryex@users.noreply.github.com> | 2023-04-17 18:23:18 -0700 | 
| commit | 12f0d51c0cd03d660425566264b502736b104310 (patch) | |
| tree | fda9fe0325e4f330d62690b312d82d8928d2a117 /launcher/minecraft | |
| parent | 1b053032506afc3b7ad9734aea461dc39101ba64 (diff) | |
| download | PrismLauncher-12f0d51c0cd03d660425566264b502736b104310.tar.gz PrismLauncher-12f0d51c0cd03d660425566264b502736b104310.tar.bz2 PrismLauncher-12f0d51c0cd03d660425566264b502736b104310.zip | |
Fix: signal/slot macro -> func pointer & network fixes
- convert qt connect calls to use function pointers instead of the signal/slot macros wherever practical (UI classes were mostly left alone, target was tasks and processes)
- give signals an explicit receivers to use the static method over the instance method wherever practical
- ensure networks tasks are using the `errorOccured` signal added in Qt5.15 over the deprecated `error` signal
- ensure all networks tasks have an sslErrors signal connected
- add seemingly missing `MinecraftAccount::authSucceeded` connection for `MSAInteractive` login flow
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
Diffstat (limited to 'launcher/minecraft')
| -rw-r--r-- | launcher/minecraft/WorldList.cpp | 3 | ||||
| -rw-r--r-- | launcher/minecraft/auth/AuthRequest.cpp | 22 | ||||
| -rw-r--r-- | launcher/minecraft/auth/MinecraftAccount.cpp | 16 | ||||
| -rw-r--r-- | launcher/minecraft/services/CapeChange.cpp | 33 | ||||
| -rw-r--r-- | launcher/minecraft/services/CapeChange.h | 1 | ||||
| -rw-r--r-- | launcher/minecraft/services/SkinDelete.cpp | 22 | ||||
| -rw-r--r-- | launcher/minecraft/services/SkinDelete.h | 1 | ||||
| -rw-r--r-- | launcher/minecraft/services/SkinUpload.cpp | 22 | ||||
| -rw-r--r-- | launcher/minecraft/services/SkinUpload.h | 1 | 
9 files changed, 82 insertions, 39 deletions
| diff --git a/launcher/minecraft/WorldList.cpp b/launcher/minecraft/WorldList.cpp index ae29a972..de21c474 100644 --- a/launcher/minecraft/WorldList.cpp +++ b/launcher/minecraft/WorldList.cpp @@ -53,8 +53,7 @@ WorldList::WorldList(const QString &dir)      m_dir.setSorting(QDir::Name | QDir::IgnoreCase | QDir::LocaleAware);      m_watcher = new QFileSystemWatcher(this);      is_watching = false; -    connect(m_watcher, SIGNAL(directoryChanged(QString)), this, -            SLOT(directoryChanged(QString))); +    connect(m_watcher, &QFileSystemWatcher::directoryChanged, this, &WorldList::directoryChanged);  }  void WorldList::startWatching() diff --git a/launcher/minecraft/auth/AuthRequest.cpp b/launcher/minecraft/auth/AuthRequest.cpp index bb82e1e2..a21634b7 100644 --- a/launcher/minecraft/auth/AuthRequest.cpp +++ b/launcher/minecraft/auth/AuthRequest.cpp @@ -55,12 +55,12 @@ void AuthRequest::get(const QNetworkRequest &req, int timeout/* = 60*1000*/) {      reply_ = APPLICATION->network()->get(request_);      status_ = Requesting;      timedReplies_.add(new Katabasis::Reply(reply_, timeout)); -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) -    connect(reply_, SIGNAL(errorOccurred(QNetworkReply::NetworkError)), this, SLOT(onRequestError(QNetworkReply::NetworkError))); -#else -    connect(reply_, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(onRequestError(QNetworkReply::NetworkError))); +#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) // QNetworkReply::errorOccurred added in 5.15 +    connect(reply_, &QNetworkReply::errorOccurred, this, &AuthRequest::onRequestError); +#else // &QNetworkReply::error SIGNAL depricated +    connect(reply_, QOverload<QNetworkReply::NetworkError>::of(&QNetworkReply::error), this, &AuthRequest::onRequestError);  #endif -    connect(reply_, SIGNAL(finished()), this, SLOT(onRequestFinished())); +    connect(reply_, &QNetworkReply::finished, this, &AuthRequest::onRequestFinished);      connect(reply_, &QNetworkReply::sslErrors, this, &AuthRequest::onSslErrors);  } @@ -70,14 +70,14 @@ void AuthRequest::post(const QNetworkRequest &req, const QByteArray &data, int t      status_ = Requesting;      reply_ = APPLICATION->network()->post(request_, data_);      timedReplies_.add(new Katabasis::Reply(reply_, timeout)); -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) -    connect(reply_, SIGNAL(errorOccurred(QNetworkReply::NetworkError)), this, SLOT(onRequestError(QNetworkReply::NetworkError))); -#else -    connect(reply_, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(onRequestError(QNetworkReply::NetworkError))); +#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) // QNetworkReply::errorOccurred added in 5.15 +    connect(reply_, &QNetworkReply::errorOccurred, this, &AuthRequest::onRequestError); +#else // &QNetworkReply::error SIGNAL depricated +    connect(reply_, QOverload<QNetworkReply::NetworkError>::of(&QNetworkReply::error), this, &AuthRequest::onRequestError);  #endif -    connect(reply_, SIGNAL(finished()), this, SLOT(onRequestFinished())); +    connect(reply_, &QNetworkReply::finished, this, &AuthRequest::onRequestFinished);      connect(reply_, &QNetworkReply::sslErrors, this, &AuthRequest::onSslErrors); -    connect(reply_, SIGNAL(uploadProgress(qint64,qint64)), this, SLOT(onUploadProgress(qint64,qint64))); +    connect(reply_, &QNetworkReply::uploadProgress, this, &AuthRequest::onUploadProgress);  }  void AuthRequest::onRequestFinished() { diff --git a/launcher/minecraft/auth/MinecraftAccount.cpp b/launcher/minecraft/auth/MinecraftAccount.cpp index 48cf5d42..3b050ac0 100644 --- a/launcher/minecraft/auth/MinecraftAccount.cpp +++ b/launcher/minecraft/auth/MinecraftAccount.cpp @@ -133,8 +133,8 @@ shared_qobject_ptr<AccountTask> MinecraftAccount::login(QString password) {      Q_ASSERT(m_currentTask.get() == nullptr);      m_currentTask.reset(new MojangLogin(&data, password)); -    connect(m_currentTask.get(), SIGNAL(succeeded()), SLOT(authSucceeded())); -    connect(m_currentTask.get(), SIGNAL(failed(QString)), SLOT(authFailed(QString))); +    connect(m_currentTask.get(), &Task::succeeded, this, &MinecraftAccount::authSucceeded); +    connect(m_currentTask.get(), &Task::failed, this, &MinecraftAccount::authFailed);      connect(m_currentTask.get(), &Task::aborted, this, [this]{ authFailed(tr("Aborted")); });      emit activityChanged(true);      return m_currentTask; @@ -144,8 +144,8 @@ shared_qobject_ptr<AccountTask> MinecraftAccount::loginMSA() {      Q_ASSERT(m_currentTask.get() == nullptr);      m_currentTask.reset(new MSAInteractive(&data)); -    connect(m_currentTask.get(), SIGNAL(succeeded()), SLOT(authSucceeded())); -    connect(m_currentTask.get(), SIGNAL(failed(QString)), SLOT(authFailed(QString))); +    connect(m_currentTask.get(), &Task::succeeded, this, &MinecraftAccount::authSucceeded); +    connect(m_currentTask.get(), &Task::failed, this, &MinecraftAccount::authFailed);      connect(m_currentTask.get(), &Task::aborted, this, [this]{ authFailed(tr("Aborted")); });      emit activityChanged(true);      return m_currentTask; @@ -155,8 +155,8 @@ shared_qobject_ptr<AccountTask> MinecraftAccount::loginOffline() {      Q_ASSERT(m_currentTask.get() == nullptr);      m_currentTask.reset(new OfflineLogin(&data)); -    connect(m_currentTask.get(), SIGNAL(succeeded()), SLOT(authSucceeded())); -    connect(m_currentTask.get(), SIGNAL(failed(QString)), SLOT(authFailed(QString))); +    connect(m_currentTask.get(), &Task::succeeded, this, &MinecraftAccount::authSucceeded); +    connect(m_currentTask.get(), &Task::failed, this, &MinecraftAccount::authFailed);      connect(m_currentTask.get(), &Task::aborted, this, [this]{ authFailed(tr("Aborted")); });      emit activityChanged(true);      return m_currentTask; @@ -177,8 +177,8 @@ shared_qobject_ptr<AccountTask> MinecraftAccount::refresh() {          m_currentTask.reset(new MojangRefresh(&data));      } -    connect(m_currentTask.get(), SIGNAL(succeeded()), SLOT(authSucceeded())); -    connect(m_currentTask.get(), SIGNAL(failed(QString)), SLOT(authFailed(QString))); +    connect(m_currentTask.get(), &Task::succeeded, this, &MinecraftAccount::authSucceeded); +    connect(m_currentTask.get(), &Task::failed, this, &MinecraftAccount::authFailed);      connect(m_currentTask.get(), &Task::aborted, this, [this]{ authFailed(tr("Aborted")); });      emit activityChanged(true);      return m_currentTask; diff --git a/launcher/minecraft/services/CapeChange.cpp b/launcher/minecraft/services/CapeChange.cpp index c73a11b6..1d5ea36d 100644 --- a/launcher/minecraft/services/CapeChange.cpp +++ b/launcher/minecraft/services/CapeChange.cpp @@ -54,9 +54,14 @@ void CapeChange::setCape(QString& cape) {      setStatus(tr("Equipping cape"));      m_reply = shared_qobject_ptr<QNetworkReply>(rep); -    connect(rep, &QNetworkReply::uploadProgress, this, &Task::setProgress); -    connect(rep, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(downloadError(QNetworkReply::NetworkError))); -    connect(rep, SIGNAL(finished()), this, SLOT(downloadFinished())); +    connect(rep, &QNetworkReply::uploadProgress, this, &CapeChange::setProgress); +#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) // QNetworkReply::errorOccurred added in 5.15 +    connect(rep, &QNetworkReply::errorOccurred, this, &CapeChange::downloadError); +#else +    connect(rep, QOverload<QNetworkReply::NetworkError>::of(&QNetworkReply::error), this, &CapeChange::downloadError); +#endif +    connect(rep, &QNetworkReply::sslErrors, this, &CapeChange::sslErrors); +    connect(rep, &QNetworkReply::finished, this, &CapeChange::downloadFinished);  }  void CapeChange::clearCape() { @@ -68,13 +73,14 @@ void CapeChange::clearCape() {      setStatus(tr("Removing cape"));      m_reply = shared_qobject_ptr<QNetworkReply>(rep); -    connect(rep, &QNetworkReply::uploadProgress, this, &Task::setProgress); -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) -    connect(rep, SIGNAL(errorOccurred(QNetworkReply::NetworkError)), this, SLOT(downloadError(QNetworkReply::NetworkError))); +    connect(rep, &QNetworkReply::uploadProgress, this, &CapeChange::setProgress); +#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) // QNetworkReply::errorOccurred added in 5.15 +    connect(rep, &QNetworkReply::errorOccurred, this, &CapeChange::downloadError);  #else -    connect(rep, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(downloadError(QNetworkReply::NetworkError))); +    connect(rep, QOverload<QNetworkReply::NetworkError>::of(&QNetworkReply::error), this, &CapeChange::downloadError);  #endif -    connect(rep, SIGNAL(finished()), this, SLOT(downloadFinished())); +    connect(rep, &QNetworkReply::sslErrors, this, &CapeChange::sslErrors); +    connect(rep, &QNetworkReply::finished, this, &CapeChange::downloadFinished);  } @@ -95,6 +101,17 @@ void CapeChange::downloadError(QNetworkReply::NetworkError error)      emitFailed(m_reply->errorString());  } +void CapeChange::sslErrors(const QList<QSslError>& errors) +{ +    int i = 1; +    for (auto error : errors) { +        qCritical() << "Cape change SSL Error #" << i << " : " << error.errorString(); +        auto cert = error.certificate(); +        qCritical() << "Certificate in question:\n" << cert.toText(); +        i++; +    } +} +  void CapeChange::downloadFinished()  {      // if the download failed diff --git a/launcher/minecraft/services/CapeChange.h b/launcher/minecraft/services/CapeChange.h index 185d69b6..38069f90 100644 --- a/launcher/minecraft/services/CapeChange.h +++ b/launcher/minecraft/services/CapeChange.h @@ -27,6 +27,7 @@ protected:  public slots:      void downloadError(QNetworkReply::NetworkError); +    void sslErrors(const QList<QSslError>& errors);      void downloadFinished();  }; diff --git a/launcher/minecraft/services/SkinDelete.cpp b/launcher/minecraft/services/SkinDelete.cpp index 921bd094..fbaaeacb 100644 --- a/launcher/minecraft/services/SkinDelete.cpp +++ b/launcher/minecraft/services/SkinDelete.cpp @@ -53,13 +53,14 @@ void SkinDelete::executeTask()      m_reply = shared_qobject_ptr<QNetworkReply>(rep);      setStatus(tr("Deleting skin")); -    connect(rep, &QNetworkReply::uploadProgress, this, &Task::setProgress); -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) -    connect(rep, SIGNAL(errorOccurred(QNetworkReply::NetworkError)), this, SLOT(downloadError(QNetworkReply::NetworkError))); +    connect(rep, &QNetworkReply::uploadProgress, this, &SkinDelete::setProgress); +#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) // QNetworkReply::errorOccurred added in 5.15 +    connect(rep, &QNetworkReply::errorOccurred, this, &SkinDelete::downloadError);  #else -    connect(rep, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(downloadError(QNetworkReply::NetworkError))); +    connect(rep, QOverload<QNetworkReply::NetworkError>::of(&QNetworkReply::error), this, &SkinDelete::downloadError);  #endif -    connect(rep, SIGNAL(finished()), this, SLOT(downloadFinished())); +    connect(rep, &QNetworkReply::sslErrors, this, &SkinDelete::sslErrors); +    connect(rep, &QNetworkReply::finished, this, &SkinDelete::downloadFinished);  }  void SkinDelete::downloadError(QNetworkReply::NetworkError error) @@ -69,6 +70,17 @@ void SkinDelete::downloadError(QNetworkReply::NetworkError error)      emitFailed(m_reply->errorString());  } +void SkinDelete::sslErrors(const QList<QSslError>& errors) +{ +    int i = 1; +    for (auto error : errors) { +        qCritical() << "Skin Delete SSL Error #" << i << " : " << error.errorString(); +        auto cert = error.certificate(); +        qCritical() << "Certificate in question:\n" << cert.toText(); +        i++; +    } +} +  void SkinDelete::downloadFinished()  {      // if the download failed diff --git a/launcher/minecraft/services/SkinDelete.h b/launcher/minecraft/services/SkinDelete.h index 83a84685..b9a1c9d3 100644 --- a/launcher/minecraft/services/SkinDelete.h +++ b/launcher/minecraft/services/SkinDelete.h @@ -22,5 +22,6 @@ protected:  public slots:      void downloadError(QNetworkReply::NetworkError); +    void sslErrors(const QList<QSslError>& errors);      void downloadFinished();  }; diff --git a/launcher/minecraft/services/SkinUpload.cpp b/launcher/minecraft/services/SkinUpload.cpp index c7987875..711f8739 100644 --- a/launcher/minecraft/services/SkinUpload.cpp +++ b/launcher/minecraft/services/SkinUpload.cpp @@ -78,13 +78,14 @@ void SkinUpload::executeTask()      m_reply = shared_qobject_ptr<QNetworkReply>(rep);      setStatus(tr("Uploading skin")); -    connect(rep, &QNetworkReply::uploadProgress, this, &Task::setProgress); -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) -    connect(rep, SIGNAL(errorOccurred(QNetworkReply::NetworkError)), this, SLOT(downloadError(QNetworkReply::NetworkError))); +    connect(rep, &QNetworkReply::uploadProgress, this, &SkinUpload::setProgress); +#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) // QNetworkReply::errorOccurred added in 5.15 +    connect(rep, &QNetworkReply::errorOccurred, this, &SkinUpload::downloadError);  #else -    connect(rep, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(downloadError(QNetworkReply::NetworkError))); +    connect(rep, QOverload<QNetworkReply::NetworkError>::of(&QNetworkReply::error), this, &SkinUpload::downloadError);  #endif -    connect(rep, SIGNAL(finished()), this, SLOT(downloadFinished())); +    connect(rep, &QNetworkReply::sslErrors, this, &SkinUpload::sslErrors); +    connect(rep, &QNetworkReply::finished, this, &SkinUpload::downloadFinished);  }  void SkinUpload::downloadError(QNetworkReply::NetworkError error) @@ -94,6 +95,17 @@ void SkinUpload::downloadError(QNetworkReply::NetworkError error)      emitFailed(m_reply->errorString());  } +void SkinUpload::sslErrors(const QList<QSslError>& errors) +{ +    int i = 1; +    for (auto error : errors) { +        qCritical() << "Skin Upload SSL Error #" << i << " : " << error.errorString(); +        auto cert = error.certificate(); +        qCritical() << "Certificate in question:\n" << cert.toText(); +        i++; +    } +} +  void SkinUpload::downloadFinished()  {      // if the download failed diff --git a/launcher/minecraft/services/SkinUpload.h b/launcher/minecraft/services/SkinUpload.h index 2c1f0a2e..ac8c5b36 100644 --- a/launcher/minecraft/services/SkinUpload.h +++ b/launcher/minecraft/services/SkinUpload.h @@ -32,6 +32,7 @@ protected:  public slots:      void downloadError(QNetworkReply::NetworkError); +    void sslErrors(const QList<QSslError>& errors);      void downloadFinished();  }; | 
