CoverWidget::CoverWidget(QWidget *parent, UserData *self) : BlockWidget(parent, self, QString()) , _self(App::self()) , _userpicButton(this, _self) , _name(this, st::settingsNameLabel) , _editNameInline(this, QString(), st::settingsEditButton) , _setPhoto(this, lang(lng_settings_upload), st::settingsPrimaryButton) , _editName(this, lang(lng_settings_edit), st::settingsSecondaryButton) { setAcceptDrops(true); _name->setSelectable(true); _name->setContextCopyText(lang(lng_profile_copy_fullname)); _setPhoto->setTextTransform(Ui::RoundButton::TextTransform::ToUpper); connect(_setPhoto, SIGNAL(clicked()), this, SLOT(onSetPhoto())); _editName->setTextTransform(Ui::RoundButton::TextTransform::ToUpper); connect(_editName, SIGNAL(clicked()), this, SLOT(onEditName())); connect(_editNameInline, SIGNAL(clicked()), this, SLOT(onEditName())); auto observeEvents = Notify::PeerUpdate::Flag::NameChanged; Notify::registerPeerObserver(observeEvents, this, &CoverWidget::notifyPeerUpdated); FileDialog::registerObserver(this, &CoverWidget::notifyFileQueryUpdated); connect(App::app(), SIGNAL(peerPhotoDone(PeerId)), this, SLOT(onPhotoUploadStatusChanged(PeerId))); connect(App::app(), SIGNAL(peerPhotoFail(PeerId)), this, SLOT(onPhotoUploadStatusChanged(PeerId))); connect(_userpicButton, SIGNAL(clicked()), this, SLOT(onPhotoShow())); validatePhoto(); refreshNameText(); refreshStatusText(); }
void CoverWidget::notifyPeerUpdated(const Notify::PeerUpdate &update) { if (update.peer != _self) { return; } if (update.flags & Notify::PeerUpdate::Flag::NameChanged) { refreshNameText(); } if (update.flags & Notify::PeerUpdate::Flag::PhotoChanged) { validatePhoto(); } }
CoverWidget::CoverWidget(QWidget *parent, UserData *self) : BlockWidget(parent, self, QString()) , _self(App::self()) , _userpicButton( this, App::wnd()->controller(), _self, Ui::UserpicButton::Role::OpenPhoto, st::settingsPhoto) , _name(this, st::settingsNameLabel) , _editNameInline(this, st::settingsEditButton) , _setPhoto(this, langFactory(lng_settings_upload), st::settingsPrimaryButton) , _editName(this, langFactory(lng_settings_edit), st::settingsSecondaryButton) { if (_self) { _self->updateFull(); } setAcceptDrops(true); _name->setSelectable(true); _name->setContextCopyText(lang(lng_profile_copy_fullname)); _setPhoto->setClickedCallback(App::LambdaDelayed( st::settingsPrimaryButton.ripple.hideDuration, this, [this] { chooseNewPhoto(); })); _editName->addClickHandler([this] { editName(); }); _editNameInline->addClickHandler([this] { editName(); }); auto observeEvents = Notify::PeerUpdate::Flag::NameChanged | Notify::PeerUpdate::Flag::PhotoChanged; subscribe(Notify::PeerUpdated(), Notify::PeerUpdatedHandler(observeEvents, [this](const Notify::PeerUpdate &update) { notifyPeerUpdated(update); })); connect( &Messenger::Instance(), &Messenger::peerPhotoDone, this, &CoverWidget::onPhotoUploadStatusChanged); connect( &Messenger::Instance(), &Messenger::peerPhotoFail, this, &CoverWidget::onPhotoUploadStatusChanged); _userpicButton->addClickHandler([this] { showPhoto(); }); validatePhoto(); refreshNameText(); subscribe(Global::RefConnectionTypeChanged(), [this] { refreshStatusText(); }); refreshStatusText(); }
void CoverWidget::onPhotoShow() { if (auto photo = validatePhoto()) { App::wnd()->showPhoto(photo, _self); } }
void CoverWidget::showPhoto() { if (const auto photo = validatePhoto()) { Messenger::Instance().showPhoto(photo, _self); } }