From d211437ffb404f24d7ed19b82b3afaa1bffd6afe Mon Sep 17 00:00:00 2001 From: cyrusbuilt Date: Fri, 31 Jul 2020 19:31:45 -0400 Subject: Adding Haiku OS support diff --git a/src/big_widgets/Controls.cpp b/src/big_widgets/Controls.cpp index 14e11d8..6e92312 100644 --- a/src/big_widgets/Controls.cpp +++ b/src/big_widgets/Controls.cpp @@ -319,14 +319,19 @@ void Controls::pullCurrentBranch() const auto ret = git->pull(); QApplication::restoreOverrideCursor(); + const auto msg = ret.output.toString(); + if (ret.success) - emit signalRepositoryUpdated(); + { + if (msg.toLower().contains("merge conflict")) + emit signalPullConflict(); + else + emit signalRepositoryUpdated(); + } else { - const auto errorMsg = ret.output.toString(); - - if (errorMsg.contains("error: could not apply", Qt::CaseInsensitive) - && errorMsg.contains("causing a conflict", Qt::CaseInsensitive)) + if (msg.contains("error: could not apply", Qt::CaseInsensitive) + && msg.contains("causing a conflict", Qt::CaseInsensitive)) { emit signalPullConflict(); } @@ -336,7 +341,7 @@ void Controls::pullCurrentBranch() QString("There were problems during the pull operation. Please, see the detailed " "description for more information."), QMessageBox::Ok, this); - msgBox.setDetailedText(errorMsg); + msgBox.setDetailedText(msg); msgBox.setStyleSheet(GitQlientStyles::getStyles()); msgBox.exec(); } @@ -515,16 +520,19 @@ void Controls::processUpdateFile() mLatestGitQlient = json["latest-version"].toString(); const auto changeLogUrl = json["changelog"].toString(); + QJsonObject os; + auto platformSupported = true; #if defined(Q_OS_WIN) - const auto os = json["windows"].toObject(); + os = json["windows"].toObject(); #elif defined(Q_OS_LINUX) - const auto os = json["linux"].toObject(); + os = json["linux"].toObject(); #elif defined(Q_OS_OSX) - const auto os = json["osx"].toObject(); + os = json["osx"].toObject(); +#else + platformSupported = false; + QLog_Error("Ui", QString("Platform not supported for updates")); #endif - mGitQlientDownloadUrl = os["download-url"].toString(); - const auto newVersion = mLatestGitQlient.split("."); const auto nv = newVersion.at(0).toInt() * 10000 + newVersion.at(1).toInt() * 100 + newVersion.at(2).toInt(); const auto curVersion = QString("%1").arg(VER).split("."); @@ -532,20 +540,33 @@ void Controls::processUpdateFile() if (nv > cv) { - mVersionCheck->setVisible(true); + if (!platformSupported) + { + QMessageBox::information( + this, tr("New version available!"), + tr("There is a new version of GitQlient available but your OS doesn't have a binary built. If you want to " + "get the latest version, pleas get " + "the source code from GitHub.") + .arg(mLatestGitQlient)); + } + else + { + mGitQlientDownloadUrl = os["download-url"].toString(); + mVersionCheck->setVisible(true); - QTimer::singleShot(200, this, [this, changeLogUrl] { - QNetworkRequest request; - request.setRawHeader("User-Agent", "GitQlient"); - request.setRawHeader("X-Custom-User-Agent", "GitQlient"); - request.setRawHeader("Content-Type", "application/json"); - request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); - request.setUrl(QUrl(changeLogUrl)); + QTimer::singleShot(200, this, [this, changeLogUrl] { + QNetworkRequest request; + request.setRawHeader("User-Agent", "GitQlient"); + request.setRawHeader("X-Custom-User-Agent", "GitQlient"); + request.setRawHeader("Content-Type", "application/json"); + request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); + request.setUrl(QUrl(changeLogUrl)); - const auto reply = mManager->get(request); + const auto reply = mManager->get(request); - connect(reply, &QNetworkReply::finished, this, &Controls::processChangeLog); - }); + connect(reply, &QNetworkReply::finished, this, &Controls::processChangeLog); + }); + } } } -- 2.27.0