diff --git a/GPClient/gpclient.cpp b/GPClient/gpclient.cpp index 1a3ca02..03e97d9 100644 --- a/GPClient/gpclient.cpp +++ b/GPClient/gpclient.cpp @@ -69,12 +69,14 @@ void GPClient::setupSettings() void GPClient::onSettingsButtonClicked() { settingsDialog->setClientos(settings::get("clientos", "Linux").toString()); + settingsDialog->setOsVersion(settings::get("os-version", QSysInfo::prettyProductName()).toString()); settingsDialog->show(); } void GPClient::onSettingsAccepted() { settings::save("clientos", settingsDialog->clientos()); + settings::save("os-version", settingsDialog->osVersion()); } void GPClient::on_connectButton_clicked() diff --git a/GPClient/loginparams.cpp b/GPClient/loginparams.cpp index 3126231..21ea259 100644 --- a/GPClient/loginparams.cpp +++ b/GPClient/loginparams.cpp @@ -1,6 +1,9 @@ #include #include "loginparams.h" +#include "gphelper.h" + +using namespace gpclient::helper; LoginParams::LoginParams(const QString clientos) { @@ -14,13 +17,18 @@ LoginParams::LoginParams(const QString clientos) params.addQueryItem("ok", "Login"); params.addQueryItem("direct", "yes"); params.addQueryItem("clientVer", "4100"); - params.addQueryItem("os-version", QUrl::toPercentEncoding(QSysInfo::prettyProductName())); // add the clientos parameter if not empty if (!clientos.isEmpty()) { params.addQueryItem("clientos", clientos); } + auto osVersion = settings::get("os-version", "").toString(); + if (osVersion.isEmpty()) { + osVersion = QSysInfo::prettyProductName(); + } + params.addQueryItem("os-version", QUrl::toPercentEncoding(osVersion)); + params.addQueryItem("portal-userauthcookie", ""); params.addQueryItem("portal-prelogonuserauthcookie", ""); params.addQueryItem("prelogin-cookie", ""); diff --git a/GPClient/settingsdialog.cpp b/GPClient/settingsdialog.cpp index e2e28d4..51e230f 100644 --- a/GPClient/settingsdialog.cpp +++ b/GPClient/settingsdialog.cpp @@ -32,3 +32,11 @@ QString SettingsDialog::clientos() { return ui->clientosInput->text(); } + +void SettingsDialog::setOsVersion(QString osVersion) { + ui->osVersionInput->setText(osVersion); +} + +QString SettingsDialog::osVersion() { + return ui->osVersionInput->text(); +} diff --git a/GPClient/settingsdialog.h b/GPClient/settingsdialog.h index 9e29e48..ab2a607 100644 --- a/GPClient/settingsdialog.h +++ b/GPClient/settingsdialog.h @@ -21,6 +21,9 @@ public: void setClientos(QString clientos); QString clientos(); + void setOsVersion(QString osVersion); + QString osVersion(); + private: Ui::SettingsDialog *ui; }; diff --git a/GPClient/settingsdialog.ui b/GPClient/settingsdialog.ui index 7a595f3..ba27742 100644 --- a/GPClient/settingsdialog.ui +++ b/GPClient/settingsdialog.ui @@ -7,7 +7,7 @@ 0 0 488 - 177 + 220 @@ -44,7 +44,7 @@ - Value of "clientos": + clientos: @@ -55,7 +55,7 @@ - + Qt::Horizontal @@ -65,6 +65,16 @@ + + + + + + + os-version: + + +