MCPcopy Create free account
hub / github.com/TDesktop-x64/tdesktop / updateNameDelayed

Method updateNameDelayed

Telegram/SourceFiles/data/data_peer.cpp:323–379  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

321}
322
323void PeerData::updateNameDelayed(
324 const QString &newName,
325 const QString &newNameOrPhone,
326 const QString &newUsername) {
327 if (_name == newName && _nameVersion > 1) {
328 if (isUser()) {
329 if (asUser()->nameOrPhone == newNameOrPhone
330 && asUser()->editableUsername() == newUsername) {
331 return;
332 }
333 } else if (isChannel()) {
334 if (asChannel()->editableUsername() == newUsername) {
335 return;
336 }
337 } else if (isChat()) {
338 return;
339 }
340 }
341 _name = newName;
342 invalidateEmptyUserpic();
343
344 if (_randomNumber == 0) {
345 _randomNumber = QRandomGenerator::global()->bounded(10000000);
346 }
347
348 auto flags = UpdateFlag::None | UpdateFlag::None;
349 auto oldFirstLetters = base::flat_set<QChar>();
350 const auto nameUpdated = (_nameVersion++ > 1);
351 if (nameUpdated) {
352 oldFirstLetters = nameFirstLetters();
353 flags |= UpdateFlag::Name;
354 }
355 if (isUser()) {
356 if (asUser()->editableUsername() != newUsername) {
357 asUser()->setUsername(newUsername);
358 flags |= UpdateFlag::Username;
359 }
360 asUser()->setNameOrPhone(newNameOrPhone);
361 } else if (isChannel()) {
362 if (asChannel()->editableUsername() != newUsername) {
363 asChannel()->setUsername(newUsername);
364 if (asChannel()->username().isEmpty()) {
365 asChannel()->removeFlags(ChannelDataFlag::Username);
366 } else {
367 asChannel()->addFlags(ChannelDataFlag::Username);
368 }
369 flags |= UpdateFlag::Username;
370 }
371 }
372 fillNames();
373 if (nameUpdated) {
374 session().changes().nameUpdated(this, std::move(oldFirstLetters));
375 }
376 if (flags) {
377 session().changes().peerUpdated(this, flags);
378 }
379}
380

Callers

nothing calls this directly

Calls 10

setNameOrPhoneMethod · 0.80
nameUpdatedMethod · 0.80
peerUpdatedMethod · 0.80
editableUsernameMethod · 0.45
setUsernameMethod · 0.45
isEmptyMethod · 0.45
usernameMethod · 0.45
removeFlagsMethod · 0.45
addFlagsMethod · 0.45
changesMethod · 0.45

Tested by

no test coverage detected