diff --git a/Telegram/SourceFiles/core/crash_report_window.cpp b/Telegram/SourceFiles/core/crash_report_window.cpp index f4181d8bf9..a7424ed947 100644 --- a/Telegram/SourceFiles/core/crash_report_window.cpp +++ b/Telegram/SourceFiles/core/crash_report_window.cpp @@ -819,33 +819,15 @@ void LastCrashedWindow::onNetworkSettings() { proxy.port ? proxy.port : 80, proxy.user, proxy.password); - connect( - box, - SIGNAL(saved(QString,quint32,QString,QString)), - this, - SLOT(onNetworkSettingsSaved(QString,quint32,QString,QString))); + box->saveRequests( + ) | rpl::start_with_next([=](MTP::ProxyData &&data) { + Assert(data.host.isEmpty() || data.port != 0); + _proxyChanges.fire(std::move(data)); + proxyUpdated(); + }, _lifetime); box->show(); } -void LastCrashedWindow::onNetworkSettingsSaved( - QString host, - quint32 port, - QString username, - QString password) { - Expects(host.isEmpty() || port != 0); - - auto proxy = MTP::ProxyData(); - proxy.type = host.isEmpty() - ? MTP::ProxyData::Type::None - : MTP::ProxyData::Type::Http; - proxy.host = host; - proxy.port = port; - proxy.user = username; - proxy.password = password; - _proxyChanges.fire(std::move(proxy)); - proxyUpdated(); -} - void LastCrashedWindow::proxyUpdated() { if (_updaterData && ((_updaterData->state == UpdatingCheck) @@ -1105,7 +1087,7 @@ NetworkSettingsWindow::NetworkSettingsWindow(QWidget *parent, QString host, quin _passwordLabel.setText(qsl("Password")); _save.setText(qsl("SAVE")); - connect(&_save, SIGNAL(clicked()), this, SLOT(onSave())); + connect(&_save, &QPushButton::clicked, [=] { save(); }); _cancel.setText(qsl("CANCEL")); connect(&_cancel, SIGNAL(clicked()), this, SLOT(close())); @@ -1138,7 +1120,7 @@ void NetworkSettingsWindow::resizeEvent(QResizeEvent *e) { _cancel.move(_save.x() - padding - _cancel.width(), _save.y()); } -void NetworkSettingsWindow::onSave() { +void NetworkSettingsWindow::save() { QString host = _hostInput.text().trimmed(), port = _portInput.text().trimmed(), username = _usernameInput.text().trimmed(), password = _passwordInput.text().trimmed(); if (!port.isEmpty() && !port.toUInt()) { _portInput.setFocus(); @@ -1147,7 +1129,15 @@ void NetworkSettingsWindow::onSave() { _portInput.setFocus(); return; } - saved(host, port.toUInt(), username, password); + _saveRequests.fire({ + .type = host.isEmpty() + ? MTP::ProxyData::Type::None + : MTP::ProxyData::Type::Http, + .host = host, + .port = port.toUInt(), + .user = username, + .password = password, + }); close(); } @@ -1155,6 +1145,10 @@ void NetworkSettingsWindow::closeEvent(QCloseEvent *e) { deleteLater(); } +rpl::producer NetworkSettingsWindow::saveRequests() const { + return _saveRequests.events(); +} + void NetworkSettingsWindow::updateControls() { _hostInput.updateGeometry(); _hostInput.resize(_hostInput.sizeHint()); diff --git a/Telegram/SourceFiles/core/crash_report_window.h b/Telegram/SourceFiles/core/crash_report_window.h index 8599739bd9..90254befde 100644 --- a/Telegram/SourceFiles/core/crash_report_window.h +++ b/Telegram/SourceFiles/core/crash_report_window.h @@ -113,7 +113,6 @@ public Q_SLOTS: void onGetApp(); void onNetworkSettings(); - void onNetworkSettingsSaved(QString host, quint32 port, QString username, QString password); void onContinue(); void onCheckingFinished(); @@ -209,16 +208,12 @@ private: }; class NetworkSettingsWindow : public PreLaunchWindow { - Q_OBJECT public: NetworkSettingsWindow(QWidget *parent, QString host, quint32 port, QString username, QString password); -Q_SIGNALS: - void saved(QString host, quint32 port, QString username, QString password); - -public Q_SLOTS: - void onSave(); + [[nodiscard]] rpl::producer saveRequests() const; + void save(); protected: void closeEvent(QCloseEvent *e); @@ -233,4 +228,6 @@ private: QWidget *_parent; + rpl::event_stream _saveRequests; + };