diff --git a/Telegram/SourceFiles/boxes/edit_color_box.cpp b/Telegram/SourceFiles/boxes/edit_color_box.cpp index 21d754d7f..f5bb7286b 100644 --- a/Telegram/SourceFiles/boxes/edit_color_box.cpp +++ b/Telegram/SourceFiles/boxes/edit_color_box.cpp @@ -632,14 +632,17 @@ EditColorBox::EditColorBox(QWidget*, const QString &title, QColor current) : Box void EditColorBox::prepare() { setTitle([=] { return _title; }); - const auto changed = [=] { fieldChanged(); }; - connect(_hueField, &Ui::MaskedInputField::changed, changed); - connect(_saturationField, &Ui::MaskedInputField::changed, changed); - connect(_brightnessField, &Ui::MaskedInputField::changed, changed); - connect(_redField, &Ui::MaskedInputField::changed, changed); - connect(_greenField, &Ui::MaskedInputField::changed, changed); - connect(_blueField, &Ui::MaskedInputField::changed, changed); - connect(_result, &Ui::MaskedInputField::changed, changed); + const auto hsvChanged = [=] { updateFromHSVFields(); }; + const auto rgbChanged = [=] { updateFromRGBFields(); }; + connect(_hueField, &Ui::MaskedInputField::changed, hsvChanged); + connect(_saturationField, &Ui::MaskedInputField::changed, hsvChanged); + connect(_brightnessField, &Ui::MaskedInputField::changed, hsvChanged); + connect(_redField, &Ui::MaskedInputField::changed, rgbChanged); + connect(_greenField, &Ui::MaskedInputField::changed, rgbChanged); + connect(_blueField, &Ui::MaskedInputField::changed, rgbChanged); + connect(_result, &Ui::MaskedInputField::changed, [=] { + updateFromResultField(); + }); const auto submitted = [=] { fieldSubmitted(); }; connect(_hueField, &Ui::MaskedInputField::submitted, submitted); @@ -674,29 +677,6 @@ void EditColorBox::setInnerFocus() { _result->selectAll(); } -void EditColorBox::fieldChanged() { - auto emitter = sender(); - auto checkHSVSender = [this, emitter](QObject *field) { - if (emitter == field) { - updateFromHSVFields(); - } - }; - auto checkRGBSender = [this, emitter](QObject *field) { - if (emitter == field) { - updateFromRGBFields(); - } - }; - checkHSVSender(_hueField); - checkHSVSender(_saturationField); - checkHSVSender(_brightnessField); - checkRGBSender(_redField); - checkRGBSender(_greenField); - checkRGBSender(_blueField); - if (emitter == _result) { - updateFromResultField(); - } -} - void EditColorBox::fieldSubmitted() { Ui::MaskedInputField *fields[] = { _hueField, diff --git a/Telegram/SourceFiles/boxes/edit_color_box.h b/Telegram/SourceFiles/boxes/edit_color_box.h index 1ca903a15..3424cc9e6 100644 --- a/Telegram/SourceFiles/boxes/edit_color_box.h +++ b/Telegram/SourceFiles/boxes/edit_color_box.h @@ -37,7 +37,6 @@ protected: private: void saveColor(); - void fieldChanged(); void fieldSubmitted(); void updateFromColor(QColor color); diff --git a/Telegram/SourceFiles/storage/file_download.cpp b/Telegram/SourceFiles/storage/file_download.cpp index 496be2951..c6e9fe4dd 100644 --- a/Telegram/SourceFiles/storage/file_download.cpp +++ b/Telegram/SourceFiles/storage/file_download.cpp @@ -1325,9 +1325,12 @@ void WebLoadManager::sendRequest(webFileLoaderPrivate *loader, const QString &re } QNetworkReply *r = loader->request(_manager, redirect); + + // Those use QObject::sender, so don't just remove the receiver pointer! connect(r, SIGNAL(downloadProgress(qint64, qint64)), this, SLOT(onProgress(qint64, qint64))); connect(r, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(onFailed(QNetworkReply::NetworkError))); connect(r, SIGNAL(metaDataChanged()), this, SLOT(onMeta())); + _replies.insert(r, loader); }